FPGA—基于Quartus软件设计全加器

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

前言

本篇博客主要是基于Quartus软件件完成一个1位全加器的设计,分别采用:1)原理图输入 以及 2)Verilog编程 这两种设计方法。开发板基于Intel DE2-115。

一、理解全加器

1、半加器

1、定义:
半加器是能够对两个一位的二进制数进行相加得到半加和以及半加进位的组合电路。
2、真值表:
A,B表示二进制数,C表示半加进位,S表示半加和
全加器quartus,fpga开发

2、1位全加器

1、真值表:
Ain表示被加数,Bin表示加数,Cin表示低位进位,Cout表示高位进位,Sum表示本位和
全加器quartus,fpga开发

二、通过原理图实现1位全加器

1、创建工程

启动 Quartus II 软件,选择File->New Project Wizard,在出现的界面下先Next,填写工程的路径和名称,然后接着Next,直到出现下面界面并进行相应操作。接着一路Next,直到Finish,完成工程的创建。
全加器quartus,fpga开发

2、半加器原理图设计

1、设计原理图

首先选择File->New,进入后选择Block Diagram/Schematic File
全加器quartus,fpga开发
选择元件,分别添加and2和xor。
全加器quartus,fpga开发
添加输入输出,完成设计原理图
全加器quartus,fpga开发
保存文件,并编译
通过tool->Netlist Viewers->RTL Viewer,查看电路图
全加器quartus,fpga开发

2、仿真实现

创建一个向量波形文件,选择菜单项 File→New->VWF
全加器quartus,fpga开发
添加信号
全加器quartus,fpga开发
编辑信号
全加器quartus,fpga开发
保存文件并启动仿真:
功能仿真结果
全加器quartus,fpga开发
时序仿真结果
全加器quartus,fpga开发
通过仿真结果,可以发现得到的结果与真值表中是相吻合的。

3、全加器原理图设计

1、将设计项目设置为可调用的元件

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

2、原理图绘制

首先选择File->New,进入后选择Block Diagram/Schematic File
然后选择元件:
加入adder和or2
全加器quartus,fpga开发
添加输入输出,完成效果
全加器quartus,fpga开发
保存文件,并编译
通过tool->Netlist Viewers->RTL Viewer,查看电路图
全加器quartus,fpga开发

3、仿真实现

创建一个向量波形文件,选择菜单项 File→New->VWF
全加器quartus,fpga开发
添加信号
全加器quartus,fpga开发
编辑信号
全加器quartus,fpga开发
保存文件并启动仿真
功能仿真结果
全加器quartus,fpga开发
时序仿真结果
全加器quartus,fpga开发
通过仿真结果,可以发现得到的结果与真值表中是相吻合的。

三、通过Verilog编程实现1位全加器

1、创建Verilog文件

全加器quartus,fpga开发

2、代码实现

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

保存并编译文件
通过tool->Netlist Viewers->RTL Viewer,查看电路图
全加器quartus,fpga开发

3、仿真实现

创建一个向量波形文件,选择菜单项 File→New->VWF
全加器quartus,fpga开发
添加信号
全加器quartus,fpga开发
编辑信号
全加器quartus,fpga开发
保存文件并启动仿真
功能仿真结果
全加器quartus,fpga开发
时序仿真结果
全加器quartus,fpga开发
通过仿真结果,可以发现得到的结果与真值表中是相吻合的。

四、通过Verilog编程实现四位全加器

由于我们已经实现1位全加器的完成后,可以根据多个1位全加器的级联实现多位全加器。
因此我们还能采用Verilog编程实现4位全加器。

1、代码实现

module adder4 (cout,sum,ina,inb,cin);
  input  [3:0] ina,inb;
  input cin;
  output [3:0] sum;
  output cout;

  assign {cout,sum} = ina + inb + cin;
  endmodule

保存并编译文件
通过tool->Netlist Viewers->RTL Viewer,查看电路图
全加器quartus,fpga开发

