|
嗯。
但是我们定义Change_Cycle = 8‘d39,在change_bcd_cnt == Change_Cycle - 1时,并没有完成bcd码的转换,它只完成了最后一次的移位,还没有进行“加3”这一动作的判断。
bcd码转换代码如下:
always @( posedge sclk or negedge rst_n )
if ( rst_n == 1'b0 )
bcd_byte <= 24'd0;
else if ( change_flag == 1'b1 && change_bcd_cnt[0] == 1'b0 )
bcd_byte <= { bcd_byte[22:0],buf_count[19] };
else if ( change_flag == 1'b1 && change_bcd_cnt[0] == 1'b1 )
begin
if ( bcd_byte[3:0] >= 4'd5 )
bcd_byte[3:0] <= bcd_byte[3:0] + 4'd3;
if ( bcd_byte[7:4] >= 4'd5 )
bcd_byte[7:4] <= bcd_byte[7:4] + 4'd3;
if ( bcd_byte[11:8] >= 4'd5 )
bcd_byte[11:8] <= bcd_byte[11:8] + 4'd3;
if ( bcd_byte[15:12] >= 4'd5 )
bcd_byte[15:12] <= bcd_byte[15:12] + 4'd3;
if ( bcd_byte[19:16] >= 4'd5 )
bcd_byte[19:16] <= bcd_byte[19:16] + 4'd3;
if (bcd_byte[23:20] >= 4'd5 )
bcd_byte[23:20] <= bcd_byte[23:20] + 4'd3;
end
else
bcd_byte <= 24'd0;
在change_bcd_cnt == 38(即change_bcd_cnt[0] == 1’b0)时只是移位,没有加3.
所以不应该减1
以上理解是否正确?
|
|