4.用VHDL语言设计一个4位先行进位加法器
① 理解要求,需要完成一个先行进位加法器,可采取化简后的公式,直接用逻辑门构造一个4位先行进位加法器。
② 公式和原理图:

③ 打开QuartusII,新建工程,工程命名为adder_first,开始编写源代码。
④ 写好源代码,保存文件。

LIBRARY IEEE;
use IEEE.std_logic_1164.all;entity adder_first isport(a:in std_logic_vector(3 downto 0);b:in std_logic_vector(3 downto 0);cin:in std_logic;s:out std_logic_vector(3 downto 0);cout:out std_logic);
end adder_first;architecture shixian of adder_first issignal c:std_logic_vector(3 downto 0);signal p:std_logic_vector(3 downto 0);signal g:std_logic_vector(3 downto 0);beginp(0)<=a(0) xor b(0);p(1)<=a(1) xor b(1);p(2)<=a(2) xor b(2);p(3)<=a(3) xor b(3);g(0)<=a(0) and b(0);g(1)<=a(1) and b(1);g(2)<=a(2) and b(2);g(3)<=a(3) and b(3);c(0)<=g(0) or(cin and p(0));c(1)<=g(1) or (g(0)and p(1)) or(cin and p(1) and p(0));c(2)<=g(2) or (g(1)and p(2)) or(g(0) and p(2) and p(1)) or (cin and p(2) and p(1) and p(0));c(3)<=g(3) or (g(2)and p(3)) or(g(1) and p(3) and p(2)) or (g(0) and p(3) and p(2) and p(1))or(cin and p(3)and p(2)and p(1)and p(0));s(0)<=p(0) xor cin;s(1)<=p(1) xor c(0);s(2)<=p(2) xor c(1);s(3)<=p(3) xor c(2);cout<=c(3);
end shixian;

(如图为源代码)

⑤ 编译与调试。确保顶层实现的命名和工程名一致。编译成功。

⑥ 查看RTL视图。

⑦ 结果分析及结论。
如RTL图所示,该4位先行进位加法器图像满足之前所列的公式。
⑧ 功能仿真的波形及验证。
a.新建波形文件,将对应的16种输入存储在波形文件adder_first.vwf中。
b.生成网表。

c.进行功能仿真。

波形图如下图:

d.结果分析及结论

⑩ 实现时序仿真。
a.仿真成功。

b.时序仿真波形图如下:



c.结果分析及结论(为方便说明以及观测,A,B,S向量表示的二进制数用在分析过程中统一用十进制数表示)

d.编译【classic timing analysis】-在compilation report中选择【timing analysis】-【tpd】(引脚到引脚的延时)

从a0到s2耗时最长,为10.630ns,从c0到s0耗时最短,为7.705ns,可结果由耗时最长的那个决定,故整体耗时为10.630ns。

五、实验结论
1、思考题
① 多路复用器的实现方式很多,请总结两种以上实现方法。
答 :
1)通过采用多个较小的复用器,合成一个较大的多路复用器,如用2-1多路复用器经过组合实现一个更大的复用器
2)设计一个n为的多路复用器,再进行调用即可

② 总结 VHDL 语言描述多路复用器的方法的常用语句。
答:process statement 、component statement 、generate statement 、Function statement

2、实验总结与实验心得
答:
实验总结:本次实验实现了多路复用器的实现,同时进一步学习和了解了行波加法器和先行进位加法器的区别和相同之处,以及关于Quartus里程序包要如何进行设计和调用。其中一个要注意的地方就是,调用程序包或者在全加器中使用先行设计好的加法器时,要先通过component语句进行申明。

心得:本次实验进一步熟悉了Quartus的使用,最大的收获是学会了程序包的自我设计和调用。个人感觉这个和C++里在主函数外先设计一个外调函数,再在主函数中进行申明和(赋值)调用十分相像。

