verilog测试代码编写问题,急急
时间:10-02
整理:3721RD
点击:
各位大神们,请问下当我用verilog语言写测试代码时,相对模块内部的信号赋值并仿真,该怎么做?比如我有一个顶层模块top.v,里面有个模块是ram.v,现在我想对ram.v中的信号a赋初值,并且监测a赋值后a的变化,想这么做该怎么写测试代码啊?
a是top.v的内部信号,不是top.v的输入输出信号
可以单独对ram.v写一个测试激励做仿真就成
RAM单独测试
force top.ram.a = 1可以不?
一般信号可以force,也就是楼上所说的。
如果是要初始化RAM,可以用$readmemX这种PLI函数来初始化RAM,一般仿真器都支持。
同意,一般用$readmemb和$readmemh这两个函数!
嗯,这个问题很基础哦~
你要看你这A信号在RAM内部是属于什么 时钟信号 还是使能信号 或者是地址还是什么的, 然后从下往上推断,直到顶层种的相关信号, 然后在顶层信号添加专门的激励
·define my_var sti.top.ram.a
module sti();
.....
initial begin
#1000 `my_var = 1;
end
always @ (`my_var)
$display("%b",`my_var)
.....
.....
endmodule
嗯,动懂了,谢谢大家了!
那请问这个中间信号 在#1000 后一直为1应该怎么办?
`my_calib_done <= '0','1' after 100ns;
这么写 语法错误
求教
#1000 force `my_calib_done = 1;
