实验 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
![]() |