一位全加器及四位全加器————FPGA


前言

环境:
1、Quartus18.0
2、vscode
3、基于Intel DE2-115的开发板


一、一位全加器

  • 全加器简介:
    全加器英语名称为full-adder,是用门电路实现两个二进制数相加并求出和的组合线路,称为一位全加器。一位全加器可以处理低位进位,并输出本位加法进位。多个一位全加器进行级联可以得到多位全加器。常用二进制四位全加器74LS283。

在这里插入图片描述

  • 输入输出真值表:

一位全加器的真值表如下图,其中Ai为被加数,Bi为加数,相邻低位来的进位数为Ci-1,输出本位和为Si。向相邻高位进位数为Ci

在这里插入图片描述

1、一位全加器的原理图设计

工程创建过程这里就不再赘述,之前已经仔细介绍过,芯片型号选为EP4CE115F29即可。具体操作看下面:
https://blog.csdn.net/qq_52215423/article/details/127832959

  • 在实现一位全加器之前需要先设计一下半加器:
    点击File->new:
    在这里插入图片描述
  • 选择元件:
    在这里插入图片描述
    -添加输入输出通道完成设计:
    在这里插入图片描述
  • 效果:
    在这里插入图片描述
  • 查看RTL图:
    在这里插入图片描述
  • 将设计的半加器设置为可调用的元件:
    在这里插入图片描述

保存为half_adder,博主这里把半加器命名成了quanjiaqi
,全加器命名成了quanjiaqi1。

  • 设计全加器的原理图:

  • 新建文件:
    在这里插入图片描述

  • 添加元件:

在这里插入图片描述

  • 效果:
    在这里插入图片描述
  • RTL图:
    在这里插入图片描述

2、一位全加器的Verilog编程

  • 1、创建Verilog文件:
    在这里插入图片描述
  • 代码:
module shiyan1(
	//输入信号,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

  • RTL电路图:
    在这里插入图片描述

3、上板效果

一位全加器

二、四位全加器

1、四位全加器的原理图设计

  • 将一位全加器设置为可调用的元件:

在这里插入图片描述

  • 原理图:

在这里插入图片描述

  • RTL电路图:

在这里插入图片描述

  • 仿真:

在这里插入图片描述

2、四位全加器的Verilog 编程

  • 创建文件:
    在这里插入图片描述
  • 代码:
module full_adder4(
    input[3:0] a,b,
    input cin,
    output[3:0] sum,
    output cout
);
    assign{cout,sum} = a+b+cin;
endmodule
  • RTL电路图:

在这里插入图片描述


三、总结

由于在实验课上未完成四位加法器的操作,这里就没有了上板的效果视频。这次的实验主要就是通过全加器对FPGA知识进行入门操作,通过自己设计原理图可以更清楚的知道工程的内部连线,自由性更大,更为直观。但是,通过verilog编程能够通过编程而不去了解里面是有什么组成的而实现RTL电路图,并且工程会根据使用的资源、线路去生成相对较优的RTL电路图。

四、参考资料

1、FPGA——1位全加器的实现
2、编程Verilog四位全加器

  • 9
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

混子王江江

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值