2.调试方便。在 ISE/Quartus 中调用 modelsim仿真只能看到输入输出信 号,而对于设计的中间信号/变量,特别是ip核的内部信号/变量无法观测。而在modelsim中直接仿真可以观测设计中出现的任何信号/变量无和 ip 核内的任何信号/变量,这样我们设计的数据流向就可以很清楚的表示出来,还可以检测不同编程方式的处理效果,极大的方便了调试。
LIBRARY IEEEUSE IEEE.STD_LOGIC_1164.ALL
ENTITYdecoder_tb IS
ENDENTITY
ARCHITECTUREbehaviour OFdecoder_tb IS
COMPONENT decoder IS
PORT(a,b,c,e1,e2,e3: INSTD_LOGIC
y : OUTSTD_LOGIC_VECTOR(7 DOWNTO 0))
ENDCOMPONENT
--定义测试信号
SIGNALa,b,c,e1,e2,e3: STD_LOGIC
SIGNALy : STD_LOGIC_VECTOR(7 DOWNTO 0)
BEGIN
U1: decoder PORT MAP(a,b,c,e1,e2,e3,y)--元件实例化
test_vector:PROCESS--测试进程
BEGIN
e1<='0'
e2<='0'
e3<='1'
a<='1'--测试输入101
b<='0'
c<='1'
WAIT FOR 100 ns--等待一段时间变换测试向量,这样才能在波形图中看到输出
a<='0'--测试输入011
b<='1'
c<='1'
WAIT FOR 1000 ns
END PROCESS
END behaviour
--百度一把testbench就能找到很多教写testbench的文章
可以导出vcd文件,指定想要导出的变量或者你也可以用$fopen , $fwrite 输出中间变量啊,和输出变量一样的方式啊,如果想要把中间变量调到顶层来,可以用tmp_variable = tb.top.A.variable 的格式
其中top A 为逐一递减的层次模块实例名
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)