两个模块的verilog不工作
这里我使用了两个模块,但是没有输出两个模块的verilog不工作,verilog,hdl,flip-flop,shift-register,Verilog,Hdl,Flip Flop,Shift Register,这里我使用了两个模块,但是没有输出 我试图制作两位右移寄存器,但首先我必须制作一个单位寄存器,但即使这样也不起作用。代码中有几个错误 1)如果(clk)开始和相关的结束应该被删除,posedge clk已经描述了触发器的触发条件 2)非阻塞分配(谢谢您的建议,先生,但是我尝试了您所说的,但是我的输出仍然没有显示任何内容!!我给时钟值给clk,常数1给inp。您可以在您的电脑中检查代码!可能它不会显示anything@DipjyotiDas你能把你的测试台添加到这个问题上吗,这样我就可以重现这个问
我试图制作两位右移寄存器,但首先我必须制作一个单位寄存器,但即使这样也不起作用。代码中有几个错误 1)如果(clk)开始和相关的结束应该被删除,
posedge clk
已经描述了触发器的触发条件
2)非阻塞分配(
谢谢您的建议,先生,但是我尝试了您所说的,但是我的输出仍然没有显示任何内容!!我给时钟值给clk,常数1给inp。您可以在您的电脑中检查代码!可能它不会显示anything@DipjyotiDas你能把你的测试台添加到这个问题上吗,这样我就可以重现这个问题了?我们使用的是force c在xilinx中锁定clk并强制常量为inp,在q中没有输出,您的电脑是否显示任何输出???@DipjyotiDas我用我的测试台模拟了代码,它给出了预期的输出。我将更新答案。@DipjyotiDas您可以使用上面的简单测试台,而不是强制信号。
module rff_try_1(q,inp,clk);
input clk,inp;
output q;
reg q;
DFF dff0(q,inp,clk);
endmodule
module DFF(q,inp,clk);
input inp,clk;
output q;
reg q;
always @ (posedge clk)begin
if(clk)begin
q=inp;
end
end
endmodule
always @ (posedge clk) begin
q <= inp;
end
wire q;
module tb();
reg clk = 1;
always clk = #5 ~clk;
reg inp;
wire q;
rff_try_1 dut(q, inp, clk);
initial begin
inp = 0;
#12;
inp = 1;
#27;
inp = 0;
#24;
inp = 1;
end
initial begin
$dumpfile("dump.vcd"); $dumpvars;
#200;
$finish;
end
endmodule