实验 1 超前进位加法器设计

本文介绍了如何使用HDL(如Verilog或VHDL)设计一个4位全加器,通过实验步骤详细说明了从功能框图到实际代码的实现过程,包括层次化设计、编译、仿真以及硬件测试,最后展示了BCD码加法器的扩展应用。
摘要由CSDN通过智能技术生成

实验 1 超前进位加法器设计

 1.1 实 验 目 的

1.设计一个 4 位加法器。

2.体会用 HDL 进行逻辑描述的优点。

3.熟悉层次化设计方法。

1.2 实 验 仪 器 与 器 材

1. EDA 开发软件 一 套

2.微机 一 台

3.实验开发系统 一 台

4.打印机 一 台

5.其他器件与材料 若 干

1.3 实 验 说 明

本实验实现一个 4 位二进制数加法器,其 功能框图如图 1.1 所 示 。实 验 时 用 高 低 电 平 开 关 作 为 输 入 , 用 数 码 管 作 为 输 出 (或 用 发 光 二 极 管 ),管脚锁定可根据实验系统自行安排。 图 1.1 全 加 器 功 能 框 图

1.4 实 验 要 求

1 . 用硬件描述语言编写 4 位二进制数全加器的源文件;

2.对设计文件进行编译;

3.仿真设计文件。

4.编程下载并进行实验验证。

5.选作:在顶层电路中调用 ADD4 完成一个 1 位 BCD 码加法器的设计。

1.5 实 验 报 告 要 求

1.写出全加器的 HDL 源文件;

串行:module adder(

    input [3:0] a,

        input ci,

    input [3:0] b,

    output [3:0] sum,

    output co

);

assign {co, sum} = a + b+ci;

endmodule

并行:

module adder(a,b,ci,sum,co);

input [3:0] a;

input[3:0]b;

input ci;

output[3:0] sum;

output co;

wire[3:0] count;

add u0(a[0],b[0],ci,sum[0],count[0]);

add u1(a[1],b[1],count[0],sum[1],count[1]);

add u2(a[2],b[2],count[1],sum[2],count[2]);

add u3(a[3],b[3],count[2],sum[3],co);

endmodule

module add(input a ,input b, input ci,output sum,output count);

assign sum=(a^b)^ci;

assign count=(a&b)|(b&ci)|(a&ci);

endmodule

 2. 写出仿真和硬件测试结果;

`timescale 1 ns /1 ps

module addertb();

    wire[3:0] sum;

    wire co;

    reg[3:0] a,b;

    reg ci;

        adder u1(.a(a),.b(b),.ci(ci),.sum(sum),.co(co));

    initial

        begin

            #0 a = 4'b0001; b = 4'b0001; ci = 1'b0;

            #5 a = 4'b0001; b = 4'b1100; ci = 1'b1;

            #5 a = 4'b0111; b = 4'b1111; ci = 1'b1;

            #5 $finish;

        end

   

endmodule


 

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值