FPGA实验全加器

目录

一.1位全加器

1.原理图实现

2. Verilog代码实现

二.4位全加器

1.原理图实现

 2.verilog代码


一.1位全加器

1.原理图实现

全加器是用门电路实现两个二进制相加并求出和的组合线路,成为一位全加器,一位全加器可以处理低位进位,并输出本位加法进位。多个一位全加器进行级联可以得到多位全加器。
Ain表示被加数,Bin表示加数,Cin表示低位进位,Cout表示高位进位,Sum表示本位和

1位全加器真值表

AinBinCinCoutSum
00000
00101
01001
01110
10001
10110
11010
11111

半加器原理图输入

 通过tool->Netlist Viewers->RTL Viewer,查看电路图

 创建一个向量波形文件,选择菜单项 File→New->VWF,添加信号

 

 功能仿真结果

 时序仿真结果

 全加器原理图输入

在打开半加器原理图文件情况下,选择菜中File中的Create/Update→CreateSymbolFilesforCurrentFile项,即可将当前文件变成一个元件符号存盘,以待在高层次设计中调用

 查看电路图

 仿真结果

 下载测试

配置引脚

 下载

 结果

输入信号 1,1,1

 输入信号1,0,0

2. Verilog代码实现

module full_adder(
	//输入信号,ain表示被加数,bin表示加数,cin表示低位向高位的进位
	input ain,bin,cin,
	//输出信号,cout表示向高位的进位,sum表示本位的相加和
	output reg cout,sum

);
reg s1,s2,s3;
always @(ain or bin or cin) begin
	sum=(ain^bin)^cin;//本位和输出表达式
	s1=ain&cin;
	s2=bin&cin;
	s3=ain&bin;
	cout=(s1|s2)|s3;//高位进位输出表达式
end
endmodule

查看电路图

 仿真步骤和上面相同

二.4位全加器

1.原理图实现

可以通过多个1位全加器的级联实现多位全加器。

仿真效果

功能仿真

时序仿真

 2.verilog代码

module fulladder4(cout,sum,a,b,cin);
output[3:0] sum;
output cout;
input[3:0] a,b;
input cin;
assign {cout,sum}=a+b+cin;
endmodule

编译后仿真步骤相同。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值