第一段代码,Y1和Y2是两个寄存器,寄存器不会竞争冒险..每个时钟Y1和Y2交换寄存器内的值(Y1初始为0,Y2初始为1),就是把Y1的输出接Y2,Y2的输出接Y1.在这里,其实Y1和Y2产生的是和时钟同频的方波.
第二段代码中也没有竞争冒险,count最后的值会取0而不是3,这是verilog默认的.但是综合后的硬件电路图可能不是你想要的那样,一般也不这样写,最好写成
always @ (posedge clk)
begin
if(count==2)
begin
data_a
第一段代码,Y1和Y2是两个寄存器,寄存器不会竞争冒险..每个时钟Y1和Y2交换寄存器内的值(Y1初始为0,Y2初始为1),就是把Y1的输出接Y2,Y2的输出接Y1.在这里,其实Y1和Y2产生的是和时钟同频的方波.
第二段代码中也没有竞争冒险,count最后的值会取0而不是3,这是verilog默认的.但是综合后的硬件电路图可能不是你想要的那样,一般也不这样写,最好写成
always @ (posedge clk)
begin
if(count==2)
begin
data_a