1 Verilog中信號展寬的兩種寫法
第一種寫法: 把信號signal_a 展寬8拍
reg signal_a_dly1....signal_a_dly8
然后,把這些中間信號進行或操作
out_signal_a<=(signal_a_dly1|signal_a_dly2|...signal_a_8)
第二種寫法: 利用移位寄存器把信號signal_a 展寬8拍
reg[7:0]signal_a_shift;
signal_a_shift<={signal_a[6:0],signal_a};
out_signal_a<=|{signal_a_shift};
如果寫成了這種形式,實際上就展寬了9拍。
out_signal_a<=|{signal_a_shift,signal_a};
2 verilog中計數(shù)器的一種實現(xiàn)
我們要實現(xiàn)在96cycle內(nèi),只計前32個cycle(只有前32個cycle有效,后面cycle數(shù)據(jù)不做處理),后面不計.
always@(posedge clk or negedge rst)
if(!rst)
cnt<=6'd0;
else if(fr&&str)
cnt<=6'd1;
else if(cnt==32)
cnt<=6'd0;
else if(cnt)
cnt<=cnt+6'd1;//將計數(shù)器非0作為加1的控制條件(精髓)
else
cnt<=6'd0;.
實際上用到的是計數(shù)器從1-32這32cycle內(nèi)有效的數(shù)據(jù),0,1...32,0,1...32
避免了使用中間控制信號及信號flag。