EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
vhdl语言怎么仿真 VHDL语言testbench仿真的例子如下: 1.源代码 --六进制计数器的代码 Library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity cnt6 is port (clr,en,clk :in std_logic; q :out std_logic_vector(2 downto 0) ); end enTIty; architecture rtl of cnt6 is signal tmp :std_logic_vector(2 downto 0); begin process(clk) -- variable q6:integer; begin if(clk‘event and clk=’1‘) then if(clr=’0‘)then tmp《=“000”; elsif(en=’1‘) then if(tmp=“101”)then tmp《=“000”; else tmp《=unsigned(tmp)+’1‘; end if; end if; end if; q《=tmp; -- qa《=q(0); -- qb《=q(1); -- qc《=q(2); end process; end rtl; 2,testbench代码 Quartus II 可以自动生成testbench代码固定格式。 如果自己不想写这些testbench的这些固定格式,可以在quartus里自动生成testbench文件的模板,然后往里面写信号就行了 步骤:processing-》start-》starttest bench template write 这里需要注意的是要在仿真选项里选择一个仿真工具,然后才会生成testbench -- 六进制计数器testbench的代码 library ieee; use ieee.std_logic_1164.all; enTIty cnt6_tb is end cnt6_tb; architecture rtl of cnt6_tb is component cnt6 port( clr,en,clk :in std_logic; q :out std_logic_vector(2 downto 0) ); end component; signal clr :std_logic:=’0‘; signal en :std_logic:=’0‘; signal clk :std_logic:=’0‘; signal q :std_logic_vector(2 downto 0); constant clk_period :TIme :=20 ns; begin instant:cnt6 port map ( clk=》clk,en=》en,clr=》clr,q=》q ); clk_gen:process begin wait for clk_period/2; clk《=’1‘; wait for clk_period/2; clk《=’0‘; end process; clr_gen:process begin clr《=’0‘; wait for 30 ns; clr《=’1‘; wait; end process; en_gen:process begin en《=’0‘; wait for 50ns; en《=’1‘; wait; end process; end rtl; vhdl语言的基本结构 在VHDL程序中,实体(ENTITY)和结构体(ARCHITECTURE)这两个基本结构是必须的,他们可以构成最简单的VHDL程序。通常,最简单的VHDL程序结构中还包含另一个最重要的部分,即库(LIBRARY)和程序包(PACKAGE)。 1.实体 1.1功能: 对这个设计实体与外部电路进行接口描述 1.2常用语句结构 entity 实体名 is [generic (类属表); ] [port ( 端口表 );] end entity 实体名; 1.3实体名 一个设计实体无论多大和多复杂,在实体中定义的实体名即为这个设计实体的名称。在例化(已有元件的调用和连接)中,即可以用此名对相应的设计实体进行调用。 1.4generic类属说明语句 类属(generic)参量是一种端口界面常数,常以一种说明的形式放在实体或块结构前的说明部分,书写格式如下: 1 generic ( [ 常数名 : 数据类型 [ : 设定值] ] ) 2 { ; 常数名 : 数据类型 [ : 设定值] }; 1.4端口说明 实体端口说明的一般书写格式如下: 1 port ( 端口名 : 端口模式 数据类型 ; 2 { 端口名 : 端口模式 数据类型 } ); 2.结构体 2.1功能 结构体是实体所定义的设计实体中的一个组成部分。结构体描述设计实体的内部结构和/或外部设计实体端口间的逻辑关系。 2.2组成 对数据类型、常数、信号、子程序和元件等元素的说明部分。 描述实体逻辑行为的,以各种不同的描述风格表达的功能描述语句,它们包括各种形式的顺序描述语句和并行描述语句。 以元件例化语句为特征的外部原件(设计实体)端口间的连接方式。 2.3结构体的一般语言格式 1 architecture 结构体名 of 实体名 is 2 [说明语句] 3 begin 4 [功能描述语句] 5 end architecture 结构体名; H0 g J2 K4 |0 o4 ` \. f
|