北京革新创展科技有限公司-BICE-EDA数字逻辑电路设计实验(实验1.3 带进位输入的8位加法器)

本实验详细介绍了如何使用QuartusⅡ设计带进位输入的8位加法器,通过北京革新创展科技有限公司的实验箱进行验证。实验内容包括原理讲解、设计流程、引脚分配和Verilog源代码,旨在提升对数字电路设计和FPGA应用的理解。

实验1.3 带进位输入的8位加法器
一、实验准备

该实验需要用到北京革新创展科技有限公司B-ICE-EDA/SOPC实验箱主板上的led指示灯,SW1-SW8,SW9-SW16组开关和数码管模块。请把控制拨码开关模块 LCD_ALONE_CTRL_SW 中开关VLPO拨置于下为低电平,可以使用LED1~LED8;SW1-SW8已经固定连接到实验平台中的FPGA_CON1和FPGA_CON2处,不需要用户设置;请把控制拨码开关模块CTRL_SW中开关SEL1, SEL2拨置于下逻辑电平为00,使DP9数码管显示1,可以使用SW9-SW16组开关; 8个共阳极七段数码管的8个段码,共用FPGA I/O,已经固定连接到实验平台中的FPGA_CON1处,8个共阳极七段数码管的8个位选已经固定连接到实验平台中的FPGA_CON1处。

二、实验目的
1、了解带进位输入的8位加法器实现的原理;
2、熟悉QuartusⅡ软件的相关操作,掌握数字电路设计的基本流程;
3、介绍QuartusⅡ软件,掌握基本的设计思想,软件环境的参数配置,仿真,管脚分配,下载等基本操作。
4、熟悉北京革新创展科技有限公司B-ICE-EDA/SOPC实验箱及其核心板硬件环境。

三、实验原理
带进位的8位加法器原理和1位加法器的原理相同,此时,从加数和被加数的最低位开始进行1位的加法,同时加上上一次的进位,即全加,直到最高位,最终输出进位和结果。

四、实验内容
1、利用硬件描述语言编写带进位的8位加法器,仿真并分析;
2、用QuartusII软件进行编译、仿真、下载到北京革新创展科技有限公司B-ICE-EDA/SOPC实验平台上进行验证分析。

五、设计原理框图
详情参考北京革新创展科技有限公司B-ICE-EDA/SOPC实验箱实验指导书及demo资源。

六、引脚分配情况
下表为北京革新创展科技有限公司B-ICE-EDA/SOPC-IEE

使用VHDL设计进位输入8加法器有逐级进位加法器和先行进位加法器等方法。 ### 逐级进位加法器 逐级进位加法器对每一都使用全加器FAU,每个全加器的输出结果依赖于前一级产生的进位。基于全加器的真值表,其逻辑表达式为: \[ \begin{align*} s &= a \oplus b \oplus cin\\ cout &= (a \land b) \lor (a \land cin) \lor (b \land cin) \end{align*} \] 对于8加法器,可以通过级联8个全加器实现。这种方法占用电路资源少,但计算延时大[^2]。 ### 先行进位加法器 先行进位加法器可以减小进位产生的延迟。以4先行进位加法器推导为例,设4加数和被加数为A和B,进位输入为Cin,进位输出为Cout,对于第i进位产生 \(G_i = A_i \cdot B_i\)进位传递 \(P_i = A_i + B_i\),各级进位输出递归开如下: \[ \begin{align*} C_0 &= Cin\\ C_1 &= G_0 + P_0 \cdot C_0\\ C_2 &= G_1 + P_1 \cdot C_1 = G_1 + P_1 \cdot (G_0 + P_0 \cdot C_0) = G_1 + P_1 \cdot G_0 + P_1 \cdot P_0 \cdot C_0\\ C_3 &= G_2 + P_2 \cdot C_2 = G_2 + P_2 \cdot G_1 + P_2 \cdot P_1 \cdot G_0 + P_2 \cdot P_1 \cdot P_0 \cdot C_0\\ C_4 &= G_3 + P_3 \cdot C_3 = G_3 + P_3 \cdot G_2 + P_3 \cdot P_2 \cdot G_1 + P_3 \cdot P_2 \cdot P_1 \cdot G_0 + P_3 \cdot P_2 \cdot P_1 \cdot P_0 \cdot C_0\\ Cout &= C_4 \end{align*} \] 第i的和为:\(S_i = X_i \oplus Y_i \oplus C_i = G_i \oplus P_i \oplus C_i\)。对于8先行进位加法器,可以将其拆分为两个4先行进位加法器进行级联实现[^3]。 ### 实验准备 该实验需要用到北京革新科技有限公司B - ICE - EDA/SOPC实验箱主板上的led指示灯,SW1 - SW8,SW9 - SW16组开关和数码管模块。需把控制拨码开关模块LCD_ALONE_CTRL_SW中开关VLPO拨置于下为低电平,可使用LED1~LED8;SW1 - SW8已固定连接到实验平台中的FPGA_CON1FPGA_CON2处,无需用户设置;把控制拨码开关模块CTRL_SW中开关SEL1,SEL2拨置于下逻辑电平为00,使DP9数码管显示1,可使用SW9 - SW16组开关;8个共阳极七段数码管的8个段码和8选已固定连接到实验平台中的FPGA_CON1处[^1]。 ### 测试文件示例 以下是一个8十进制加法器的测试文件示例: ```verilog `timescale 1ns / 1ps module decimal_adder_vlg_tst; reg [7:0] A, B; wire [7:0] Sum; wire Cout; decimal_adder uut ( .A(A), .B(B), .Sum(Sum), .Cout(Cout) ); initial begin A = 8'd0; B = 8'd0; #10 A = 8'd12; B = 8'd34; #10 A = 8'd78; B = 8'd56; #10 A = 8'd90; B = 8'd10; #10 $stop; end initial begin $monitor($time, " ns, A=%d, B=%d : Sum=%d, Cout=%b", A, B, Sum, Cout); end endmodule ``` 该测试文件对8十进制加法器进行了不同输入的测试,并通过`$monitor`函数输出测试结果[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值