可编程逻辑设计实验手册VHDL版_第1页
可编程逻辑设计实验手册VHDL版_第2页
可编程逻辑设计实验手册VHDL版_第3页
可编程逻辑设计实验手册VHDL版_第4页
可编程逻辑设计实验手册VHDL版_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、可编程逻辑设计实验指导书福州大学物理与信息工程学院电子信息工程系目 录实验一 利用原理图输入法设计4位全加器1实验二 简单组合电路的设计4实验三 简单时序电路的设计6实验四 异步清零和同步时钟使能的4位加法计数器8实验五 七段数码显示译码器设计10实验六 数控分频器的设计12实验七 4位十进制频率计的设计14实验八 交通灯逻辑控制电路设计16附录 EDA实验箱部分资源引脚说明20实验一 利用原理图输入法设计4位全加器一、实验目的:熟悉如何在Quartus集成环境下利用原理图输入设计简单组合逻辑电路,掌握层次化的电路设计方法。二、实验原理:一个4位全加器可以由4个一位全加器构成,加法器间的进位可

2、以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的进位输入信号cin相接。三、实验内容:1.QuartusII软件的熟悉熟悉Quartus环境下原理图的设计方法和流程,可参考课本5.4节的内容,重点掌握层次化的设计方法。2.设计1位全加器原理图设计的原理图如下所示3.利用层次化原理图方法设计4位全加器(1)生成新的空白原理图,作为4位全加器设计输入(2)利用已经生成的1位全加器作为电路单元,设计4位全加器的原理图,如下所示4、设计一个超前进位4位全加器以上设计的全加器是基于串行进位的结构,高位的进位输入必须等待低位的运算结果,造成较长的延时。通过对进位位进行超前运算,可以缩短

3、这部分的延时。在已有1位全加器的基础上设计一个具有超前进位结构的4位全加器,原理图如下所示5、完成设计流程(1)在QuartusII环境下对以上设计电路按照教材5.1节的流程进行编译,排除错误,生成最终配置文件。(2)对结果进行时序仿真,观察设计的正确性(注意观察时序仿真波形中引入的延时),如有错误应改正电路,并重新执行整个流程,直到得到正确的仿真结果。四、思考题1、你在原理图设计中使用的是哪一个库里面的元件,是否还有其他库可用,有什么不同?请试着用另外一个库重复以上的设计内容。2、试用QuartusII下的时序分析器(教材11.3.8)分析两种进位结构的4位全加器的时序,给出数据对比,说明两

4、者之间的性能差异。实验二 简单组合电路的设计一、实验目的:熟悉Quartus境下以VHDL作为输入的设计全过程。学习简单组合电路的设计、多层次电路设计、仿真和实际硬件电路测试的方法。二、实验原理VHDL硬件描述语言是一种可以从多个层次上对数字逻辑电路进行建模的国际标准(IEEE),本次实验是用VHDL设计一个简单的数字组合逻辑电路,并结合Quartus环境和实验电路进行硬件测试。三、实验内容:1) 根据实验一中一位全加器的电路原理图,改用VHDL语言文本输入方法,设计一位全加器,要求采用结构化的描述方法。设计完成后,利用Quartus集成环境进行时序分析、仿真,记录仿真波形和时序分析数据。2)

5、 用VHDL语言设计一个四选一数据选择器电路。要求先设计一个二选一数据选择器mux21,然后利用元件例化语句设计四选一数据选择器mux41,同样请给出时序分析数据和仿真结果。3)硬件测试请在实验系统上测试四选一数据选择器。四、思考题如果不使用元件例化语句,而是直接设计四选一数据选择器mux41,应如何用VHDL进行描述?实验三 简单时序电路的设计一、实验目的:掌握Quartus环境下以VHDL作为输入的整个设计过程,学习简单时序电路的设计、仿真和硬件测试方法。二、实验原理时序逻辑电路是现代复杂数字电路的重要组成部分,往往占到整个设计的90以上。触发器是时序电路的基本单元,本实验中将涉及到边沿触

6、发和电平触发两种电路结构,其中边沿触发是实际电路实现的主要方式。三、实验内容1) 设计一个上升沿触发的D触发器输入:D输出:Q触发时钟:CLK2) 设计同步/异步清零D触发器触发器有两种清零方式:同步当触发沿到来时,若清零信号有效,则实现清零;异步任何时候清零信号一旦有效,触发器马上清零,而不论触发沿是否到来。在以上设计的D触发器基础上,加入清零端rst,分别实现同步和异步清零方式。3) 设计一个高电平有效的锁存器输入:D输出:Q触发:E电平触发的锁存器与沿触发的触发器不同之处在于当触发端处于有效电平时,输出等于输出,随输入变化;触发端无效时输出保持不变。4) 在Quartus环境下对以上设计

