因为CSDN传文档内的大量图片排版太麻烦了,所以直接上整个文档导出图,随便吧,反正只是备份存个档,也没什么人看。





下面是没有图片的文字部分,只是方便索引,没有排版

实验二 多路复用器的实现
班级 姓名 学号
一、实验目的
1.熟悉多路复用器、加法器的工作原理。
2.学会使用VHDL 语言设计多路复用器、加法器。
3.掌握generic 的使用,设计n-1 多路复用器。
4.兼顾速度与成本,设计行波加法器和先行进位加法器。

二、实验内容
1、利用VHDL语言设计一个8重3-1多路复用器,实现3个八位向量输入,选择一个输出的功能。
2、利用VHDL语言,使用generic设计n-1多路复用器并调用它定制为8-1多路复用器.
3、了解4位行波加法器、4位先行进位加法器的原理并设计VHDL程序。查看并分析其原理图,最后进行仿真验证。

三、实验方法
1、 实验方法
采用基于FPGA进行数字逻辑电路设计的方法。
采用的软件工具是Quartus II。

2、 实验步骤
1、 新建,编写源代码。
(1).选择保存项和芯片类型:【File】-【new project wizard】-【next】(设置文件路径,在本次实验中,我将四个实验项目分别设置三个project name为MUX3_1、N_1MUX、ADDER和PREADD)-【next】(add添加文件,三个实验项目分别设置文件名MUX3_1.vhd、N_1MUX.vhd、ADDER.vhd和PREADD.vhd)-【properties】(检查文件类型type=VHDL)-【next】(三个项目都统一选择芯片类型family=Cyclone;name= EP1C3T100A8)-【next】-【finish】
(2).新建:【file】-【new】(选择VHDL File)-【OK】
2、写好源代码,保存文件(分别为MUX3_1.vhd、N_1MUX.vhd、ADDER.vhd和PREADD.vhd)。
3、编译与调试。确定源代码文件为当前工程文件,点击【processing】-【start compilation】进行文件编译,编译成功。
4、波形仿真及验证(包括功能仿真和时序仿真)。
新建一个vector waveform file。通过操作:右击 -【insert】-【insert node or bus】-【node finder】(pins=all;【list】)-【>>】-【ok】-【ok】。接着设置输入波形,然后点击【start simulation】开始仿真,查看时序仿真输出波形图。
在【assignments】-【setting】-【simulator settings】-【simulation mode】中,将timing修改为functional,然后再点击【processing】- 【Generate Functional Simulation Netlist】成功后点击【start simulation】开始仿真,查看输出功能仿真波形图。
5、时序分析:选择【start classic timing analyzer】-在compilation report中选择【timing analysis】-【tpd】(查看引脚到引脚的延时)
6、查看RTL Viewer:【Tools】-【netlist viewer】-【RTL viewer】。

四、实验过程
(一)8重3-1多路复用器
1、 编译过程
a)源代码如图(VHDL设计)

b)编译、调试过程
编译报告,资源消耗如下:
警告信息共一条:

c) RTL视图

d)结果分析及结论
程序正常通过编译,出现一则警告,提示“定义的管脚没有和外部的管脚连接”。因为本次实验并没有在实体芯片上运行,所以暂时可以不做处理,往下几个实验的警告相同,所以不再赘述。
2、 波形仿真
a) 波形仿真过程:插入S、I0、I1、I2和Y五个节点(S、I0、I1、I2为输入节点,Y为输出节点),设置输入波形,点击为S设置计时器信号,从00开始;设置I0为固定输入01010101,I1为固定输入11001101,I2为固定输入00110110,保存并对应仿真。
b) 功能仿真波形图
c) 结果分析及结论
当输入S为00时,Y输出为01010101,即选择了I0输出,正确;
当输入S为01时,Y输出为11001101,即选择了I1输出,正确;
当输入S为10时,Y输出为00110110,即选择了I2输出,正确;
当输入S为11时,Y输出为00000000,因为这种情况下没有对Y进行赋值,所以输出是默认初值。

d)时序仿真波形图

e)结果分析及结论
可以看出每次输入信号S变换后,输出有约15ns的延迟,且输出信号作出反应时产生了在短时间内的信号波动,其余表现同功能仿真.

3.时序分析
a)时序分析图

b)结果分析及结论
S[0]引脚到Y[0]引脚的实际p2p时间最长,为15.902ns,I0[7]引脚到Y[7]引脚的实际p2p时间最短,为9.617ns。

