做为一个初学者,发现了一个有用的程序结构。如下:
begin
if (rst)
begin
rxd1 <= 1'b1 ;
rxd2 <= 1'b1 ;
end
else
begin
rxd1 <= rxd ; //#########
rxd2 <= rxd1 ; //#########
end
end
……
if (!rxd1 && rxd2 && !start_flag) //#########
begin
start_flag<=1;
start_count<=0;
end
标注#####的地方,用来识别rxd。当rxd高时,无效。当低时,第一个周期赋值给rxd1,下一个周期赋值给rxd2,这样在程序中有且只有一个时钟周期的时间(!rxd1 && rxd2)为真。实现了识别一次。
涉及到的是非阻塞赋值的问题。