FPGA编程入门:Quartus II 设计1位全加器

2023-11-12

一、半加器和1位全加器原理

(一)半加器

如果A、B两数分别表示被加数和加数,用S表示A与B的本位和,用O表示向高一位的进位数。A与B相加可归纳如下四种情况:
在这里插入图片描述
把这四种情况,可归纳为真值表如下
在这里插入图片描述
根据真值表,可以写出逻辑式
在这里插入图片描述
可见本位和S的逻辑关系为“异或”逻辑,进位数image.png为“与”逻辑。MOS加法器,这种只考虑A、B两敬相加及向高位进位,而不考虑由低位向此位进位的加法电路,称为半加器。图3-12(a)为半加器逻辑图;38-12(b)为半加器电路图
在这里插入图片描述

(二)1位全加器

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

在这里插入图片描述
在这里插入图片描述
根据真值表,当然也可以列出卡诺图进行化简得出
在这里插入图片描述

在这里插入图片描述

二、实验目的

通过1位全加器的详细设计,掌握原理图输入以及Verilog的两种设计方法。
软件基于quartusII 13.0版本,开发板基于Intel DE2-115。

三、Quartus II设计半加器

1位全加器可以用两个半加器及一个或门连接而成, 因此需要先完成半加器的设计

(一)新建工程

1.File->
在这里插入图片描述
2.点击Next
在这里插入图片描述
3.设置工程的存储位置和项目名称
在这里插入图片描述
4.选择Next
在这里插入图片描述

5.选择目标芯片:cyclone IV E系列的EP4CE115F29C7在这里插入图片描述
6.EDA Tool Setting设置,直接Next
在这里插入图片描述
7.点击finish
在这里插入图片描述
之后界面上会出现顶层文件名和项目名:
在这里插入图片描述

(二)创建原理图

1file->new
在这里插入图片描述
2.Design Files->Block Diagram/Schematic File ->OK
在这里插入图片描述
3.点击按纽 Symbol Tool或直接双击原理图空白处
在这里插入图片描述
4.从Symbol窗中选择需要的符号,或者直接在name文本框中键入元件名
在这里插入图片描述
5.分别调入元件and2,xnor和输入输出引脚input和output。并如图用点击拖动的方法连接好电路。输入各引脚名:a、b, co和s。在这里插入图片描述
6.保存文件,选择菜单File - Save As,选择刚才为自己的工程建立的目录…\adder下,将已设计好的原理图文件取名为:half_adder.bdf(注意默认的后缀是.bdf),并存盘在此文件夹内
在这里插入图片描述
在这里插入图片描述
7.编译,点击图标进行编译,若无错误则可进行下一步,若有错进行原理图修改
在这里插入图片描述
在这里插入图片描述

(三)将设计项目设置成可调用的元件

为了构成全加器的项层设计,必预将以上设计的半加器half_adder.bdf设置成可调用的元件

选择FileCreate/UpdateCreate Symbol Files for Current File
在这里插入图片描述

(四)半加器仿真

1.新建波形文件filenewuniversity program VWF,选择后点击OK
在这里插入图片描述
2.点击空白处,选择insert node or busnode finder
在这里插入图片描述
3.
3.点击List,左面出现则触发器中所有的输入输出引脚。再在该界面上点击>>,则把左边所有的端口都选择到右边,点击两次OK,进入波形,
在这里插入图片描述
在这里插入图片描述
4.设置波形后保存
在这里插入图片描述

5.点击仿真编译按钮
在这里插入图片描述
报错
在这里插入图片描述

解决办法:
(1)点击Toolslaunch Simulation Library Complier
在这里插入图片描述

(2)配置相关设置

注意Output Directory一定要选择到simulation\qsim目录底下,不然还会报错

在这里插入图片描述

(3)出现以下提示就说明可以了
在这里插入图片描述
最终结果如图
在这里插入图片描述
5.时序仿真,点击时序仿真按钮
在这里插入图片描述
在这里插入图片描述

四、Quartus II设计全加器

