新手学习FPGA求助,一个地方老是搞不通T_T

2019-07-16 01:55发布

本帖最后由 会飞的醉猫 于 2013-1-20 21:47 编辑

1.jpg
想做一个序列检测器,当A连续输入101的时候,Y1就会输出1;
B和C是使能开关,CLK是时钟输入,里面的触发器以及与门、非门都是自己写的,代码如下:
触发器的:
module CF(CLK,D,Q);
input CLK,D;
output Q;reg Q;
always@(D or CLK)
if(CLK)Q<=D;
endmodule

与门的:
module gates(A,B,C,Y1);
input A,B,C;output Y1;
assign Y1=A&B&C;
endmodule

非门的:
module NOT(I,P);
input I;
output P;
reg P;
always @(P or I)
begin
P=~I;
end
endmodule

这些都是写了试过可以用的,自己觉得问题出现在测试平台编写上,不知道错在哪儿,序列检测器测试平台如下:
`timescale 1ns/1ns
module testbench;
reg A,B,C,CLK;
wire Y;
test cfq(.CLK(CLK),.A(A),.B(B),.C(C),.Y(Y1));
initial
begin
CLK=0;
repeat(100)
#20 CLK=~CLK;
end
initial
begin
A=1; B=1;
end
initial
begin
#5 C=0; #5 C=0;
#5 C=1; #5 C=1;
#5 C=0; #5 C=1; #5 C=0;
end
endmodule

结果整个流程模拟下来是这样的:
2.jpg
求各位指导下问题在哪儿,感激不尽,刚开始学,写的东西很稚嫩,麻烦各位大侠了!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。