您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 造纸印刷 > EDA实验指导书new-Quartus2
EDA技术实验手册及程序代码物理与信息项目学院学号:111000228姓名:汪艺彬注意事项1、本实验手册是为了配合《EDA技术实用教程》,作为本课程实验环节的补充指导而编制。2、实验中涉及的QuartusⅡ软件的使用请参考《EDA技术实用教程》中有关章节。3、手册中所有的虚线空白框,都留出来作为实验记录之用,每个实验完成后,应按照实验内容的要求将实验结果记入框中。4、每个实验后面都附有一道思考题,完成实验内容后可以作为更进一步的练习。5、每次实验后将手册相关部分完成实验结果记录)和实验源代码.vhd文件)一起,作为实验报告上交。6、课程结束后请将所有报告按顺序加封面装订好上交,作为实验部分成绩计入总成绩。实验一利用原理图输入法设计4位全加器一、实验目的:熟悉如何在QuartusⅡ集成环境下利用原理图输入设计简单组合逻辑电路,掌握层次化的电路设计方法。二、实验原理:一个4位全加器可以由4个一位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的进位输入信号cin相接。三、实验内容:1.QuartusII软件的熟悉熟悉QuartusⅡ环境下原理图的设计方法和流程,可参考课本5.4节的内容,重点掌握层次化的设计方法。2.设计1位全加器原理图设计的原理图如下所示3.利用层次化原理图方法设计4位全加器1)生成新的空白原理图,作为4位全加器设计输入2)利用已经生成的1位全加器作为电路单元,设计4位全加器的原理图,如下所示4、设计一个超前进位4位全加器以上设计的全加器是基于串行进位的结构,高位的进位输入必须等待低位的运算结果,造成较长的延时。通过对进位位进行超前运算,可以缩短这部分的延时。在已有1位全加器的基础上设计一个具有超前进位结构的4位全加器,原理图如下所示5、完成设计流程1)在QuartusII环境下对以上设计电路按照教材5.1节的流程进行编译,排除错误,生成最终配置文件。2)对结果进行时序仿真,观察设计的正确性注意观察时序仿真波形中引入的延时),如有错误应改正电路,并重新执行整个流程,直到得到正确的仿真结果。四、思考题1、你在原理图设计中使用的是哪一个库里面的元件,是否还有其他库可用,有什么不同?请试着用另外一个库重复以上的设计内容。2、试用QuartusII下的时序分析器(教材11.3.7~11.3.8分析两种进位结构的4位全加器的时序,给出数据对比,说明两者之间的性能差异。VHDL语句构建半加器lib_adder1、File—Create/Update-symbolfiles把之前的半加器分装成节点2、New-block文件-画原理图右键Insert-symbol在project目录下有生成的加点直接添加后连线3、根据原理图画好全加器后封装lib_fadder4、新建lib_4adder项目画图-assignment-Pins设置对应设置实验设备中的引脚-也可以New-wave来仿真波形-最后下载startprogrammer方框打钩实验二简单组合电路的设计一、实验目的:熟悉QuartusⅡ境下以VHDL作为输入的设计全过程。学习简单组合电路的设计、多层次电路设计、仿真和实际硬件电路测试的方法。二、实验原理VHDL硬件描述语言是一种可以从多个层次上对数字逻辑电路进行建模的国际标准(IEEE,本次实验是用VHDL设计一个简单的数字组合逻辑电路,并结合QuartusⅡ环境和实验电路进行硬件测试。三、实验内容:1)根据实验一中一位全加器的电路原理图,改用VHDL语言文本输入方法,设计一位全加器,要求采用结构化的描述方法。设计完成后,利用QuartusⅡ集成环境进行时序分析、仿真,记录仿真波形和时序分析数据。2)用VHDL语言设计一个四选一数据选择器电路。要求先设计一个二选一数据选择器mux21,然后利用元件例化语句设计四选一数据选择器mux41,同样请给出时序分析数据和仿真结果。3)硬件测试选用器件EPF10K10Pin84)管脚锁定:四选一数据选择器a1PIO2330SW1a0PIO2435SW2d3PIO2738SW5d2PIO2839SW6d1PIO2947SW7d0PIO3042SW8yout29LED12四、思考题如果不使用元件例化语句,而是直接设计四选一数据选择器mux41,应如何用VHDL进行描述?答:定义两个控制信号:a0、a1,然后用CASE语句进行对a0、a1信号进行判断并赋相应的值。实验三简单时序电路的设计一、实验目的:掌握QuartusⅡ环境下以VHDL作为输入的整个设计过程,学习简单时序电路的设计、仿真和硬件测试方法。二、实验原理时序逻辑电路是现代复杂数字电路的重要组成部分,往往占到整个设计的90%以上。触发器是时序电路的基本单元,本实验中将涉及到边沿触发和电平触发两种电路结构,其中边沿触发是实际电路实现的主要方式。三、实验内容1)设计一个上升沿触发的D触发器输入:D输出:Q触发时钟:CLK2)设计同步/异步清零D触发器触发器有两种清零方式:同步——当触发沿到来时,若清零信号有效,则实现清零;异步——任何时候清零信号一旦有效,触发器马上清零,而不论触发沿是否到来。在以上设计的D触发器基础上,加入清零端rst,分别实现同步和异步清零方式。3)设计一个高电平有效的锁存器输入:D输出:Q触发:E电平触发的锁存器与沿触发的触发器不同之处在于当触发端处于有效电平时,输出等于输出,随输入变化;触发端无效时输出保持不变。4)在QuartusⅡ环境下对以上设计的模块进行编译,记录时序分析数据和仿真波形,并在实验电路上进行硬件测试。管脚锁定:DPIO2330SW1CLKCLK11频率源35SW2)QPIO1929LED125)请分析和比较1)和3)的仿真和实测结果,说明两者之间的异同点。\上升沿D触发器同步清零D触发器异步清零D触发器高电平有效锁存器比较1)、3)结果:从仿真波形得出,在上升沿D触发当中只有当触发信号的上升沿到来时,才会发生值的传递,即输出等于输入;而在高电平锁存器当中,只要触发信号处于高电平,输出就会随着输入的跳变而改变。实验四异步清零和同步时钟使能的4位加法计数器一、实验目的:学习计数器的设计、仿真和实际硬件电路测试方法;进一步练习用VHDL语言设计数字逻辑电路。二、实验原理下面给出的是本实验中所要设计的计数器的结构框图,由4位带异步清零的加法计数器和一个4位锁存器组成。其中,rst是异步清零信号,高电平有效;clk是计数时钟;ENA为计数器输出使能控制。当ENA为‘1’时,加法计数器的计数值通过锁存器输出;当ENA为‘0’时锁存器输出为高阻态。三、实验内容1)用VHDL语言完成上述计数器的行为级设计。可以采用分层描述的方式,分别设计计数器和输出锁存器模块,然后将两个模块组合成一个顶层模块。注意输出锁存器输出高阻时的描述的方式。2)用QuartusⅡ对上述设计进行编译、综合、仿真,给出其所有信号的仿真波形和时序分析数据。仿真波形:3)通过QuartusⅡ集成环境,将设计下载到实验电路上进行硬件测试。引脚锁定:clk:clk11clk1rst:PIO2435SW2ena:PIO2330SW1计数输出outy(3PIO1929LED12outy(2PIO2028LED11outy(1PIO2127LED10outy(0PIO2225LED9coutPIO1223LED7四、思考题如果需要设计带并行预置初始值的计数器,用VHDL应如何描述?答:只要在输入端多定义一个4位的标准逻辑位矢量A[3],然后把A的值赋给程序中的节点信号:Q1。实验五七段数码显示译码器设计一、实验目的:学习7段数码显示译码器的设计和利用VHDL语言进行层次化电路设计的方法。二、实验原理:七段数码管由8个a,b,c,d,e,f,g,dp)按照一定位置排列的发光二极管构成,通常采取共阴极或者共阳极的设计,将8个二极管的同一极接在一起,通过分别控制另外的8个电极的电平,使二极管导通发光)或截止不发光)。七段数码显示译码器的功能就是根据需要显示的字符,输出能够控制七段数码管显示出该字符的编码。三、实验内容1)用VHDL设计7段数码管显示译码电路,并在QuartusⅡ平台下对设计的译码器进行时序仿真,给出仿真的波形。时序分析:仿真波形:2)数码管显示电路设计利用以上设计的译码器模块,设计一个可以在8个数码管上同时显示字符的电路。快速轮流点亮8个数码管,这样就可以实现同时显示8个字符的效果尽管实际上同一时间只有一个数码管被点亮)。要实现以上功能,就必须按照一定时钟节拍,轮流使译码器输出所需要字符的编码;同时控制数码管的公共电极电平,轮流点亮数码管可以使用上个实验设计的计数器,加实验板上的74ls138来实现,其中74ls138的译码输入端与FPGA的io相连,8个译码输出端分别与8个数码管的公共电极相连)。3)用QuartusⅡ对2)中的设计进行编译、综合、仿真,给出其所有信号的仿真波形和时序分析数据。时序分析:仿真波形:4)通过QuartusⅡ集成环境,将设计下载到实验电路上进行硬件测试。管脚锁定:clk:clk11clk1D(3:PIO3030SW1D(2:PIO2435SW2D(1:PIO2536SW3D(0:PIO2637SW4A(7:81SEGdpA(6:PIO611SEGgA(5:PIO510SEGfA(4:PIO49SEGeA(3:PIO38SEGdA(2:PIO27SEGcA(1:PIO16SEGbA(0:PIO05SEGa74ls138译码输入S(2:80S(1:79S(0:78四、思考题尝试将74ls138的功能也用VHDL来实现,将所有逻辑功能都集成到FPGA里面,请写出其VHDL描述。实验六数控分频器的设计一、实验目的:学习数控分频器的设计和测试方法,熟练掌握利用VHDL语言进行数字逻辑电路设计的方法。二、实验原理:数控分频器的功能为在不同输入信号时,对时钟信号进行不同的分频,在输出端输出不同频率的信号。该电路可以用具有并行预置功能的加法计数器实现,方法是对应不同的输入信号,预置数初始计数值)设定不同的值,然后用计数器的溢出信号作为输出信号或输出信号的控制值。电路输出波形图:三、实验内容:1)根据实验原理编制实现数控分频器的VHDL程序。提示:可以将计数器溢出信号输出给一个翻转触发器,溢出信号的边沿作为触发器的触发信号,触发器的输出就是分频器的输出注意计数器初始计数值与输出频率之间的关系)。2)用QuartusⅡ对设计进行编译、综合、仿真,给出仿真波形和时序分析数据。时序分析:仿真波形:3)通过QuartusⅡ集成环境,将设计下载到实验电路上进行硬件测试。输入不同的clk信号和不同的输入控制信号,测试输出波形。管脚锁定:clkclk11预置数D(3PIO2330SW1D(2PIO2435SW2D(1Pio2536SW3D(0PIO2637SW4分频输出FoutPIO1929LED12四、思考题:如果需要进行奇数分频如3分频),能否够保持输出波形的占空比为50%?如果不能,如何使占空比尽量接近50%;如果可以,应如何做?答:如果是进行奇数分频,就不能够保持输出波形的占空比为50%。但是可以运用状态机进行设计。实验七4位十进制频率计的设计一、实验目的:设计一个4位十进制频率计,学习用VHDL语言进行较为复杂的数字系统设计。二、实验原理:根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1秒的脉冲计数允许信号,1秒计数结束后,计数值即所测信号频率)锁入锁存器,并为下一次测频作准备,即将计数器清零。三、实验内容:1)根据频率计的工作原理,将电路划分成控制器、计数器、锁存器和LED显示几个模块,顶层文件与模块电路均用VHDL硬件描述语言进行设计。控制器——产生1秒脉宽的计数允许信号、锁存信号和计数器清零信号计数器——对输入信号的脉冲数进行累计锁存器——
本文标题:EDA实验指导书new-Quartus2
链接地址:https://www.777doc.com/doc-2647924 .html