(一)新建原理图

三、(二)新建原理图相同
以full_adder.bdf名将此全加器设计存在同一路径的文件夹中。3个input(ain,bin,cin),2个 output(cout,sum),2个half_adder,1个or2,连线如下

在这里插入图片描述

(二)将设计项目设置成顶层文件

1.选择projectset as top_level entity
在这里插入图片描述

2.如图
在这里插入图片描述

(三)全加器仿真

1.编译无错
在这里插入图片描述
2.功能仿真图
半加器仿真类似
在这里插入图片描述
3.时序仿真图:
在这里插入图片描述

五、硬件下载测试

(一)引脚绑定

引脚绑定前先要确定具体硬件电路,即目标芯片与外围电路(输入、输出显示等)的连接情况。实验室使用的ED2-115开发板,除了核心FPGA芯片外,还自带一些外围输入输出电路。我们就是利用这些输入输出电路来进行硬件测试
在这里插入图片描述

如全加器引脚绑定,可以这样设计:开发板上的18个拨码开关选其中三个,SW0,SW1,SW2分别接ain、bin、c(开关向上拨和向下拨分别显示输入是高还是低电平);LED0,LED1分别接co和sum,灯亮表示输出为“1”,灯灭
表示输出为“0”。

1.查看引脚
硬件设计好后,还需要查引脚图(引脚图见附录)进行引脚绑定。从 附 录 “ 表 4-1 拨 动 开 关 引 脚 配 置 ” 中 找 到 输 入 的 三 个 开 关SW0,SW1,SW2,再找到对应的“FPGA引脚号”。如图:
在这里插入图片描述
相应的,在附录的表 4-3 中查找到 LED 的引脚配置。
在这里插入图片描述
2.从菜单中选择assignmentspin planner
在这里插入图片描述3.调出引脚绑定窗口,然后从下拉窗口中选择相应的输入输出端口,再在location栏填入对应的 FPGA 引脚即可,如图
在这里插入图片描述
4.选定了引脚之后原理图文件一定要再编译一次,才能真正把引脚绑定上。引脚绑定好并编译过的文件如图:
在这里插入图片描述

(二)硬件测试

1.下载到硬件
把开发板接上电源,USB 接口接电脑。打开电源开关(注意不用下载时请一定关闭开关,以免烧坏板子)。点击软件工具栏上的按钮
在这里插入图片描述
2.则出现下载界面。第一次下载需安装硬件。即在下载界面中点击按钮“hardware setup…”,然后在弹出的对话框中选择“USB blaster”,再点击“ok”,则硬件被安装上
在这里插入图片描述
3.安装好硬件的界面如图。然后在下载的.sof 文件后面的复选框中打勾,再点击”start”,
当进度条达到 100%时,即下载成功,可以进行硬件观测
在这里插入图片描述
4.硬件观测图

ain bin cin sun cout
1 1 1 1 1

在这里插入图片描述

六、总结

本次实验储备了解了Quartus II仿真实现的过程,了解如何用其进行模拟仿真和硬件仿真。通过半加器和全加器的设计实现,更加了解它们的原理结构。

七、参考资料

