2位BCD码加法器

时间:2022-11-22 14:17:31 作者:壹号 字数:1267字

Verilog HDL 的2位BCD码加法器

2位BCD码加法器

一、实验内容:

利用Verilog HDL语言,编写一个2为BCD码加法器程序,并在DE2板是实现功能的运用。

A0、A1,B0、B1分别是2个输入数字,S0-S2为输出,经过BCD加法器的运算,能实现BCD码加法功能。

设计思路:

A0、B0分别是A、B的低位,相加的值T0=A0+B0,若T0>10,则Z0赋值为10,同时进位C0=1,和值低位S0=T0-Z0;同理,高位A1、B1,T1=A1+B1+C0,若T1>10,则Z1=10,进位C1=1,和值高位S1=T1-Z1;S2=C1。

二、实验源程序:

1) BCD加法器

module BCDadder(A0,A1,B0,B1,S0,S1,S2,clear); //定义输入模块 input [3:0]A0; //考虑到A0、B0、A1、B1的值可能 input [3:0]A1; 超过十进制数8,顾定义长度为4位; input [3:0]B0;

input [3:0]B1;

input clear;

output S0;

output S1;

output S2;

reg [3:0]S0;

reg [3:0]S1;

…… 此处隐藏0字 ……

reg [3:0]S2;

reg [4:0]C0;

reg [4:0]C1;

reg [4:0]T0; //低位和值可能超过16,所以定义T0、T1长 reg [4:0]T1; 度为5;

reg [4:0]Z0;

reg [4:0]Z1;

always @(posedge clear) //以每一次复位上升沿到来开始计算和值;