我正在使用D-Flip Flops编写一个涟漪计数器。但是下面的代码给里面的initial
块为q2,q3,q4
变量。这是为什么?非法引用错误
module RCounter;
reg d,d2,d3,d4,clk;
wire q,q2,q3,q4;
DFlipFlop a(d,q,clk);
DFlipFlop a1(d2,q2,q);
DFlipFlop a2(d3,q3,q2);
DFlipFlop a3(d4,q4,q3);
initial
begin
clk =1;
d=0;d2=0;d3=0;d4=0;q2=0;q3=0;q4=0;
#2 d=1;d2=~q2; d3=~q3; d4=~q4;
#2 d=0;d2=~q2; d3=~q3; d4=~q4;
#2 d=1;d2=~q2; d3=~q3; d4=~q4;
#2 d=0;d2=~q2; d3=~q3; d4=~q4;
#2 d=1;d2=~q2; d3=~q3; d4=~q4;
#2 d=0;d2=~q2; d3=~q3; d4=~q4;
#2 d=1;d2=~q2; d3=~q3; d4=~q4;
end
always
begin
#2 assign clk = ~ clk;
end
endmodule
d触发器模块:
module DFlipFlop(d,q,clk);
input d,clk;
output q;
assign q = clk?((d==1)? 1:0) : q;
endmodule
我怎样才能解决这个问题?
问候
所以我怎么能解决这个问题?我必须为它们分配值。 – 2013-02-20 15:13:04
@JamesAfred:不要这样做?在编写任何硬件描述之前,您似乎需要学习Verilog。 – 2013-02-20 15:13:57
以及我正在通过制作这样的程序来学习它。那我该如何解决这个问题?我现在发布完整的代码。 – 2013-02-20 15:17:43