ModelSim环境基于VHDL语言的testbench书写
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
testbench顾名思义就是一个测试台,它对外没有接口,所以实体部分为空,但它要对要测试的器件提供激励信号,这其实就是最简单的testbench,以下是具体的操作步骤:
1.首先基于QuartusII建立的一个新的工程,编译通过,这其实就是我们要测试的源文件DUT(design under test)counter.vhd.
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity counter is
port(clk: in std_logic;
reset: in std_logic;
en: in std_logic;
q: out std_logic_vector(3 downto 0));
end counter;
architecture behave of counter is
signal q_n: std_logic_vector(3 downto 0);
begin
process(clk, reset, en, q_n)
begin
if (reset = '1') then
q_n <= (others => '0');--Òì²½ÇåÁã
elsif rising_edge(clk) then
if en = '1' then
q_n <= q_n + 1;
end if;
end if;
end process;
q <= q_n;
end behave;
2.打开ModelSim,指定路径为Quartus工程所在目录;建立新的仿真工程,添加文件(DUT)。
3.编译DUT文件到仿真库中(右键DUT,选择compile).
4.写testbench文件(counter_tb.vhd)。首先选择view-source-show language templates,然后选择file-new-source-vhdl,双击creat testbench,选择Design Unit Name为DUT文件,点击finish,模板创建完成,然后右键取消read only ,自己添加测试信号。
LIBRARY ieee ;
USE ieee.std_logic_unsigned.all ;
USE ieee.std_logic_1164.all ;
ENTITY counter_tb IS
constant ClockPeriod: time := 40 ns;
END ;
ARCHITECTURE counter_tb_arch OF counter_tb IS
component counter is
port(clk: in std_logic;
reset: in std_logic;
en: in std_logic;
q: out std_logic_vector(3 downto 0));
end component counter;
signal clock, rst, en: std_logic;
signal q: std_logic_vector(3 downto 0);
begin
CounterInstance: counter port map(clock, rst, en, q);
simProcess: process
begin
rst <= '1';
wait for 50 ns;
rst <= '0' ;
wait for 1000 ns;
rst <= '0' ;
end process simprocess;
en <= '0' after 0 ns,
'1' after 50 ns,
'0' after 850 ns,
'1' after 900 ns;
ClockProcess: process(clock, rst)
begin
if (rst = '1') then
clock <= '0';
else
clock <= not clock after ClockPeriod;
end if;
end process ClockProcess;
END ;
5.同样把testbench文件编译到仿真库中。
6.点击simulate-start simulation,选中design标签work库下testbench文件,点击ok。
7.workspace窗口出现sim标签,右键testbench文件,选择add to wave ,然后点击开始仿真按钮即可。