(二)设计n-1多路复用器并调用它定制为8-1多路复用器
1.编译过程
a)源代码如图(VHDL设计)
b)编译、调试过程

编译报告,资源消耗如下:

c) RTL视图
d)结果分析及结论
程序正常通过编译,我通过调用函数以行为描述的方式的设计,从RTL电路原理图看出实际实现的电路模块为选择器。

3、 波形仿真
a) 波形仿真过程:插入S,I,Y三个信号(S、I为输入节点,Y为输出节点),设置输入波形,点击为S设置三位计时器信号从000开始,设置I[7~0]为固定输入01011001,保存并对应仿真。

b) 功能仿真波形图

c) 结果分析及结论
自输入S从000到111,应当分别选择I的第0到7位输出看到输出波形随着S输入信号的变换依次为10011010,正确。

d)时序仿真波形图
e)结果分析及结论
可以看出,时序仿真每次输入时变化,输出在延迟13秒左右作出反应,且在部分输入变化时存在冒险;将输入改成按照格雷码进行变换时,输出的冒险很好地消除了(见下图)。

3.时序分析
a)时序分析图

b)结果分析及结论
S[1]引脚到Y引脚的实际p2p时间为14.796ns ,是所有引脚间tpd最长的,S[2]引脚到Y引脚的实际p2p时间为12.205ns,时延最短。

(三)行波进位加法器
1.编译过程
a)源代码如图(VHDL设计)

b)编译、调试过程
编译报告,资源消耗如下:

c) RTL视图

d)结果分析及结论
程序正常通过编译,我采用分层设计方式进行结构描述,利用半加器、全加器,组合成四位行波加法器。

4、 波形仿真
a) 波形仿真过程:插入A、B、C0、S、C4五个节点(A、B、C0为输入节点,其余为输出节点),设置输入波形,点击为A设置四位计时器信号,从0000开始,点击为B设置四位计时器信号,从0010开始,C0设置为时钟信号,周期160ns,相位差0,保存并进行对应仿真。

b)功能仿真波形图与分析
观察到080ns,在进位输入为0时,输出的是A+B的结果,如4050ns,A输入0100,B输入0110,输出S为1010且输出进位为0,正确;
但结果存在溢出时,进位输入为1,如70~80ns,A输入0111,B输入1001,计算结果溢出,输出S为0000且输出进位为1表示溢出,正确;
b) 时序仿真波形图及分析
可以观察到每次输入变化都会有将近12ns的延迟以及几ns的输出跳动,在部分时候,如60ns处的输入变化所对应的输出甚至发生了溢出位的跳动。
3.时序分析
a)时序分析图
(如右图所示)

b)结果分析及结论
可以看到最长的延迟为引脚C[0]到S[3]的,为15.467ns。

(四)四位先行进位加法器
1.编译过程
a)源代码如图(VHDL设计)

b)编译、调试过程
编译报告,资源消耗如下:
c) RTL视图

d)结果分析及结论
程序正常通过编译,我采用数据流描述进行设计,利用逻辑门直接计算得出各位的进位输入,得到四位先行进位加法器。

5、 波形仿真
c) 波形仿真过程:插入A、B、C0、S、C4五个节点(A、B、C0为输入节点,其余为输出节点),设置输入波形,点击为A设置四位计时器信号,从0000开始,点击为B设置四位计时器信号,从0010开始,C0设置为时钟信号,周期160ns,相位差0,保存并进行对应仿真。

b)仿真波形图与分析
波形仿真效果与先行进位加法器类似,这里不再过多说明
3.时序分析
a)时序分析图

b)结果分析及结论
可以看到最长的延迟为引脚A[0]到C4的,为16.977ns。
对比行波进位加法器,延迟反而更大,可能是与芯片性能并不理想,电路并没有更好地优化有关。

五、实验结论
通过此次试验,我对多路复用器、加法器的工作原理的了解更加深刻。同时也了解generic 的使用。在实验过程中也与老师探讨了n-1多路复用器的其他实现方法,给了我很多启发。

