明德扬论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信扫一扫,快捷登录!

查看: 5096|回复: 0

16进制数转10进制数的改进方法

[复制链接]

3

主题

48

帖子

239

积分

中级会员

Rank: 3Rank: 3

积分
239
QQ
发表于 2019-11-10 20:25:57 | 显示全部楼层 |阅读模式

马上注册,看完整文章,学更多FPGA知识。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
在我们的按键处理和显示代码中,要使用16进制转10进制进行显示的问题,讲义中使用了如下的两个always分别实现高四位和低四位的转换,
在这里推荐一种一次就可以转换完毕的方法。   
原来的方法:
always  @(posedge clk or negedge rst_n)begin

        if(rst_n==1'b0)begin
            dout[3:0] <= 0;
        end
        else if(din>9)begin
            dout[3:0] <= din-10;
        end
        else begin
            dout[3:0] <= din;
        end
    end
  always  @(posedge clk or negedge rst_n)begin
        if(rst_n==1'b0)begin
            dout[7:4] <= 0;
        end
        else if(din >9) begin
            dout[7:4] <= 1;
        end
        else begin
            dout[7:4] <= 0;
        end
    end


改进方法如下:
  always  @(posedge clk or negedge rst_n)begin
        if(rst_n==1'b0)begin
            dout[7:0] <= 0;
        end
        else if(din >9) begin
            dout[7:0] <= din+6;
        end
        else begin
            dout[7:0] <= din;
        end
    end
这样只需要一个always,一次实现八位转换过程!


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|MDYBBS ( 粤ICP备16061416号 )

GMT+8, 2024-4-26 06:42 , Processed in 0.050784 second(s), 21 queries .

Powered by Discuz! X3.4

本论坛由广州健飞通信有限公司所有

© 2001-2019 Comsenz Inc.

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