• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

基于FPGA的BCD码加法器设计Verilog代码Quartus仿真

07/28 08:48
619
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-2405161A10SF.doc

共1个文件

名称:基于FPGA的BCD码加法器设计Verilog代码Quartus仿真

软件:Quartus

语言:Verilog

代码功能:

BCD码加法器

采用DE2核心FPGA开发板,设计一个BCD码加法程序通过编程设计十进制求和电路,输入为两个2位BCD码加数A和B,低位进位端 cairy-in,,输出为两个加数的和(用三位BCD码表示)S2SlS0,注意处理和的最大值: S2S1S0=99+99+1=199。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. Testbench

5. 仿真图

部分代码展示:

//BCD码加法器
module BCD_adder(
input [7:0]A_BCD,//2位BCD码加数A
input [7:0]B_BCD,//2位BCD码加数B
input carry_in,//进位端
output [6:0]seg_hun,//和百位数码管显示
output [6:0]seg_ten,//和十位数码管显示
output [6:0]seg_one//和个位数码管显示
);
wire [4:0]A_BCD_H;
wire [4:0]A_BCD_L;
assign A_BCD_H=A_BCD[7:4];//A十位
assign A_BCD_L=A_BCD[3:0];//A个位
wire [4:0]B_BCD_H;
wire [4:0]B_BCD_L;
assign B_BCD_H=B_BCD[7:4];//B十位
assign B_BCD_L=B_BCD[3:0];//B个位
reg [3:0]S0=4'd0;//和个位
reg [3:0]S1=4'd0;//和十位
reg [3:0]S2=4'd0;//和百位
reg cin_one=0;//个位进位
reg cin_ten=0;//十位进位
always@(*)
if((carry_in+A_BCD_L+B_BCD_L)>=5'd10)begin//判断个位相加是否有进位
S0<=(carry_in+A_BCD_L+B_BCD_L)-5'd10;//减10
cin_one<=1;//个位进位
end
else begin
S0<=(carry_in+A_BCD_L+B_BCD_L);//个位和
cin_one<=0;
end

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=763

  • 2-2405161A10SF.doc
    下载

相关推荐