MOS加法器(半加器、全加器)的原理及区别

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FPGA编程入门:Quartus II 设计1位全加器 的相关文章

  • 在vivado中使用tcl脚本(UG894)

    本文源自UG894 主要介绍如何在vivado中使用tcl脚本 1 vivado中如何获取tcl help vivado中任何自带的命令都可以通过 help 获取帮助信息 也可以直接输入 help 取得vivado命令合集 并通过 help
  • DDR的VTT有源端接和无源端接(slua886a笔记)

    DDR的VTT有源端接和无源端接 slua886a笔记 背景 对于DDR的VTT端接 一直有说法是有源端接可降低功耗 之前一直没仔细理解其中原因 现在找了些相关的资料来介绍和对比有源和无源端接 理解有源端接的优点和降低功耗的原理 主要基于读
  • 紫光同创 FPGA 开发跳坑指南(三)—— 联合 Modelsim 仿真

    Modelsim 是 FPGA 开发中重要的 EDA 设计仿真工具 主要用于验证数字电路设计是否正确 紫光 Pango Design Suite 开发套件支持联合 Modelsim 仿真 这里作简要的介绍 添加仿真库 方法一 打开 Pang
  • 【科普】波特率和比特速率的理解

    什么是波特率 单位时间内传输的码元个数称为波特率 单位为 Baud 那码元又是什么呢 码元又称为 符号 即 symbol 维基百科上对码元的解释 持续一段固定时间的通信信道有效状态就是码元 这么解释比较抽象 可以解释码元的物理意义 在通信信
  • Matlab 高斯信道下QPSK通带通信系统的简单仿真

    1 原理 2 仿真 3 总结反思 4 参考资料 1 原理 QPSK的具体内容请参考百度 QPSK的调制jie框图大致如下 QPSK信号可以采用正交调制的方式产生 如第一张图片的左半部分 I路信号与cos 信号相乘 Q 路信号与sin信号相乘
  • DEBUG:Generate Bitstream失败

    问题 约束失败 解决 确保IO初始化引脚正确 和选择合适的电平
  • FPGA零基础学习之Vivado-UART驱动教程

    FPGA零基础学习之Vivado UART驱动教程 本系列将带来FPGA的系统性学习 从最基本的数字电路基础开始 最详细操作步骤 最直白的言语描述 手把手的 傻瓜式 讲解 让电子 信息 通信类专业学生 初入职场小白及打算进阶提升的职业开发者
  • 关于Keil中Memory中观察不到数据变化的问题以及启动文件栈的初始化

    关于Keil中Memory中观察不到数据变化的问题 在KEIL中观察Memory数据变化 一定要记得只能在RAM地址或ROM之内观察 如下图所示 RAM的地址设置在地址为0x20000000开始的地方 大小为0x20000 因此只有在这个范
  • 【FPGA】:频率测量

    转载 1 FPGA频率测量的三种方法 直接测量法 间接测量法 等精度测量法
  • 数码管电子时钟

    文章目录 前言 一 回顾数码管 二 任务描述 三 系统框图 四 模块调用 五 模块原理图 六 工程源码 6 2 时钟计数模块代码 6 2 数码管驱动模块代码 6 3 顶层模块代码 七 仿真测试 7 1 测试代码 7 2 仿真结果 八 管脚信
  • 上拉电阻和下拉电阻

    一 定义 上拉电阻 将一个不确定的信号 通过一个电阻与电源VCC相连 固定在高电平 下拉电阻 将一个不确定的信号 通过一个电阻与地GND相连 固定在低电平 二 作用 提高输出信号驱动能力 确定输入信号电平 防干扰 限流 阻抗匹配 抗回波干扰
  • 握手2倍速率进,一倍速率出[verilog]

    module two to one parameter WORD LEN 33 input clk input arst input 2 WORD LEN 1 0 i din input i din valid output o din r
  • Verilog之assign

    Verilog中的关键词assign主要用于如下两个地方 数据流建模 用于数据流建模的显示连续赋值语句语法格式如下
  • TestBench编写_激励产生

    TestBench编写 激励产生 TestBench编写 激励产生 基本背景 读取函数介绍 a fopen函数使用 b fread函数使用 c fclose函数使用 实际使用 TestBench编写 激励产生 基本背景 最近遇到项目中需要对
  • FPGA_时钟显示(时钟可调)

    1 实验说明 在数码管显示数据的基础上 让六位数码管显示数字时钟 并且通过按键可以对时间进行修改 实验目标 六位数码管分别显示时间的时分秒 且通过按键可实现加减调整时间及清零功能 key1 切换键 选择待调整的时间单位 时 分 秒 key2
  • 【DDR3 控制器设计】(3)DDR3 的写操作设计

    写在前面 本系列为 DDR3 控制器设计总结 此系列包含 DDR3 控制器相关设计 认识 MIG 初始化 读写操作 FIFO 接口等 通过此系列的学习可以加深对 DDR3 读写时序的理解以及 FIFO 接口设计等 附上汇总博客直达链接 DD
  • FPG—VGA显示器字符显示(附代码)

    目录 1 实操 1 1 字符取模 1 2 顶层模块 1 3 图像数据生成模块 1 3 1 模块框图 1 3 2 波形图绘制 1 3 3 代码编写 1 3 4 仿真验证 2 总结 本例程大部分与VGA显示驱动内容相同 只是显示部分改变了 故此
  • 【FMC141】基于VITA57.4标准的4通道2.8GSPS 16位DA播放子卡(2片DAC39J84)

    FMC141是一款基于VITA57 4标准的4通道2 8GSPS 2 5GSPS 1 6GSPS采样率16位DA播放FMC子卡 该板卡为FMC 标准 符合VITA57 4与VITA57 1规范 16通道的JESD204B接口通过FMC 连接
  • [Verilog] Verilog 基本格式和语法

    主页 元存储博客 全文 3000 字 文章目录 1 声明格式 1 1 模块声明 1 2 输入输出声明 1 3 内部信号声明 1 4 内部逻辑声明
  • Vivado ILA的debug信息保存与读取

    保存 write hw ila data D Project FPGA ILA Debug Data 202401041115 ila upload hw ila data hw ila 1 读取 display hw ila data r

