FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

这篇具有很好参考价值的文章主要介绍了FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、半加器和全加器简介

1.1 半加器

1、半加器是指对输入的两个一位二进制数相加,输出一个半加结果位和半加进位的组合电路,是没有进位的输入加法器电路,是一个实现一位二进制数的加法电路。

2、半加器的真值表如下;
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器
S位结果位,C为进位

3、由真值表可以推出半加器的逻辑表达式为:
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

4、半加器逻辑电路图

FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

1.2 一位全加器

1、若两个多位数相加,除了要考虑对应位的数相加外,还必须考虑与低一位的进位数相加。因此,两个多位数相加时,每位加法器需要有三个输入端和两个输出端,这种加法器称为全加器。

2、 一位全加器的真值表:
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

3、一位全加器的逻辑电路图
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

二、原理图实现半加器与全加器

2.1 半加器

2.1.1 创建项目

按照下图所示顺序启动Quartus Ⅱ并完成项目:
设置文件路径顶层文件名后基本一路next

FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

选择相应的芯片与器件库,博主所用器件库为cyclone Ⅳ E,芯片为EP4CE115F29C7FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器
最后点击finish

2.1.2 原理图设计半加器

点击左上角File——New
选择Block Diagram/Schematic File
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

双击空白处,弹出器件选择窗口,输入and2 xor选择与门和异或门,并添加输入输出(input、output),同时可以通过双击器件,对器件进行命名,最终结果如下图所示:

FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

保存文件,并编译

FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

编译通过后可通过下图所示操作查看电路图

FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

半加器数字逻辑电路图如下:

FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

2.1.3 半加器波形仿真

按照下图所示进行操作:

File——New
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器
(或者双击左方空白处)

FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

而后对插入的输入信号进行波形编辑,赋予真值
选择信号波形时,长按鼠标左键选中波形上方空白处即可,如下图所示(若选到横线则会同时选中上下两段信号)
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

选中后通过点击工具栏的高低电平进行设置
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

点击下图按钮进行仿真
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

仿真结果如下:
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器
如果出现报错,可查看博主过往博客,进行仿真器设置,或查看文章末尾的参考博客。
运行结果符合半加器真值表

2.1.4 将半加器设置为可调用元件

为了方便构建全加器,可先将半加器设置为可调用的元件

FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

2.2 全加器

2.2.1 新建原理图

基本步骤同半加器(若要调用上文设计的半加器元件,需要将全加器与半加器文件设置为同一路径),设计结果如下:
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

2.2.2 Verilog语言设计全加器

新建verilog文件,输入以下代码:

FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

