一位全加器的设计与实践

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

认识全加器

半加器

半加器是能够对两个一位的二进制数进行相加得到半加和以及半加进位的组合电路,其真值表如下
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
也就是说,这个半加器的输出表达式为S=A⊕B,C=AB,逻辑电路图如下
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发

一位全加器

全加器的真值表如下,其中Ain表示被加数,Bin表示加数,Cin表示低位进位,Cout表示高位进位,Sum表示本位和
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
即输出表达式为
Sum=Ain⊕Bin⊕Cin
Cout=(Ain⊕Bin)⋅Cin+Ain·Bin=(Ain&Bin)∣(Bin&Cin)∣(Ain&Cin)
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发

输出原理图实现一位加法器

创建工程

首先启动quartus软件,选择file,找到new project wizard,在填写工程的路径和名称之后的地方都直接下一步,知道出现以family为标题开头的地方。
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
EP4CE115F29C7芯片

半加器原理图输入

首先选择file,选择new,进入选择Block Diagram/Schematic File
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发

一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发

选择元件,添加一个and2,一个xor,两个input,两个output,组成如下图的电路

一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发

一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
保存文件,并编译
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发

一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
通过Tools->Netlist Viewers->RTL Viewer查看电路图
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
得到如图,便是成功

一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
创建一个向量波形文件,选择菜单项File->New->University Program VWF
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发

按照如下图所示操作,我这里截图尽量详细一点
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
编辑并保存
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
功能仿真结果
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
时序仿真结果
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
通过仿真可以看见结果是吻合的

全加器原理图输入

将设计项目设置为可调用的元件
在打开半加器原理图文件half_adder.bdf的情况下,选择菜中File中的Create/Update→CreateSymbolFilesforCurrentFile项,即可将当前文件h_adder.bdf变成一个元件符号存盘,以待在高层次设计中调用,当然这里有点尴尬的地方是我刚刚不小心把半加器命名成的all_adder,这里如果影响了观感求谅解。
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
接下来我们再绘制一个,还是老样子,选择file->new,选择Block Diagram/Schematic File
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
加入元件
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
做成如图所示
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发

这里先把这个文件置顶
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发

这里是如上相同的方式,保存编译查看电路图,仿真实现
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
功能仿真
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
时序仿真
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发

Verilog实现一位加法器

创建Verilog文件,还是file,new
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
输入代码

module Verilog1(//这里的名字与自己的文件名相同
	//输入信号,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

还是打开这个界面,显示这样就是成功编译
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
还是创建波形图文件,这里不多赘述了,依然是编辑成如下图的样式,编译运行
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
功能仿真
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
时序仿真
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
成功~

下载测试

芯片引脚配置表
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
找到quartus的pin planner
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
打开,设置引脚
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发

接下来电脑接入FPGA开发板。
如果是原理图进行实现的话,绘制的原理图会出现以下变化,输入输出旁边会标注刚刚绑定的引脚编号。
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
此处要需要自己重新编译一遍
然后如下图操作
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
选择好下图中的移动接口,没有这个接口要到在设备管理器中找到加感叹号的USB-blaster设备,并在一下路径下18.1/quatus/drivers/USB-blaster添加驱动。
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
回到上一级菜单,选中以下2框选处,点击start开始烧录。若4处出现success表示烧录成功。
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
烧录结果
一位全加器逻辑电路图,linux,开发语言,嵌入式硬件,fpga开发
这就是成功!

总结

实验到这里已经非常顺利了,接下来我们还有四位全加器的实验,也很有意思,拜了个拜~

参考文章

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

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

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

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

相关文章

  • FPGA编程入门——实现一位全加器

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

    2024年02月04日
    浏览(40)
  • 四位全加器的设计与实践

    通过底层逻辑,我们可以通过组建半加器到一位全加器再到四位全加器,四位全加器可以由四个一位全加器构成,加法器之间可以通过串行方式实现。通过将低位加法器的进位输出cout与相邻的高位加法器的最低进位输入信号cin相连接 每一次新建一个block文件和Verilog文件,编

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

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

    2024年02月03日
    浏览(46)
  • 【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)
  • 基于Quartus件完成1位全加器的设计及4位全加器的设计

    (1)、半加器的设计 半加器: 指对输入的两个一位二进制数相加a与b,输出一个结果位sum和进位cout 半加器真值表: a b sum cout 0 0 0 0 1 0 1 0 0 1 1 0 1 1 0 1 半加器输出表达式: 项目创建: 打开Quartus创建新项目: 设置项目路径及名称(adder4位实验名命名): 选择芯片(EP4CE115

    2024年02月05日
    浏览(41)
  • 实验四 QUARTUS开发环境实验 设计半加器、全加器和四位全加器 blueee的学习笔记

    一、实验目的 1、通过实验,能熟悉QUARTUS开发环境,能够掌握QUARTUS的原理图输入法设计电路,掌握使用相关仿真工具进行功能和时序仿真的方法; 2、通过实验,加深对全加器电路的理解,并能使用QUARTUS的原理图输入法完成全加器的设计,并能在QUARTUS中完成相关的仿真验证

    2024年02月05日
    浏览(98)
  • Verilog设计_全加器

    一种全加器的设计。 目录 一、全加器 二、代码实现 全加器是用门电路实现两个二进制数相加并求和的组合线路,也称为一位全加器,是一种常用的设计。全加器可以处理低位进位,并输出本位加法进位。多个一位全加器进行级联可以得到多位全加器,例如常用的二进制四位

    2024年02月07日
    浏览(50)
  • 07-层次化设计 -- 全加器

    数字电路中根据模块层次不同有两种基本的结构设计方法: 自底向上的设计方法和自顶向下的设计方法 自底向上的设计是一种传统的设计方法,对设计进行逐次划分的过程是从存在的基本单元出发的(基本单元是已有的或者是购买的),有基本单元构建高层单元,依次向上,直至构建

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

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

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

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

    2024年02月05日
    浏览(67)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包