7、的模块进行编译,记录时序分析数据和仿真波形,并在实验电路上进行硬件测试。5) 请分析和比较1)和3)的仿真和实测结果,说明两者之间的异同点。四、思考题在本次实验中你使用的VHDL描述方式是和实验二中一样的结构化描述还是行为级描述?这两种方式描述的编译出来的仿真结果是否相同?实验四 异步清零和同步时钟使能的4位加法计数器一、实验目的:学习计数器的设计、仿真和实际硬件电路测试方法;进一步练习用VHDL语言设计数字逻辑电路。二、实验原理下面给出的是本试验中所要设计的计数器的结构框图,由4位带异步清零的加法计数器和一个4位锁存器组成。其中,rst是异步清零信号,高电平有效;clk是计数时钟;ENA为计

8、数器输出使能控制。当ENA为1时,加法计数器的计数值通过锁存器输出;当ENA为0时锁存器输出为高阻态。三、实验内容1) 用VHDL语言完成上述计数器的行为级设计。可以采用分层描述的方式,分别设计计数器和输出锁存器模块,然后将两个模块组合成一个顶层模块。注意输出锁存器输出高阻时的描述的方式。2) 用Quartus对上述设计进行编译、综合、仿真,给出其所有信号的仿真波形和时序分析数据。3) 通过Quartus集成环境,将设计下载到实验电路上进行硬件测试。四、思考题如果需要设计带并行预置初始值的计数器,用VHDL应如何描述?实验五 七段数码显示译码器设计一、 实验目的:学习7段数码显示译码器的设计和

9、利用VHDL语言进行层次化电路设计的方法。二、实验原理:七段数码管由8个(a,b,c,d,e,f,g,dp)按照一定位置排列的发光二极管构成,通常采取共阴极或者共阳极的设计,将8个二极管的同一极接在一起,通过分别控制另外的8个电极的电平,使二极管导通(发光)或截止(不发光)。七段数码显示译码器的功能就是根据需要显示的字符,输出能够控制七段数码管显示出该字符的编码。三、实验内容1) 用VHDL设计7段数码管显示译码电路,并在Quartus平台下对设计的译码器进行时序仿真,给出仿真的波形。2) 数码管显示电路设计利用以上设计的译码器模块,设计一个可以在8个数码管上同时显示字符的电路。快速轮流点亮8

10、个数码管,这样就可以实现同时显示8个字符的效果(尽管实际上同一时间只有一个数码管被点亮)。要实现以上功能,就必须按照一定时钟节拍,轮流使译码器输出所需要字符的编码;同时控制数码管的公共电极电平,轮流点亮数码管(可以使用上个实验设计的计数器,加实验板上的74ls138来实现,其中74ls138的译码输入端与FPGA的io相连,8个译码输出端分别与8个数码管的公共电极相连)。3) 用Quartus对2)中的设计进行编译、综合、仿真,给出其所有信号的仿真波形和时序分析数据。4) 通过Quartus集成环境,将设计下载到实验电路上进行硬件测试。四、思考题尝试将74ls138的功能也用VHDL来实现,将

11、所有逻辑功能都集成到FPGA里面,请写出其VHDL描述(将源代码与实验代码一起作为附录)。实验六 数控分频器的设计一、实验目的:学习数控分频器的设计和测试方法,熟练掌握利用VHDL语言进行数字逻辑电路设计的方法。二、实验原理:数控分频器的功能为在不同输入信号时,对时钟信号进行不同的分频,在输出端输出不同频率的信号。该电路可以用具有并行预置功能的加法计数器实现,方法是对应不同的输入信号,预置数(初始计数值)设定不同的值,然后用计数器的溢出信号作为输出信号或输出信号的控制值。电路输出波形图:三、实验内容 :1) 根据试验原理编制实现数控分频器的VHDL程序。提示:可以将计数器溢出信号输出给一个翻转

12、触发器,溢出信号的边沿作为触发器的触发信号,触发器的输出就是分频器的输出(注意计数器初始计数值与输出频率之间的关系)。2)用Quartus对设计进行编译、综合、仿真,给出仿真波形和时序分析数据。3)通过Quartus集成环境,将设计下载到实验电路上进行硬件测试。四、思考题:如果需要进行奇数分频(如3分频),能否够保持输出波形的占空比为50?如果不能,如何使占空比尽量接近50;如果可以,应如何做?实验七 4位十进制频率计的设计一、实验目的:设计一个4位十进制频率计,学习用VHDL语言进行较为复杂的数字系统设计。二、实验原理:根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1秒的

