我是modelim和Verilog的新手。我设计了一个DFF(D触发器模块)和一个测试台。但是我不知道为什么modelsim给我这个错误:
未找到与'/ test / *'相匹配的对象
测试基准代码:
// Testbench
module test;
reg clk;
reg reset;
reg d;
wire q;
wire qb;
// Instantiate design under test
dff DFF(.clk(clk), .reset(reset),
.d(d), .q(q), .qb(qb));
initial begin
// Dump waves
$dumpfile("dump.vcd");
$dumpvars(1);
$display("Reset flop.");
clk = 0;
reset = 1;
d = 1'bx;
display;
$display("Release reset.");
d = 1;
reset = 0;
display;
$display("Toggle clk.");
clk = 1;
display;
end
task display;
#1 $display("d:%0h, q:%0h, qb:%0h",
d, q, qb);
endtask
endmoudle
DFF代码:
// Design
// D flip-flop
module dff (clk, reset,
d, q, qb);
input clk;
input reset;
input d;
output q;
output qb;
reg q;
assign qb = ~q;
always @(posedge clk or posedge reset)
begin
if (reset) begin
// Asynchronous reset when reset goes high
q <= 1'b0;
end else begin
// Assign D to Q on positive clock edge
q <= d;
end
end
endmodule
为了进行模拟,我首先编译了两个文件,然后模拟了测试平台。在此之后,我进入了wave窗口,尝试将测试放入wave中,但在这一点上,我得到了我第一次提到的错误。
答案 0 :(得分:0)
您的问题不在HDL上,您可能缺少完整的前缀。试试
add wave 'sim:/test/*'
传递给add wave
命令的路径是相对于在结构(视图->结构(z))上选择的单位的。如有疑问,可以通过转到“结构”视图,右键单击测试台并选择“复制”来获取绝对路径。
答案 1 :(得分:0)
问题在于优化。我用以下代码模拟此代码:
vsim -novopt目的地
一切都很好。