hnu 数字电路 实验2.4 4位先行进位加法器相关推荐

  1. hnu 数字电路 实验2.1 8重3-1多路复用器

    一.实验目的 1.熟悉多路复用器.加法器的工作原理. 2.学会使用 VHDL 语言设计多路复用器.加法器. 3.掌握 generic 的使用,设计 n-1 多路复用器. 4.兼顾速度与成本,设计行波加 ...

  2. 16位先行进位加法器--原理篇

    前话 这个加法器写的是一波三折啊,昨天晚上花了两三个小时好不容易写完编译通过了,之后modelsim莫名其妙弹出一个对话框,我没看清就那么不小心一点,结果代码没了,惨痛啊.害的我今天早上又花了一上午的 ...

  3. 4位先行进位加法器_行波进位/超前进位加法器详解

    行波进位加法器是串行执行的,其高位的运算要依赖低位的进位,所以当输入数据的位数较多时,会形成很大的延迟并可能成为芯片的关键路径. 采用超前进位加法器(也叫先行进位加法器)可以有效减小这种延迟.下面介绍 ...

  4. hnu 数字电路 实验5 CPU大综合

    一.设计目的 完整.连贯地运用<数字逻辑>所学到的知识,熟练掌握 EDA 工具基本使用方法,为学习好后续<计算机原理>课程做铺垫. 二.设计内容 ① 按照给定的数据通路.数据格 ...

  5. hnu 数字电路 实验4.4 RAM

    4.用LPM_RAM_IO 定制一个 2568 的 RAM,实现对 RAM 的读写操作. ① 理解要求,需要用LPM_RAM_IO 定制一个 2568 的 RAM,实现对 RAM 的读写操作. ② 打 ...

  6. hnu 数字电路 实验1.3 模型机指令译码器

    3.用VHDL语言设计一个模型机指令译码器 ① 理解模型机指令译码器,相应的输入要对应上相应的输出. ② 打开QuartusII,新建工程,工程命名为zhi_ling,开始编写源代码. ③ 写好源代码 ...

  7. hnu 数字电路 实验2.2 n-1多路复用器

    2.用VHDL语言设计一个n-1多路复用器,调用该多路复用器定制为8-1多路复用器. ① 理解题意,分析题目要求我们先设计一个n-1的多路复用器,再调用这个多路复用器,构造一个8-1多路复用器. ② ...

  8. 4位先行进位加法器的vhdl程序_VHDL精密,Verilog简洁,但要写好都要遵守这25条通则...

    欢迎FPGA工程师加入官方微信技术群 点击蓝字关注我们FPGA之家-中国最好最大的FPGA纯工程师社群 当前最流行的硬件设计语言有两种,即 VHDL 与 Verilog HDL,两者各有优劣,也各有相 ...

  9. 4位先行进位加法器的vhdl程序_CPU是如何执行程序的?

    前言 代码写了那么多,你知道 a = 1 + 2 这条代码是怎么被 CPU 执行的吗? 软件用了那么多,你知道软件的 32 位和 64 位之间的区别吗?再来 32 位的操作系统可以运行在 64 位的电 ...

最新文章

  1. Java api 入门教程 之 JAVA的IO处理
  2. 【SpringMVC】登录状态验证
  3. Martin Fowler:数字化时代,远程与本地协同工作孰优孰劣?| IDCF
  4. 【算法系列之八】删除链表的倒数第N个节点
  5. 论文浅尝 | 用于视觉推理的显式知识集成
  6. Oralce的内存结构
  7. web测试和app测试相关
  8. 河池学院计算机宿舍,河池学院宿舍条件,宿舍环境图片(10篇)
  9. 使用XmlWriter写XML文件
  10. c语言和测绘程序设计,测绘程序设计(C语言版)
  11. C++ 基础 弱类型语言是指不需要进行变量/对象类型声明的语言。Python属于弱类型语言
  12. qpsk相点 matlab,qpsk调制解调matlab仿真程序详解
  13. CISA,CISM,CISSP证书区别及cisp,oscp,osce,che简介
  14. 谈谈RJ45线序的打法及口诀
  15. ENVI:如何进行遥感图像的分类?(支持向量机模型)
  16. python计算平均数、众数、中位数、极差、方差、标准差……
  17. 导入oracle 904,江湖救急..ora-904怎么处理?
  18. 微信小程序真机调试步骤
  19. 播放器初始化配置重点
  20. CommonAPI使用例子-HelloWorld

热门文章

  1. AWS VPC Endpoint
  2. 暴风影音3.11.06.09手动去广告方法 【转】
  3. 余弦知乎living
  4. 让Python带你看一场唯美的横飘雪!
  5. 3D目标检测SE-SSD 模型工程化复现
  6. (四)UE4编辑器菜单按钮
  7. 终于知道 Java agent 怎么重写字节码了
  8. 第二届微软CRM中国群线下峰会
  9. 一个C语言源程序是如何到一个可执行程序的
  10. 借名买房房产是谁的?