13、脉冲计数允许信号,1秒计数结束后,计数值(即所测信号频率)锁入锁存器,并为下一次测频作准备,即将计数器清零。三、实验内容:1) 根据频率计的工作原理,将电路划分成控制器、计数器、锁存器和LED显示几个模块,顶层文件与模块电路均用VHDL硬件描述语言进行设计。控制器产生1秒脉宽的计数允许信号、锁存信号和计数器清零信号计数器对输入信号的脉冲数进行累计锁存器锁存测得的频率值LED显示将频率值显示在数码管上顶层文件框图如下:用元件例化语句写出频率计的顶层文件。2) 分别用VHDL语言设计各个模块本实验中不少模块在之前的实验中已经有所涉及,只需要对以前的设计做部分修改即可用于这次实验。提示:十进制计数器

14、输出的应是4位十进制数的BCD码,因此一共的输出是4×4bit3) 用Quartus对设计进行编译、综合、仿真,给出仿真波形和时序分析数据(不包括数码管显示部分)。3)通过Quartus集成环境,将设计下载到实验电路上进行硬件测试。四、思考题:本实验中的控制器部分可以用以前实验中的哪个电路来实现,其输出的rst和ena信号是否可以合并为一个信号?实验八 交通灯逻辑控制电路设计一、实验目的:设计一个交通灯逻辑控制电路,学习用VHDL语言进行较为复杂的数字系统设计,体会原理图设计与VHDL描述、Bottom-up与Top-down设计方法之间的异同。复习原理图的设计方法和流程。二、实验原

15、理:南北方向绿灯亮,东西方向红灯亮(5t)南北方向黄灯亮,东西方向红灯亮(1t)南北方向红灯亮,东西方向绿灯亮(5t)南北方向红灯亮,东西方向黄灯亮(1t)1) 满足下图顺序工作流程。图中设南北方向的红、黄、绿灯分别为NSR、NSY、NSG,东西方向的红、黄、绿灯分别为EWR、EWY、EWG。它们的工作方式有些必须是并行进行的,即南北方向绿灯亮,东西方向红灯亮;南北方向黄灯亮,东西方向红灯亮;南北方向红灯亮,东西方向绿灯亮;南北方向红灯亮,东西方向黄红灯亮。2) 应满足两个方向的工作时序:即东西方向亮红灯时间应等于南北方向亮黄、绿灯时间之和,南北方向亮红灯时间应等于东西方向亮黄、绿灯时间之和。

16、时序流程如下图所示。1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6NSGNSYNSREWREWGEWYt5t6tt假设每个单位时间为3秒,则南北、东西方向绿、黄、红灯亮时间分别15秒、3秒、18秒,一次循环为36秒。其中红灯亮的时间为绿灯、黄灯亮的时间之和。3) 十字路口要有数字显示,作为时间提示,以便人们更直观地把握时间。具体为:当某方向红灯亮时,置显示器为某值,然后以每秒减1计数方式方式工作,直至减到数为“0”,十字路口红、绿灯交换,一次工作循环结束,进入下一步某方向地工作循环。例如:当南北方向从黄灯转换成红灯时,置南北方向数字显示为24,并使数显计数器开始减

17、“1”计数,当减到“0”,时,此时红灯灭,而南北方向的绿灯亮;同时,东西方向的红灯亮,并置东西方向的数显为24。三、实验内容1)用VHDL描述的方法完成设计,用Quartus对设计进行编译、综合、仿真,给出仿真波形和时序分析数据。2)在Quartus中将你在数字电路课程设计中设计好的原理图作为设计输入,进行编译、综合、仿真,给出仿真波形和时序分析数据。3)通过Quartus集成环境,将以上两个设计下载到实验电路上进行硬件测试。4)记录在Quartus下观察到由VHDL经过综合得到的RTL电路,与自己做数字电路课程设计时的电路原理图对比,看看有哪些异同。四、思考题在你本次实验的设计中,有用到上课

18、讲到过的哪些优化手段吗?如果没有,有什么地方是可以进一步优化的?附录 EDA实验箱部分资源引脚说明新(GW48系列SOPC/EDA实验开发系统,选用器件Cyclone系列 EP1C6Q240C8N Pin240, 选择模式5、JDSP跳线置于Close) 开关 引脚键1 233键2 234键3 235键4 236键5 237键6 238键7 239键8 240LED 引脚LED1 1LED2 2LED3 3LED4 4LED5 6LED6 7LED7 8LED8 12时钟 引脚CLOCK0 28CLOCK2 153CLOCK5 152CLOCK9 29数码管 引脚A 173B 169C 168D 167E 166F 165G 164Dp 163S1 162S2 161S3 160S4 159S5 158S6 141S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论