实验二 多路复用器的实现-数字电路与逻辑设计-湖南大学课程实验相关推荐

  1. 模型机综合设计-数字电路与逻辑设计-湖南大学课程实验

  2. 实验二 多路复用器与加法器的实现

    实验二 多路复用器与加法器的实现 一.实验目的 1.熟悉多路复用器.加法器的工作原理. 2.学会使用 VHDL 语言设计多路复用器.加法器. 3.掌握 generic 的使用,设计 n-1 多路复用器 ...

  3. 数字电路与逻辑设计笔记

    数字电路与逻辑设计笔记 变量和常量的关系式 根据真值表写表达式 以真值表内输出端"1"为准 第一步:从真值表内找输出端为"1"的各行,把每行的输入变量写成乘积形 ...

  4. 数字电路与逻辑设计(重邮集成电路考研专业课)

    第一章 1. 考纲要求 掌握二进制.八进制.十进制.十六进制及其转换方法,掌握常用编码及其表示十进制数的方法,掌握逻辑代数的逻辑运算.公式和规则,掌握逻辑函数及其表示方法,掌握逻辑函数的化简方法. 2 ...

  5. 数字电路与逻辑设计——模型机时序部件的实现

    模型机时序部件的实现 一.实验目的 二.实验内容 三.实验方法 (一)实验方法 (二)实验步骤 四.实验过程 A. SM B. 指令计数器PC C. 通用寄存器组 D. RAM 五.实验结论 代码仅供 ...

  6. matlab语音信号分析实验报告,DSP实验二 语音信号分析与处理,南京理工大学紫金学院实验报告,信号与系统...

    实验二语音信号分析与处理 学号姓名 注:1)此次实验作为<数字信号处理>课程实验成绩的重要依据,请同学们认真.独立完成,不得抄袭. 2)请在授课教师规定的时间内完成: 3)完成作业后,请以 ...

  7. 湖南大学_数电实验_模型机设计_CPU设计_verilog_课程实验报告

    本学期的数电课程实验就是模型机设计,由四次小实验构成,最后一次实验验收要求使用quartus做出一个模型机. 该实验的重要性:该实验的核心在于基于实验指导书设计CPU,从而帮我们理解CPU的工作原理. ...

  8. 大学计算机科学课程实验,全校非计算机专业计算机公共课《大学IT》课程实验教学大纲...

    <大学IT>课程实验教学大纲 课程代码:                      课程性质:基础课 课程名称:计算机文化基础        英文名称:The Basis of Compu ...

  9. 湖南大学数字电路与逻辑设计实验(含CPU设计)

    数电的大作业CPU设计或许是我做的最认真的一次实验了,历经三个鏖战到凌晨三点的深夜才最终完成,我应该是最早做完的. 导致的就是被无数人问问题,最后被问到发烧(捂脸). 写得不是很好,但至少是在没有人可 ...

最新文章

  1. Linux下的Memcache安装(含libevent的安装)
  2. MySQL Proxy实现数据库读写分离
  3. 从零开始React:一档 React环境搭建,语法规则,基础使用
  4. 【Python学习系列五】Python网络爬虫框架Scrapy环境搭建
  5. 最短路--DijkstraFloyedSPFA
  6. 黑马程序员—————— 多线程
  7. https://en.wikipedia.org/wiki/Linux Foundation
  8. Python的作用是什么
  9. MultipartFile转为File
  10. 44. 将样式表放在顶部(5)
  11. Windows批处理-for命令详解
  12. PHP 互联网架构师成长之路*「swoole」终极指南
  13. [系统安全] 一.什么是逆向分析、逆向分析基础及经典扫雷游戏逆向
  14. 第二届(2017)中国IT武林大会暨2017年度中国IT年度人物颁奖盛典
  15. qtablewidget翻页禁止_PyQt—QTableWidget实现翻页功能
  16. 基因驱动 CovEx 代码阅读(一)
  17. Ubuntu server 开机网络需要等待5分钟
  18. win10下JDK的安装和配置,eclipse的下载安装
  19. 2023十大网络安全认证,有任何一个都薪资过万,你有几个了?
  20. 2022-2028年全球与中国航空货物安全和检查系统行业市场需求预测分析

热门文章

  1. 基于Matlab的控制系统计算机仿真设计(一)
  2. 海伦公式(求三角形面积)
  3. 美国《福布斯》热评:“中国是老大”
  4. Levenberg-Marquardt方法
  5. 数码管在c语言中显示时间,如何利用单片机数码管程序模拟是时钟显示时间?...
  6. c语言localtime_s用法,localtime_s
  7. css的溢出隐藏和多行隐藏
  8. Google英语伪原创:优缺点分析
  9. vxWorks中关于cdfs文件的使用
  10. 电脑使用技巧提升篇6:清理C盘垃圾的3个方法