module fulladder(
	//输入信号,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

注意,顶层文件名需要同module模块名一致,否则将编译失败!

进行编译:
无报错FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器
查看电路逻辑图(同半加器):

FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

进行波形时序仿真(同半加器):
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

三、上板测试

3.1 全加器

点击此按钮,进行引脚的绑定(或者点击工具栏Assignments——PIN Planner):
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

由于博主所有的板子为DE2-115,芯片为EP4CE115F29C7,该板引脚图如下所示:
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器
博主的引脚设置如下:
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器
设置完成后需要再进行一次编译,才可绑定完成上板!
第一次连接开发板后会提醒下载相关驱动,如果没有提醒,参考此博文

驱动设置完成后点击如下按钮:
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

然后如下图进行选择,Hardware选择USB-Blaster(博主实验已经完成,未连接板子所以下图无显示驱动),点击Start后待右上角Progress显示100%即证明烧录成功!

FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器
运行效果如下:
开关上拨为置1,LED亮为1
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

3.2 拓展:四位全加器

代码如下:

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

引脚绑定如下图:
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器
运行结果如下:
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器
FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器

四、总结

本次实验复习了Verilog语言的一些基本语法与QuartusⅡ的一些基础设计、调试功能。设计并实现了半加器,全加器,四位全加器,使我对他们的电路结构有了进一步的理解。

五、参考资料

https://blog.csdn.net/weixin_56102526/article/details/123536389
https://blog.csdn.net/qq_43279579/article/details/115480406
https://blog.csdn.net/lvzhshengh/article/details/115918262文章来源地址https://www.toymoban.com/news/detail-424346.html

到了这里,关于FPGA入门:QuartusⅡ实现半加器,全加器,四位全加器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

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

    环境: 1、Quartus18.0 2、vscode 3、基于Intel DE2-115的开发板 全加器简介: 全加器英语名称为full-adder,是用门电路实现两个二进制数相加并求出和的组合线路,称为一位全加器。一位全加器可以处理低位进位,并输出本位加法进位。多个一位全加器进行级联可以得到多位全加器。

    2024年02月03日
    浏览(36)
  • FPGA编程入门——基于Quartus件完成一个1位全加器的设计

    基于Quartus件完成一个1位全加器的设计,分别采用:1)原理图输入 以及 2)Verilog编程 这两种设计方法。开发板基于Intel DE2-115。 在此基础上,用原理图以及Verilog 编程两种方式,完成4位全加器的设计,对比二者生成的 RTL差别;使用modelsim验证逻辑设计的正确性,并在DE2-115开

    2024年02月05日
    浏览(43)
  • FPGA:什么是半加器?什么是全加器?多比特数据相加怎么求?如何用面积换速度?

    在FPGA中计算两个数据相加和C语言中的加法不太一样,在FPGA中是二进制相加,要考虑数据的进位、数据时单比特还是多比特,数据若位宽过大引起的时延该怎么解决,本文就对以上问题进行梳理 另外我想挖个新坑,把HDLBits中的内容整理一下,就从加法器进行入手,等写好了

    2024年02月03日
    浏览(22)
  • 【FPGA】Verilog:模块化组合逻辑电路设计 | 半加器 | 全加器 | 串行加法器 | 子模块 | 主模块

    前言: 本章内容主要是演示Vivado下利用Verilog语言进行电路设计、仿真、综合和下载 示例:加法器   ​ 功能特性: 采用 Xilinx Artix-7 XC7A35T芯片  配置方式:USB-JTAG/SPI Flash 高达100MHz 的内部时钟速度  存储器:2Mbit SRAM   N25Q064A SPI Flash(样图旧款为N25Q032A) 通用IO:Switch :

    2024年02月15日
    浏览(33)
  • FPGA—基于Quartus软件设计全加器

    本篇博客主要是基于Quartus软件件完成一个1位全加器的设计,分别采用:1)原理图输入 以及 2)Verilog编程 这两种设计方法。开发板基于Intel DE2-115。 1、半加器 1、定义: 半加器是能够对两个一位的二进制数进行相加得到半加和以及半加进位的组合电路。 2、真值表: A,B表示

    2024年02月06日
    浏览(30)
  • 【基础知识】~ 半加器 & 全加器

    半加器,就是不考虑进位的加法器,只有两个输入和两个输出:输入A和B,输出和数sum和进位cout,半加器真值表如下: 全加器就是在半加器的基础上引入一个进位输入,总共三个输入两个输出。全加器真值表如下: 这里的输出一共有两个,一个sum,一个进位cout。sum的值是

    2024年02月11日
    浏览(28)
  • FPGA编程入门——实现一位全加器

    然后通过4个1位全加器的串行级联,完成一个4位全加器的原理图设计;再改用 Verilog编程(3种模式:门电路、数据流和行为级描述),完成这个4位全加器设计,并观察Verilog代码编译综合后生成的 RTL电路,与之前电路图设计的4位全加器电路进行对比 。 如果仿真波形的逻辑功

    2024年02月04日
    浏览(27)
  • 【无标题】FPGA编程入门——实现一位全加器

    1、首先基于Quartus 软件采用原理图输入方法完成一个1位全加器的设计。然后通过4个1位全加器的串行级联,完成一个4位全加器的原理图设计;再改用 Verilog编程(3种模式:门电路、数据流和行为级描述),完成这个4位全加器设计,并观察Verilog代码编译综合后生成的 RTL电路,

    2024年02月03日
    浏览(31)
  • 加法器、半加器、全加器、超前进位加法器

    简单来讲,半加器不考虑低位进位来的 进位值 ,只有两个输入,两个输出。由一个与门和异或门构成. 真值表: 输入 输出 A B C S 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 半加器不考虑低位向本位的[进位],因此它不属于[时序逻辑电路],有两个输入端和两个输出。 设加数(输入端)为A、B

    2024年02月02日
    浏览(40)
  • Quartus实现一位全加器

    真值表 A B C0 S 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 表达式 S=A⊕B C=AB 真值表 ain bin cin cout sum 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 表达式 Sum=Ain⊕Bin⊕Cin Cout=(Ain⊕Bin)⋅Cin+AinBin=(AinBin)∣(BinCin)∣(AinCin) 选择File-New Project Wizard 设置项目路径和项目名 按个人需求选择芯片

    2024年02月08日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包