集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1701|回复: 4

ZX2开发板第五讲数码管显示代码问题

[复制链接]
hys601406441 发表于 2014-5-5 15:58:49 | 显示全部楼层 |阅读模式
看完了第五讲的课,自己在原先开发板代码的基础上写了个时钟的程序,发现显示有问题。
检查发现如下代码有问题:
(display_ctrl.v  103行)
//把转换完的bcd码缓冲到寄存器中
always @(posedge sclk or negedge rst_n)
        if(rst_n == 1'b0)
                bcd_buf_flag <= 1'b0;
        else if(change_bcd_cnt == Change_Cycle-1 && change_flag == 1'b1)
                bcd_buf_flag <= 1'b1;
        else bcd_buf_flag <= 1'b0;

把红色部分的“ -1 ”去掉后显示正常。
请问是否原先代码中就不应该“ -1 ”?
 楼主| hys601406441 发表于 2014-5-6 09:21:21 | 显示全部楼层
laokai 发表于 2014-5-6 01:42
这里减一操作是没错的用意是让change_bcd_cnt == Change_Cycle 时bcd_buf_flag 标志拉高,并且此时刻bcd码 ...

嗯。
但是我们定义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
以上理解是否正确?
花涛 发表于 2014-9-16 17:14:58 | 显示全部楼层
你也是用的ZX-2的开发板吗
whyme 发表于 2014-9-16 21:44:47 | 显示全部楼层
什么语言学的比较快呢,VHDL还是Verilog?
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-5-7 03:46 , Processed in 0.060491 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表