版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数字逻辑实验指引书目录前言 1实验一通过3-8译码器实例学习QuartusPrime 3实验二4选1多路选取器设计 19实验三异步清零和同步使能加法计数器设计 21实验四八位七段数码管显示电路设计 23实验五整数分频器设计 26实验六加减法运算器设计 29实验七状态机设计 32实验八设计七人表决器 38实验九设计四人抢答器 40实验十可控脉冲发生器设计 43实验一通过3-8译码器实例学习Quartus实验目通过简朴3-8译码器设计,掌握组合逻辑电路设计办法。初步掌握Quartus软件用法和设计流程。掌握组合逻辑电路静态测试办法。掌握远程云端硬件实验平台使用。实验原理3-8译码器顾名思义三输入,八输出。当输入信号按二进制方式表达值为N时,标号为N输出端输出高电平表达有信号产生,而其他则为低电平表达无信号产生。由于三个输入端能产生组合状态有八种,即二进制0~7,因此输出端在每种组合中仅有一位为高电平。其真值表下表所示输入输出a[2]a[1]a[0]y7y6y5y4y3y2y1y00000000000100100000010010000001000110000100010000010000101001000001100100000011110000000译码器不需要像编码器那样用一种输出端批示输出与否有效。但可以在输入中加入一种输出使能端,用来批示与否将当前输入进行有效译码,当使能端批示输入信号无效或不用对当前信号进行译码时,输出端全为高电平,表达无任何信号。本例设计中没有考虑使能输入端,读者自己设计时可以考虑加入使能输入端时,程序如何设计。实验内容本实验通过VHDL实现一种3—8译码器功能模块,通过变化输入a[2..0]值,从而变化输出y0—y7数值。实验中信号与管脚连接见下表信号名称FPGAI/O名称功能阐明a[0]Pin_P93位输入a[1]Pin_R9a[2]Pin_T9y0Pin_A38位输出y1Pin_B4y2Pin_A4y3Pin_B5y4Pin_A5y5Pin_C6y6Pin_B6y7Pin_A6实验环节下面将通过这个实验,向读者简介在Quartus软件下项目文献生成、编译、管脚分派以及时序仿真等操作过程。(本实验指引书使用QuartusPrime17.1Lite版本)建立工程1)选取开始菜单下或者桌面上Quartus图标,运营Quartus软件,进入下图所示界面。选取软件中菜单File>New或者界面中New图标,选取新建NewQuartusPrimeProject,进入新建工程对话框。点击NEXT进入工程设定对话框如下图所示。第一种输入框为工程工作文献夹地址输入框,设定好后所有工程有关文献将统一存储在该文献夹下;第二个输入框为工程名输入框;第三个输入框为该工程顶层文献名输入框。本例中工程文献夹名、工程名、顶层文献名都为decoder38。点击NEXT,进入工程类型对话框,选取Emptyproject。点击NEXT,进入工程文献对话框。在该界面下咱们可以添加工程所需文献,这里由于是新建工程故不添加任何文献。点击NEXT,进入器件选取对话框,这里咱们选取Family>CycloneⅣE;Packege>FBGA;Pincount>256然后选取下方芯片EP4CE10F17C8即FPGA平台主芯片。点击NEXT进入EDA工具设立对话框,如下图所示,在这里咱们将仿真工具设立为ModelSim-Altera,即选取Simulation>ModelSim-Altera>VHDL。点击NEXT进入工程信息汇总对话框。该对话框汇总了本工程中所有设立信息,确认无误后点击NEXT进入工程编辑界面。QuartusPrime开发环境简介建立工程后就可以进入QuartusPrime集成开发环境(如下图所示)从图中可以看出QuartusPrime集成开发环境大体可以分为4个窗口,最左上角为工程管理窗口,涉及原代码文献、约束文献和仿真测试文献管理;左中窗口为工程流程向导,涵盖FPGA开发过程中分析、综合、管脚分派、布局布线及静态时序分析整个流程;右边主窗口为各种文献和报表打开窗口;最下方窗口为工程信息框,显示综合过程信息等内容。有了以上基本结识,下面咱们就来实现本实验指引书第一种实验3-8译码器。3、工程实现1)如下图所示,点击菜单File>New,在新建菜单下选取VHDLFile。2)在新建文献内输入相应设计代码,代码如下:LIBRARYIEEE;USEIEEE.std_logic_1164.ALL;ENTITYdecoder38ISPORT(a:INstd_logic_vector(2DOWNTO0);y:OUTstd_logic_vector(7DOWNTO0));ENDdecoder38;ARCHITECTURErtlOFdecoder38ISBEGINPROCESS(a)BEGINCASEaISWHEN"000"=>y<="00000001";WHEN"001"=>y<="00000010";WHEN"010"=>y<="00000100";WHEN"011"=>y<="00001000";WHEN"100"=>y<="00010000";WHEN"101"=>y<="00100000";WHEN"110"=>y<="01000000";WHEN"111"=>y<="10000000";WHENOTHERS=>y<="00000000";ENDCASE;ENDPROCESS;ENDrtl;代码输入完毕确认无误后,选取菜单Processing/AnalyzeCurrentFile或点击编辑窗口中工具栏图标,进行HDL代码语法分析。语法分析无误后,选取Processing/Start/StartAnalysis&Synthesis,或者按下快捷键Ctrl+K,或者点击工具栏图标,进行HDL文献分析和综合。分析和综合完毕后就可以对工程进行管脚分派。可以运用QuartusPrime中PinPlanner进行可视化管脚分派。点击上方工具条中PinPlanner图标,或者选取菜单栏中Assignments>PinPlanner。此时应看到如下界面在界面下方窗口中输入输出信号后,输入相应FPGA管脚标号(或将信号拖拽到上方Package图中相应管脚上),并指定I/O输入输出原则。(远程云端硬件实验平台I/O电压电流均为3.3V2mA)。管脚设立完毕后如图,关闭PinPlanner即完毕管脚分派管脚约束完毕后,就可以指定下载所需文献类型。远程云端硬件实验平台下载需要.rbf类型下载文献,该文献生成需要在工程中设定后才可由QuartusPrime软件自动产生。详细办法如下,一方面点击菜单栏中Assignments>Device,选取DeviceandPinOptions。然后选取ProgrammingFiles,在右侧对话框中勾选RawBinaryFile(.rbf),点击OK确认。此时工程全编译后Quartus软件即会自动生成远程云端实验平台所需.rbf下载文献。点击菜单栏中Processing>StartCompilation或者图标栏中完毕整个工程编译。如果将文献下载到本地开发板,则点击菜单栏中Tools>Programmer或者图标栏Programmer,进入硬件编程管理界面。将AlteraUSBBlasterUSB端连接电脑,JTAG端连接开发板JTAG口,打开开发板电源。将HardwareSetup选取成USB-Blaster,Mode选取成JTAG,同步选取工程文献夹下.sof文献作为写入文献。点击Start,将.sof文献下载到开发板上FPGA中,本工程完毕。五、实验报告1、进一步熟悉和理解QuartusPrime软件用法和工程实现流程。2、仿照3-8译码器实现数字电路中最基本与门、或门、非门及比较器、多路选取器等基本逻辑电路VHDL代码。
实验二4选1多路选取器设计实验目理解多路选取器设计原理。进一步熟悉QuartusPrime软件用法和VHDL输入全过程。进一步掌握实验系统使用。实验原理多路选取器是数字系统设计中经常使用模块,其特点是在选取信号控制下,输出端与拟定数据通道联通,并随数据通道信号变化而变化。在本实验中,咱们将实现一种4选1多路选取器,因而将有一种2位选取信号,4个数据输入信号和1个数据输出信号。实验内容本实验规定通过VHDL实现一种4选1多路选取器。通过选取信号sel[1..0]实现数据输出通路dataout在不同数据输入通路datain0—datain3之间切换,并观测输出信号随输入信号变化而变化。实验中信号与管脚连接如下表信号名称FPGAI/O名称功能阐明sel[0]Pin_P9通路选取信号sel[1]Pin_R9datain0Pin_T9数据输入通路datain1Pin_N8datain2Pin_P8datain3Pin_R8dataoutPin_A3数据输出通路实验环节打开QuartusPrime软件,新建一种工程。建竣工程之后,再新建一种VHDL空白源文献。按照实验原理和自己想法,在VHDL编辑窗口编写VHDL程序,读者可参照光盘中提供示例程序。编写完VHDL程序后,保存。对自己编写VHDL程序进行编译并仿真,对程序错误进行修改。编译仿真无误后,依照拨动开关、LED与FPGA管脚连接表进行管脚分派,然后进行综合和实现。用下载电缆通过JTAG口将相应sof文献加载到FPGA中。观测实验成果与否与自己编程思想一致。实验报告绘出仿真波形,并作阐明。进一步熟悉QuartusPrime软件尝试编写VHDL程序,实现多路分派器功能。将实验原理、设计过程、编译仿真波形和分析成果、硬件测试成果记录下来。
实验三异步清零和同步使能加法计数器设计实验目理解二进制计数器工作原理。进一步熟悉QuartusPrime软件用法和VHDL输入。理解时钟在时序逻辑电路中作用。实验原理二进制计数器是应用最多、功能最全计数器之一,含异步清零和同步使能加法计数器详细工作过程如下:在时钟上升沿状况下,检测使能端与否容许计数,如果容许计数(定义使能端高电平有效)则开始计数,否则始终检测使能端信号。在计数过程中检测异步复位信号与否有效(低电平有效),当复位信号起作用时,计数值及时清零,继续进行检测和计数。其工作时序如图所示:实验内容本实验规定完毕任务是在时钟信号作用下,通过使能信号和异步复位信号来完毕加法计数器计数。当使能信号有效时,计数器从0开始计数,最大计数到9后返回到0重新开始计数;当异步复位信号有效时,计数器及时清零,直到复位信号撤除后计数器开始正常工作。实验中信号与管脚连接如下表信号名称FPGAI/O名称功能阐明clkPin_E1系统时钟rst_nPin_C2异步复位enPin_P9同步使能cnt[0]Pin_A3计数器输出cnt[1]Pin_B4cnt[2]Pin_A4cnt[3]Pin_B5实验报告绘出仿真波形,并作阐明。将实验原理、设计过程、编译仿真波形和分析成果、硬件测试成果记录下来。阐明异步复位和同步复位区别以及各自优缺陷。
实验四八位七段数码管显示电路设计实验目理解数码管工作原理。学习七段数码管显示译码器设计。学习数码管扫描显示原理。实验原理七段数码管是电子开发过程中惯用输出显示设备。本实验中中使用是一种八位一体、共阴极型七段数码管。其单个静态数码管如下图所示。由于七段数码管公共端连接到GND(共阴极型),当数码管中那一种段被输入高电平,则相应这一段被点亮。反之则不亮。八位一体七段数码管在单个静态数码管基本上加入了用于选取哪一位数码管位选信号端口。八个数码管a、b、c、d、e、f、g、h、dp都连在了一起,8个数码管分别由各自位选信号来控制,当位选信号为低电平时该位数码管被选中。同一时刻只有一位数码管被选中并点亮,下一时刻则切换到相邻位数码管,但由于切换速度不久,在视觉暂留效应协助下,咱们看到就是8位数码管被整体点亮。实验内容本实验规定完毕任务是在时钟信号作用下,将输入二进制数值在八位数码管上显示。实验中选取1KHZ作为扫描时钟,输入一种4位二进制数值,译码为相应段码后,在位选扫描信号协助下,在八位数码管上显示其十六进制值。实验中信号与FPGA管脚连接见下表。信号名称FPGAI/O名称功能阐明clkPin_E1系统时钟rst_nPin_C2系统复位seg_aPin_A3段选信号seg_bPin_B4seg_cPin_A4seg_dPin_B5seg_ePin_A5seg_fPin_C6seg_gPin_B6seg_dpPin_A6del[0]Pin_B7位选信号del[1]Pin_A7del[2]Pin_C8del[3]Pin_B8del[4]Pin_A8del[5]Pin_C9del[6]Pin_B9del[7]Pin_A9data[0]Pin_P9四位二进制数值data[1]Pin_R9data[2]Pin_T9data[3]Pin_N8实验报告绘出仿真波形,并作阐明。阐明扫描时钟是如何工作,变化扫描时钟会有什么变化。实验原理、设计过程、编译仿真波形和分析成果、硬件测试成果记录下来。设计实验让八位数码管不同位显示不同数字
实验五整数分频器设计实验目学习整数分频器中偶数分频和奇数分频电路设计和实现办法。理解和掌握分频电路实现办法。将实现模块打包作为后续实验IP核使用实验原理整数分频器是数字电路中最惯用电路模块,其作用是对时钟信号进行降频使用。整数分频中又分为偶数分频和奇数分频,顾名思义分频常数为偶数和奇数(分频常数=系统输入频率/系统输出频率)。其中偶分频相对简朴,奇数分频相对复杂,实现原理都是运用计数器对输入时钟进行计数,当计到指定数值时将输出时钟信号取反,同步将计数器清零从新开始计数,从而实现系统时钟降频使用。实验内容本实验规定完毕任务是对时钟信号完毕偶数分频和奇数分频,并通过设立不同分频参数,输出不同频率时钟信号,同步仿真查看实验效果。然后将分频后时钟分派到观测测试引脚用示波器观测输出成果。实验中信号与fpga连接如下:信号名称FPGAI/O名称功能阐明clkPin_E1系统时钟rst_nPin_C2系统复位clkoutPin_A3分频时钟实验设计思想偶分频:以4分频为例,当分频常数N=4时,参数FULL=1,即分频计数器从0开始每计到1时,分频输出时钟翻转一次,其时序如下图,从而达到了4分频效果奇分频:以5分频为例,当分频常数N=5时,参数FULL0=1、FULL1=2,时钟信号clk0以系统时钟上升沿为触发点,先计数到1翻转一次,在计数到2翻转一次,实现一种占空比非50%5分频时钟;时钟信号clk1则以系统时钟下降沿为触发点,先计数到1翻转一次,在计数到2翻转一次,实现一种占空比非50%5分频时钟。因clk0和clk1相位相差半个系统时钟,将两者相与可以得到占空比为50%5分频时钟信号。再用一种块生成语句将两种状况结合,则可以得到一种任意整数分频模块。模块可以自动判断奇偶分频并生成相应电路。实验报告输入不同分频值绘出仿真波形和观测成果,并作阐明。将实验原理、设计过程、编译仿真波形和观测成果记录下来。
实验六加减法运算器设计实验目加深对二进制加减法结识。理解用VHDL语言实现运算器器过程。理解二进制转BCD码算法。实验原理实验中为两个4位二进制数相加减,同步有一种加减法选取信号,当信号为1时,输出相加成果,否则输出相减成果。同步对成果5位二进制数转换为相应BCD码以适应人们十进制计数习惯。这里重点要理解二进制数转换BCD码算法,即大四加三算法。其转换办法如下:一方面将5位二进制数高位加上8位0,构成一种13位运算数;将运算数左移3位,同步低位补零。判断移位后运算数8~5位与否不不大于4,如果不不大于4则将该四位数加上3,否则不变。将解决后运算数再左移1位,同步低位补零。再判断移位后运算数8~5位与否不不大于4,如果不不大于4则将该四位数加上3,否则不变。然后将解决后运算数再左移1位,同步低位补零。此时运算数高8位即是该数所相应BCD码。以转换二进制数5’b11101为例,其所相应十进制数为’d29,那么它所相应BCD码为0010_1001。转换过程如下表:阐明11101运算数扩展0000000011101左移三位0000011101000大四加三0000101001000左移一位0001010010000大四加三0001010010000左移一位0010100100000实验内容本实验任务是实现一种简朴4位运算器,包括加法和减法运算,通过选取信号选取是将两数值相加还是相减,同步输出成果BCD码。实验中信号与fpga连接如下:信号名称FPGAI/O名称功能阐明selPin_P9运算选取dataA[0]Pin_T9运算数AdataA[1]Pin_N8dataA[2]Pin_P8dataA[3]Pin_R8dataB[0]Pin_T8运算数BdataB[1]Pin_R7dataB[2]Pin_T7dataB[3]Pin_N6dataout[0]Pin_A3运算成果dataout[1]Pin_B4dataout[2]Pin_A4dataout[3]Pin_B5dataout[4]Pin_A5dataoutBCD[0]Pin_C6BCD码成果dataoutBCD[1]Pin_B6dataoutBCD[2]Pin_A6dataoutBCD[3]Pin_B7dataoutBCD[4]Pin_A7dataoutBCD[5]Pin_C8dataoutBCD[6]Pin_B8dataoutBCD[7]Pin_A8实验报告绘仿真波形,并作阐明。设计实验用数码管来显示运算器成果。设计实验实现BCD码转换为二进制数。实验原理、设计过程、编译仿真波形和分析成果、硬件测试成果记录下来。
实验七状态机设计一、 实验目理解什么是状态机。纯熟运用一段式、二段式、三段式实现状态机。二、 实验原理本实验要实现状态机状态转移图如下所示:其中状态为S0到S3,依照输入信号in0到in3不同值在各个状态之间切换,同步输出相应数值。下面咱们来看一下什么是状态机。状态机本质就是对具备逻辑顺序或时序规律事件一种描述办法。状态机有三个基本要素即:状态:也叫状态变量。在逻辑设计中,使用状态划分逻辑顺序和时序规律。如上图中S0到S3即为状态转移图4个状态。输出:输出指在某一种状态时特定发生事件。如上图中outdata,outdata输出总是随着着状态变化而变化。输入:指状态机中进入每个状态条件,有状态机没有输入条件,其中
状态转移较为简朴,有状态机有输入条件,当某个输入条件存在时才干转移
到相应状态。上图中in0到in3即为状态机输入,状态机依照输入不同,跳转到不同状态。
依照状态机输出与否与输入条件有关,又可将状态机分为两大类:摩尔(Moore)型和米勒(Mealy)型。摩尔状态机输出仅仅依赖于当前状态,而与输入条件无关;米勒型状态机输出不但依赖于当前状态,并且取决于该状态输入条件。她们区别可以见下图:本实验状态机输出仅取决于当前状态,那么这显然是一种摩尔型状态机。用VHDL实现一种状态机,有三种描述方式,即一段式、二段式和三段式。一段式状态机:将整个状态机写到1个always模块里面,在该模块中即描述状态转移,又描述状态输入和输出。其电路构造可以由下图表达:二段式状态机:一种always模块采用同步时序描述状态转移;另一种模块采用组合逻辑判断状态转移条件,描述状态转移规律以及当前状态输出。其电路构造可以由下图表达:三段式状态机:一种always模块采用同步时序描述状态转移;第二个采用组合逻辑判断状态转移条件,描述状态转移规律;第三个always模块使用同步时序电路描述每个状态输出。其电路构造可以由下图表达:普通而言,推荐FSM描述办法是后两种,即两段式和三段式FSM描述办法。其原由于:FSM和其她设计同样,最佳使用同步时序方式设计,以提高设计稳定性,消除毛刺。状态机实现后,普通来说,状态转移某些是同步时序电路而状态转移条件判断是组合逻辑。两段式之因此比一段式编码合理,就在于两段式编码将同步时序和组合逻辑分别放到不同always程序块中实现。这样做好处不但仅是便于阅读、理解、维护,更重要是利于综合器优化代码,利于顾客添加适当时序约束条件,利于布局布线器实现设计。而一段式FSM描述不利于时序约束、功能更改、调试等,并且不能较好表达米勒FSM输出,容易写出Latches,导致逻辑功能错误。
在普通两段式描述中,为了便于描述当前状态输出,诸多设计者习惯将当前状态输出用组合逻辑实现。但是这种组合逻辑依然有产生毛刺也许性,并且不利于约束,不利于综合器和布局布线器实现高性能设计。因而如果设计运营额外一种时钟节拍插入(latency),则规定尽量对状态机输出用寄存器寄存一拍。但是诸多实际状况不容许插入一种寄存节拍,此时则可以通过三段式描述办法进行解决。三段式与两段式相比,核心在于依照状态转移规律,在上一状态依照输入条件判断出当前状态输出,从而在不插入额外时钟节拍前提下,实现了寄存器输出。三、 实验内容本实验任务是实现一种简朴4状态状态机,依照输入信号in0—in3不同值在各个状态之间切换,同步输出相应数值。规定分别由一段式、二段式和三段式状态机实现同一种状态转移图。实验中信号与fpga连接如下:信号名称FPGAI/O名称功能阐明clkPin_E1系统时钟rst_nPin_C2系统复位in0Pin_P9输入信号in1Pin_R9in2Pin_T9in3Pin_N8outdata[0]Pin_A3状态输出outdata[1]Pin_B4outdata[2]Pin_A4outdata[3]Pin_B5四、 实验报告绘仿真波形,并作阐明。阐明不同形式状态机差别和优劣性。实验原理、设计过程、编译仿真波形和分析成果、硬件测试成果记录下来。
实验八设计七人表决器实验目熟悉七人表决器工作原理。进一步理解实验系统硬件构造。实验原理所谓表决器就是对于一种决策,由各种人投票,如果批准票数过半,就以为此决策可行;否则如果否决票数过半,则以为此决策无效。七人表决器顾名思义就是由七个人来投票,当批准票数不不大于或者等于4时,则以为批准;反之,当否决票数不不大于或者等于4时,则以为不批准。实验中用7个输入来表达七个人,当相应输入为‘1’时,表达此人批准,否则表达此人反对。若表决成果为通过,则pass信号为1;否则,pass信号为0。同步,显示通过票数。实验内容本实验实现一种简朴七人表决器功能。用7位输入代表7个人,成果显示通过与否,并显示批准人数。实验中信号与fpga连接如下:信号名称FPGAI/O名称功能阐明vote[0]Pin_P97人投票信号vote[1]Pin_R9vote[2]Pin_T9vote[3]Pin_N8vote[4]Pin_P8vote[5]Pin_R8vote[6]Pin_T8passPin_A3通过信号sum[0]Pin_B4批准人数sum[1]Pin_A4sum[2]Pin_B5实验报告1、绘出仿真波形,并作阐明。2、将实验原理、设计过程、编译仿真波形和分析成果、硬件测试成果记录下来。3、试在此实验基本上增长一种表决时间,只在这一时间内表决成果有效。4、用数码管显示通过票数。
实验九设计四人抢答器实验目1、熟悉四人抢答器工作原理。2、加深对VHDL语言理解。3、掌握EDA开发基本流程。实验原理抢答器在各类竞赛性质场合得到了广泛应用,它浮现,消除了本来由于人眼误差而未能对的判断最先抢答人状况。抢答器原理比较简朴,一方面必要设立一种抢答容许标志位,目就是为了容许或者禁止抢答者按按钮;如果抢答容许位有效,那么第一种抢答者按下按钮就将其清除,同步记录按钮序号,也就是相应按按钮人,这样做目是为了禁止背面再有人按下按钮状况。总说来,抢答器实现就是在抢答容许位有效后,第一种按下按钮人将其清除以禁止再有按钮按下,同步记录清晰抢答容许位按钮序号并显示出来,这就是抢答器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论