你好,在QUARTUS II 里怎样把多个编译文件连在一起呢,请指教!
展开全部
利用元件例化,最好把各个模块放在同一工程里(也可以不放在同一工程里,要调用比较麻烦),顶层文件给你个例子:LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; --使用库和程序包
ENTITY FREQTEST IS --定义FREQTEST实体
PORT(CLK :IN STD_LOGIC;
FSIN :IN STD_LOGIC;
DOUT :OUT STD_LOGIC_VECTOR(15 DOWNTO 0));
END FREQTEST;
ARCHITECTURE struc OF FREQTEST IS
COMPONENT TESTCTL --调用元件TESTCTL
PORT(CLK:IN STD_LOGIC;
TSTEN : OUT STD_LOGIC;
CLR_CNT :OUT STD_LOGIC;
Load :OUT STD_LOGIC );
END COMPONENT TESTCTL;
COMPONENT CNT10 --调用元件CNT10
PORT(CLK : IN STD_LOGIC;
CLR: IN STD_LOGIC;
ENA : IN STD_LOGIC;
CQ :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
CARRY_OUT :OUT STD_LOGIC);
END COMPONENT CNT10;
COMPONENT REG16B --调用元件16位锁存器
PORT( Load : IN STD_LOGIC;
din : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
DOUT : OUT STD_LOGIC_VECTOR(15 DOWNTO 0));
END COMPONENT;
SIGNAL Load1,TSTEN1, CLR_CNT1 : STD_LOGIC; --定义内部信号
SIGNAL DTO1 : STD_LOGIC_VECTOR(15 DOWNTO 0);
SIGNAL CARRY_OUT1 :STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
U1 : TESTCTL PORT MAP(CLK=>CLK, TSTEN=>TSTEN1,CLR_CNT=>CLR_CNT1, Load=>Load1);--例化语句,将节点进行电气连接
U2 : REG16B PORT MAP(Load=>Load1, DIN=>DTO1,DOUT=>DOUT);
U3 : CNT10 PORT MAP(CLK=>FSIN,CLR=>CLR_CNT1,ENA=>TSTEN1,CQ=>DTO1(3 DOWNTO 0),CARRY_OUT=>CARRY_OUT1(0)); --将计数器节点进行电气连接
U4 : CNT10 PORT MAP(CLK=>CARRY_OUT1(0),CLR=>CLR_CNT1,
ENA=>TSTEN1,CQ=>DTO1(7DOWNTO 4),
CARRY_OUT=>CARRY_OUT1(1));
U5 : CNT10 PORT MAP(CLK=>CARRY_OUT1(1),CLR=>CLR_CNT1,
ENA=>TSTEN1, CQ=>DTO1(11 DOWNTO 8),
CARRY_OUT=>CARRY_OUT1(2));
U6 : CNT10 PORT MAP(CLK=>CARRY_OUT1(2),CLR=>CLR_CNT1,
ENA=>TSTEN1, CQ=>DTO1(15 DOWNTO 12),
CARRY_OUT=>CARRY_OUT1(3));
END struc;
USE IEEE.STD_LOGIC_1164.ALL; --使用库和程序包
ENTITY FREQTEST IS --定义FREQTEST实体
PORT(CLK :IN STD_LOGIC;
FSIN :IN STD_LOGIC;
DOUT :OUT STD_LOGIC_VECTOR(15 DOWNTO 0));
END FREQTEST;
ARCHITECTURE struc OF FREQTEST IS
COMPONENT TESTCTL --调用元件TESTCTL
PORT(CLK:IN STD_LOGIC;
TSTEN : OUT STD_LOGIC;
CLR_CNT :OUT STD_LOGIC;
Load :OUT STD_LOGIC );
END COMPONENT TESTCTL;
COMPONENT CNT10 --调用元件CNT10
PORT(CLK : IN STD_LOGIC;
CLR: IN STD_LOGIC;
ENA : IN STD_LOGIC;
CQ :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
CARRY_OUT :OUT STD_LOGIC);
END COMPONENT CNT10;
COMPONENT REG16B --调用元件16位锁存器
PORT( Load : IN STD_LOGIC;
din : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
DOUT : OUT STD_LOGIC_VECTOR(15 DOWNTO 0));
END COMPONENT;
SIGNAL Load1,TSTEN1, CLR_CNT1 : STD_LOGIC; --定义内部信号
SIGNAL DTO1 : STD_LOGIC_VECTOR(15 DOWNTO 0);
SIGNAL CARRY_OUT1 :STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
U1 : TESTCTL PORT MAP(CLK=>CLK, TSTEN=>TSTEN1,CLR_CNT=>CLR_CNT1, Load=>Load1);--例化语句,将节点进行电气连接
U2 : REG16B PORT MAP(Load=>Load1, DIN=>DTO1,DOUT=>DOUT);
U3 : CNT10 PORT MAP(CLK=>FSIN,CLR=>CLR_CNT1,ENA=>TSTEN1,CQ=>DTO1(3 DOWNTO 0),CARRY_OUT=>CARRY_OUT1(0)); --将计数器节点进行电气连接
U4 : CNT10 PORT MAP(CLK=>CARRY_OUT1(0),CLR=>CLR_CNT1,
ENA=>TSTEN1,CQ=>DTO1(7DOWNTO 4),
CARRY_OUT=>CARRY_OUT1(1));
U5 : CNT10 PORT MAP(CLK=>CARRY_OUT1(1),CLR=>CLR_CNT1,
ENA=>TSTEN1, CQ=>DTO1(11 DOWNTO 8),
CARRY_OUT=>CARRY_OUT1(2));
U6 : CNT10 PORT MAP(CLK=>CARRY_OUT1(2),CLR=>CLR_CNT1,
ENA=>TSTEN1, CQ=>DTO1(15 DOWNTO 12),
CARRY_OUT=>CARRY_OUT1(3));
END struc;
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你搜一下vhdl的语法和例子
把多个文件编译到一起是靠vhld例化实现的,不需要额外操作
例如top模块调用了a b c等模块,那么综合时就会把这些文件链接到一起的
把多个文件编译到一起是靠vhld例化实现的,不需要额外操作
例如top模块调用了a b c等模块,那么综合时就会把这些文件链接到一起的
追问
那我需要把各个模块放在同一个工程文件里面是吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
写一个顶层模块吧,将小模块实例化,并将其中信号线连好....或是用系统框图画....
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |