前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FPGA学习altera 系列 第二十四篇 BCD转二进制

FPGA学习altera 系列 第二十四篇 BCD转二进制

作者头像
FPGA技术江湖
发布2020-12-29 17:46:28
3910
发布2020-12-29 17:46:28
举报
文章被收录于专栏:FPGA技术江湖FPGA技术江湖

大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。

今天给大侠带来“FPGA学习系列 altera"系列,持续更新。此学习心得是本人之前所写,所用设计软件为Quartus II 13.1,现Quartus II 新版本已更新到19+,以下仅供初学者学习参考。后续会更新其他系列,敬请关注。话不多说,上货。

对于每一个的小实验,我们都可以把它看作是一个小项目,逐步的去分析,设计,调试,最后完成功能。下面我们就开始我们的“小项目”。

项目名称:BCD转二进制

具体要求:将12位的BCD码转成二进制。

项目分析:12位的BCD码,表示最大的数值为“999”,故而需要10位的二进制来表示。

架构图如下:

  • bcd_data[11:0]:输入的BCD码。
  • bin_data[9:0]:输出的二进制数值。

系统设计:

1. 工程的名称:bcd_to_bin

2. 实现方法:使用组合逻辑实现。

设计代码如下:

代码语言:javascript
复制
/*
模块名称:bcd_to_bin
模块功能:将12位的BCD码转成二进制。
作者:郝旭帅
邮箱:746833924@qq.com
*/
module bcd_to_bin (bcd_data, bin_data);
  
  input [11:0] bcd_data;
  
  output [9:0] bin_data;

  assign bin_data = 100 * bcd_data[11:8] + 10 * bcd_data[7:4] + bcd_data[3:0];

endmodule

代码解析:

一位的BCD码由四位的二进制构成,个位对应低四位,十位对应次低四位······,当进行BCD转二进制时,把各个四位乘以“权”(个位乘以1,十位乘以10······),相加即可得到二进制的数值。

激励代码如下:

代码语言:javascript
复制
/*
模块名称:bcd_to_bin_tb
模块功能:为bcd_to_bin模块提供激励信号
作者:郝旭帅
邮箱:746833924@qq.com
*/
`timescale 1ns/1ps

module bcd_to_bin_tb;

  reg [11:0] bcd_data;
  
  wire [9:0] bin_data;

  initial begin
    bcd_data = 12'h123;
    # 60
    bcd_data = 12'h147;
    # 60
    bcd_data = 12'h258;
    # 60
    bcd_data = 12'h369;
    # 60
    bcd_data = 12'h951;
    # 60
    bcd_data = 12'h753;
    # 60
    $stop;
  end

  bcd_to_bin bcd_to_bin_dut(
      .bcd_data(bcd_data), 
      .bin_data(bin_data)
    );
    
endmodule

代码解析:

四位的二进制为一个BCD码,也为一个16进制数,故而bcd_data赋值时,采用16进制。

仿真波形如下:

将bin_data设置成无符号位,将bcd_data设置成十六进制,4位的二进制正好一位十六进制。通过仿真,证明设计正确。

如果设计要求与笔者的设计不同,请自行更改设计,以保证设计的正确性。如果还是有不明白的读者可以发邮件到我邮箱或者加群询问。

END

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FPGA技术江湖 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档