2、仿真实现

创建一个向量波形文件,选择菜单项 File→New->VWF
添加信号,步骤与上文一样
全加器quartus,fpga开发
编辑信号
全加器quartus,fpga开发
功能仿真
全加器quartus,fpga开发
时序仿真
全加器quartus,fpga开发

五、总结

此次学习主要是FPGA的编程入门,学习了全加器的基本原理和理论。并且基于Quartus软件分别使用了原理图设计和Verilog编程来设计最基本的1位全加器,在此基础上,我们可以根据多个1位全加器的级联来设计多位全加器,虽然通过这种方法我们可以更深入的理解其原理,但是这种使用原理图设计的方法在元件较多的测试里面显得十分繁琐,因此我建议使用Verilog编程的方法来实现多位全加器。

六、参考资料

FPGA——1位全加器的实现文章来源地址https://www.toymoban.com/news/detail-735921.html

到了这里,关于FPGA—基于Quartus软件设计全加器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • # Quartus实现四位全加器

    1.首先将之前做的一位全加器作为模块选择File-Create/Update-CreateSymbolFilesforCurrentFile 选择File-New-Block Diagram/Schematic File 选择元件(四个fulladder,两个input,两个output,两个gnd) 原理图如下(注意标注输入输出名和分支名) 编译成功后选择tool-Netlist Viewers-RTL Viewer得到电路图如下

    2024年02月08日
    浏览(49)
  • 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日
    浏览(46)
  • Quartus-II利用两个半加器实现简单全加器

    软件基于 quartusII 13.1 版本,开发板基于Intel DE2-115 。 1.新建并命名工程 2.选择芯片型号 3.新建半加器原理图

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

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

    2024年02月15日
    浏览(51)
  • 一位全加器及四位全加器————FPGA

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

    2024年02月03日
    浏览(50)
  • FPGA实现1位全加器和4位全加器

    1、基于Quartus件完成一个1位全加器的设计,分别采用:1)原理图输入 以及 2)Verilog编程 这两种设计方法。 2、在此基础上,用原理图以及Verilog 编程两种方式,完成4位全加器的设计,对比二者生成的 RTL差别;使用modelsim验证逻辑设计的正确性。 num1和num2是加数,cin是低位进

    2024年02月05日
    浏览(40)
  • FPGA——1位全加器和4位全加器的实现

    1、半加器 半加器是实现两个一位二进制数加法运算的器件。它具有两个输入端(被加数A和加数B)及输出端Y。 是数据输入被加数A、加数B,数据输出S和数(半加和)、进位C。 A和B是相加的两个数,S是半加和数,C是进位数。 所谓半加就是不考虑进位的加法,它的真值表如下 (见表

    2024年02月04日
    浏览(64)
  • 【FPGA实验一】半加器全加器实现

    半加器 什么是半加器? 半加器是能够对两个一位的二进制数进行相加得到半加和以及半加进位的组合电路。 半加器的真值表 半加器表达式: 半加器电路图: 建立原理图 启动 Quartus II 软件,选择File-New Project Wizard,在出现的界面下先Next,填写工程的路径和名称,然后接着

    2024年02月12日
    浏览(45)
  • FPGA基础——全加器

    全加器英语名称为full-adder,是用门电路实现两个二进制数相加并求出和的组合线路,称为一位全加器。一位全加器可以处理低位进位,并输出本位加法进位。多个一位全加器进行级联可以得到多位全加器。 一位全加器为例 Ain表示被加数,Bin表示加数,Cin表示低位进位,Cou

    2024年02月09日
    浏览(45)
  • 【FPGA】如何理解全加器

    半加器 比较容易理解,它的电路指对两个输入数据位(a、b)相加,输出一个结果位(sum)和进位(cout),但没有计算进位输入的加法器电路。 输出表达式 相比半加器, 全加器 是将低位进位输入也代入计算的加法电路,同样输出一个结果位和进位。1位全加器就是计算带进

    2024年02月05日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包