琉璃蕊 2014-04-25 06:45
浏览 1090

CIC设计代码不懂 求助啊

这是从该社区下载下来的CIC代码 但是有点看不懂 所以哪位大神帮帮忙 给注释一下吧
library IEEE;
use IEEE.std_LOGIC_1164.ALL;
use IEEE.std_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity CIC is
Port(sysclk:in std_logic;
ena:in std_logic;
datain:in std_logic_vector(11 downto 0);
dataine:out std_logic_vector(15 downto 0);
dataout:out std_logic_vector(15 downto 0));
end CIC;

architecture Behavioral of CIC is
signal datainext: std_logic_vector(27 downto 0);--29
signal acca: std_logic_vector(27 downto 0); --29
signal accb: std_logic_vector(27 downto 0); ---24
--signal accb_delay:std__logic_vector(27 downto 0);
signal accc: std_logic_vector(27 downto 0);
--signal accc_delay:std logic_vector(27 downto 0);
signal accd: std_logic_vector(27 downto 0);
signal accd_delay: std_logic_vector(27 downto 0);
signal combl: std_logic_vector(27 downto 0);
---signal comble: std logic vector(17 downto 0);
signal combl_delay: std_logic_vector(27 downto 0);---13
signal comb2: std_logic_vector(27 downto 0);
signal comb2_delay: std_logic_vector(27 downto 0);---12
signal comb3: std_logic_vector(27 downto 0);---12
Signal comb3_delay: std_logic_vector(27 downto 0);
Signal comb4: std_logic_vector(27 downto 0);
Signal comb4_delay: std_logic_vector(27 downto 0);
Signal decimate_count:std_logic_vector(3 downto 0);

begin

datainext(27)<=datain(11);
datainext(26)<=datain(11);
datainext(25)<=datain(11);
datainext(24)<=datain(11);
datainext(23)<=datain(11);
datainext(22)<=datain(11);
datainext(21)<=datain(11);
datainext(20)<=datain(11);
datainext(19)<=datain(11);
datainext(18)<=datain(11);
datainext(17)<=datain(11);
datainext(16)<=datain(11);
datainext(15)<=datain(11);
datainext(14)<=datain(11);
datainext(13)<=datain(11);
datainext(12)<=datain(11);
datainext(11 downto 0)<=datain(11 downto 0);

dataout<=comb4(27 downto 12);--(29 downto 14);

---dataine<=datain; --datain&"0000"
process(sysclk)
begin
IF ena='1' then
if sysclk='1' and sysclk'event then
decimate_count<=decimate_count+1;
---if sampleclk2=’1’then
acca<=acca+datainext;
---acca—delay<2accaj
accb<=accb+acca;
accc<=accc+accb;
accd<=accd+accc;
if decimate_count="1111"then ----Decimation Ratio=16
accd_delay<=accd;
combl_delay<=combl;
comb2_delay<=comb2;
comb3_delay<=comb3;
combl<=accd-accd_delay;
comb2<=combl-combl_delay;
comb3<=comb2-comb2_delay;
comb4<=comb3-comb3_delay;

end if;

end if;
end if;
end process;
end Behavioral;

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 请教一下各位,为什么我这个没有实现模拟点击
    • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
    • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置
    • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
    • ¥15 ubuntu子系统密码忘记
    • ¥15 保护模式-系统加载-段寄存器
    • ¥15 电脑桌面设定一个区域禁止鼠标操作