随机推荐

  • 数据挖掘-可挖掘的数据类型

    可挖掘的数据类型 1 数据库数据 数据库系统 也成数据库管理系统 DBMS 由一组内部相关的数据 称作数据库 和一组管理和存取数据的软件程序组成 关系数据库是表的汇集 每个表都被赋予一个唯一的名字 每个表都包含一组属性 列或字段 并且通常存
  • 【Linux】用户和权限

    文章目录 前言 什么是 root 用户 su 命令和 exit 命令 sudo 命令 为普通用户配置 sudo 认证 用户 用户组管理 什么是Linux 用户和用户组 用户组管理 用户管理 创建用户 删除用户 查看用户所属组 将指定用户添加
  • SOCK_RAW PF_PACKET IPv6带物理地址发送报文

    通过link layer发送IPv4 IPv6 例子如下 http www pdbuchan com rawsock rawsock html 发送ipv4 http www pdbuchan com rawsock tcp4 ll c 发
  • onedrive的多电脑同步妙用

    序言 很多时候 一些问题与想法 必须要有多个设备的背景 概述 通过两台电脑的日常使用思考 展现OneDrive这一同步利器 以及OneDrive的理念与意义 正文 背景 三月份由于一些原因 入手了一个主机 原来的笔记本一下子变成了键盘托 想
  • svn在idea中的使用

    idea在使用svn之前需要对svn进行一下设置 svn默认是需要你去指定客户机自己安装的svn客户端 但这要求我们当初安装时需要将安装svn的 exe那个程序选上 一般大家安装时都不会安装 idea默认集成的也有svn 我们只要简单设置一
  • 6.带你入门matlab 协方差和相关系数( matlab程序)

    1 简述 协方差 V cov X V cov X flag 同上 X为矩阵 相关系数 R corr X X为矩阵 协方差和相关系数函数的使用如下 代码及运行结果 协方差 clear all X1 rand 1 5 c1 cov X1 方差
  • 常用的文件操作命令-重定向-管道符-笔记

    文件操作命令 mkdir 文件名 创建目录 mkdir 文件名 文件名 连续创建目录 mkdir p 文件名 文件名 递归创建目录 touch 文件 创建文件 rm rf 强制且不提醒删除文件 rmdir 删除目录 mv 文件名 新文件名
  • 解决Debian 11系统缺少无线网卡固件rtl8192cfw.bin

    解决Debian 11系统缺少无线网卡固件rtl8192cfw bin 一 先简单介绍解决办法 rtlwifi rtl8192cfw bin 是无线网卡的固件 其实缺少它网卡也是可以用的 只是不知道是不是这个原因导致丢包频繁 在CSDN找到
  • java 前缀树的实现,敏感词的匹配和标记

    目录 一 前缀树的介绍和定义 1 前缀树的定义 2 前缀树的结构 二 前缀树的实现 1 向前缀树中增加词语 2 向前缀树中删除词语 3 对于使用前缀树进行词语标识 4 前缀树的实现代码 三 前缀树使用及测试 1 向前缀树上增加词语 2 根据
  • 【计算机视觉

    文章目录 一 检测相关 13篇 1 1 Polygon Intersection over Union Loss for Viewpoint Agnostic Monocular 3D Vehicle Detection 1 2 Radar
  • c++ 和cuda混合编程 VS2015 C++ 调用 cuda

    1 新建一个C 项目 2 右键添加一个cuda C C file 3 添加下面 lib 库 右键项目 gt 属性 gt 链接器 gt 输入 gt 附加依赖项目 cudart static lib kernel32 lib user32 li
  • S3C2440之PWM

    include uart h include stdlib h MS延时 void delay unsigned int time unsigned int i j for i 0 i
  • python通过ssl加密连接mysql

    目录 1 django程序的配置 2 pymysql连接数据库 3 DBUtils数据库连接池连接配置 我们在连接某些数据库时 需要提供ssl证书 如果是IT的数据库 那么可能会提供下载 如果是自己想做 可参考如下步骤 https dev
  • 基于Docker搭建Redis7.0主从哨兵集群高可用模式

    Docker搭建Redis主从哨兵模式 本文基于docker compose Redis7 0版本搭建Redis1主2从3哨兵高可用集群 不同版本redis配置文件略有差异 请参考官方文档Github地址与Redis官网地址 如下图可以看出
  • 微信怎么发匿名消息 微信发匿名消息方法【详解】

    很多小伙伴加了微信好友后 有些话难以说出口 想给对方发送一些匿名消息 掩盖自己的身份 保护个人隐私 这要怎么做呢 小编今天就为大家支个招 轻松搞定匿名消息设置方法 赶紧来看看吧 微信怎么发匿名消息 1 打开微信 搜索 匿名的信 点击进入匿名
  • 评测:对接GPT-4的NewBing使用体验变化

    GPT 4是OpenAI发布的最新一代语言模型 于2023年3月14日正式发布 并通过API和ChatGPT Plus平台向用户开放 微软也证实 在GPT 4正式发布之前 就已经在部分版本的Bing中使用GPT 4技术 本文旨在对使用GPT
  • 华为OD机试真题 Java 实现【寻找符合要求的最长子串】【2023Q1 200分】

    一 题目描述 给定一个字符串 s 找出这样一个子串 该子串中的任意一个字符最多出现2次 该子串不包含指定某个字符 请你找出满足该条件的最长子串的长度 二 输入描述 第一行为要求不包含的指定字符 为单个字符 取值范围 0 9a zA Z 第二
  • 在ubuntu上安装qt

    1 登录VM 上网下载Qt 保存路径一般在下载文件夹 可以下载后放到自定义文件夹 2 下载完成后 cd到保存文件的文件夹 并执行命令 sudo chmod a x qt opensource linux x64 5 9 run 将文件改变成
  • 数据结构进阶(一)

    更多内容可以访问我的个人博客 1 二叉查找树 参考 深入学习理解二叉搜索树 附详细讲解与实例分析 1 1 基本概念 二叉查找树 也称二叉搜索树 或二叉排序树 其要么是一颗空树 要么就是具有如下性质的二叉树 1 若任意节点的左子树不空 则左子
  • FPGA编程入门:Quartus II 设计1位全加器

    FPGA编程入门 Quartus II 设计1位全加器 一 半加器和1位全加器原理 一 半加器 二 1位全加器 二 实验目的 三 Quartus II设计半加器 一 新建工程 二 创建原理图 三 将设计项目设置成可调用的元件 四 半加器仿真