VHDL实验(完整版)_第1页
VHDL实验(完整版)_第2页
VHDL实验(完整版)_第3页
VHDL实验(完整版)_第4页
VHDL实验(完整版)_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、实验一 Quartus II软件使用与十进制计数器一、实验目的 熟悉使用Quartus II软件二、实验内容 安装Quartus II软件并成功注册、使用Quartus II软件建立工程并完成十进制计数器三、实验仪器、设备 计算机、Quartus II软件四、实验步骤 1.打开安装文件位于quartusII6.0disk1install.exe,根据提示进行下一步操作,在弹出框中选择第一个选项,install Quartus II and Related Software。Quartus II的安装步骤1接下来的安装中选择下一步,到下图选择界面。只勾选安装Quartus II 6.0即可。Qu

2、artus II的安装步骤2 2. 完成安装步骤2后选择下一步至下图所示,选择完全安装complete,再继续点击下一步至安装开始。完全安装Quartus II软件软件安装途中出现如下图所示情况时,选择安装文件中的disk2disk2quartus,然后选择确定OK继续安装直到结束。安装过程中换disk2路径Quartus II软件的安装至此结束,此安装步骤WINXP/WIN 7均有效,WIN8若有问题,请修改兼容权限。3.软件注册。软件安装结束后打开Quartus II软件将出现下图所示情况,这是没有注册的提醒,我们必须先进行注册才能建立工程文件,若大家忽略了这个提示窗口,直接进行工程建立等

3、工作,任何仿真图和编译功能都无法正常使用,等于白费功夫浪费时间,还要重新做,非常影响学习兴趣和情绪。(由于软件注册是绑定MAC物理地址,所以每台机器的license是完全不一样的,实验室的电脑已经安装好了Quartus II软件,但是没有注册,所以做实验的时候一点要先注册,不然就白做了)Quartus II软件提示未注册弹窗注册方法,打开quiic7.1 lisence 生成器文件夹中的keymaker.exe,在弹出的窗口中点击Make License,在文件夹中就会出现和本台机器相匹配的license.dat。(注意此license只对应本机,拷贝给其他机器无效)将license.dat复

4、制到C:alteraquartus60win文件夹下。(可以使用快键方式点击Quartus II 6.0右键属性打开文件夹位置即是需要复制到的文件夹,选择替换该文件),在自己电脑安装时,还有一个sys_cpt.dll文件需要被替换才能完成注册,替换文件的地路径quartusII6.0disk2disk2crack6.0sys_cpt.dll,这一步在实验室电脑无需做,特别是不能复制生成器里面的sys_cpt.dll,不然软件无法打开。license生成器生成的license复制license.dat到目标文件夹并替换替换license后打开上图即为注册成功到此Quartus II软件安装与注册

5、已经介绍完毕,若安装中还有其他问题请咨询相关老师或网上找寻解决办法。4. Quartus II软件工程建立。任何一项设计都是一项工程(project),必须先为此工程建立一个放置与此工程相关的设计文件的文件夹。一般,不同的设计项目放在不同的文件夹中,而同一工程的所有文件都必须放在同一文件夹中。(注意:不要将文件夹设在计算机已有的安装目录中,更不要将工程文件直接放在安装目录中)新建文件夹,在自定的路径建立文件夹,例如:d:cnt10b(注意:文件夹不能用中文命名,也不要用纯数字)选择主页面的FileNewVHDL FileOK,如下图所示新建VHDL文件将下面源程序复制进去(十进制计数):lib

6、rary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt10b isport( clk,rst,en:in std_logic; cq:out std_logic_vector(3 downto 0); cout:out std_logic);end cnt10b;architecture behav of cnt10b isbegin process(clk,rst,en) variable cqi:std_logic_vector(3 downto 0); begin if rst =

7、1 then cqi:=(others =0); -计数器异步复位 elsif clkevent and clk=1 then if en = 1 then -检测是否允许计数 if cqi0); -大于9,计数器清零 end if; end if; end if; if cqi=9 then cout=1; -大于9,输出进位信号 else cout=0; end if; cq=cqi; -将计数器值向端口输出end process;end behav;复制完成后将VHDL文件存盘,选择FileSave As,找到已建立的文件夹d:cnt10b,存盘名称自定,同样不能为中文,我们用文件夹命名

8、cnt10.vhd。当出现“Do you want to create a new project with this file?”时,选择是,随即进入工程建立流程。将会出现下图,说明各行的意义,第一行D:/cnt10b/,说明你的工程文件的路径。第二行cnt10b,是工程的名字。第三行cnt10b为当前工程文件的实体名,这里即为cnt10b。此方法所有选项会根据你以上的步骤自动记录,直接选择下一步即可。工程文件建立点击下一步Next,将设计文件加入工程(如果事先做好的话),我们刚才建立的cnt10b.vhd源程序文件,我们将它加入进来后,选择下一步。工程文件添加点击下一步Next后,选择具体

9、芯片型号Family类型选择Cyclone,具体型号为EP1C6Q240C8。芯片型号一定要选择对,不然无法将程序下载至实验箱。选择下一步Next,第四项选择工具可以全部不选,直接Next完成。此时,cnt10b的工程已建立好。cyclone芯片选择工程建立成功图示选择ProcessingStart Compilation进行编译,也可点击快捷工具栏中按钮进行编译操作,编译成功如下图所示。编译成功界面若编译时出现其他问题(warming可忽略),软件会提示出现问题的地方,比如:语句错误等。根据提示进行修改,若一直跟着此步骤做下来,应该不会有问题。(注意:未注册的软件是100%无法编译成功的)5

10、.建立波形文件进行仿真。选择FilenewOther FilesVector Waveform FileOK,建立波形仿真软件,然后选择ViewUtility WindowsNode Found【快捷键(ALT+1)】,然后再弹出的对话框中Filter选择Pins:all点击list,将出现9个信号源(若未出现说明未编译成功,重新编译一次),框选全部信号源,添加至波形文件的Name下面,然后点击保存,将波形文件命名为cnt10b.vwf。信号源的添加信号源添加至波形文件进行信号源的属性设置,首先设置仿真的起止时间,EditEnd Time,选择仿真时间10S。然后将clk时钟源设置为时钟模式O

11、verwrite Clock图标为,点击后选择周期等属性,End time设置 时钟周期设置将其他信号源(en,rst)按照仿真图进行设置,然后执行波形仿真,点击进行编译,结果如下图所示。波形仿真结果图6.引脚设置。选择assignmentspins进行引脚设置,将引脚设置为同下图一样。引脚设置完毕后,再进行一次编译(Start Compilation)才能进行下载。引脚设置界面到此本次实验仿真部分完成,接下来是将程序下载至实验箱的实操部分。7.源程序下载。USB下载器驱动安装,将下载器连接到USB口,此时电脑将出现新硬件,Quartus II软件安装时就会将驱动程序一起安装,默认路径C:al

12、teraquartus60driversusb-blaster,所以我们只要找到驱动路径进行指定就OK了,具体方法见下图(图为WIN7环境下的驱动安装)发现新硬件选择驱动文件路径若出现验证选择始终安装USB驱动安装完毕后,点击ToolsProgrammer进行下载步骤,点击Hardware Setup进行硬件设置,在此选择USB-Blaster,点击close。若安装了驱动却没出现USB-Blaster,请拔掉下载器重新插入。然后勾选Program/Configure后点击Start将编译好的程序下载至实验箱。Progress旁边的蓝色条出现100%,并且页面下部出现绿色字样:Info: Co

13、nfiguration succeeded - 1 device(s) configured就表示下载成功。下载页面Hardware Setup页面设置下载成功界面8.功能介绍。十进制计数器程序已经被我们下载到实验箱,是不是特别想看看实物的结果,我们这个实验的引脚使用的是模式5的电路,所以按模式选择,将指示灯按成5,就是模式5。按键设置键1为EN端,即使能端,键2为rst,即复位端,LED D1为cout,即进位位。此时我们需要设置时钟频率,在实验箱右下角,最右边一排有插针,请将插针的跳线帽接在16Hz及以下就能清楚的看见我们实验的效果。实验二 组合电路的设计一、实验目的 熟悉使用Quartu

14、s II软件的VHDL文本设计流程全过程二、实验内容 学习简单组合电路的设计、多层次电路设计、仿真和硬件测试三、实验仪器、设备 计算机、Quartus II软件四、实验步骤1.首先利用 Quartus完成2选1多路选择器(例1-1)的文本编辑输入(mux21a.vhd)。【例 1-1】library ieee;use ieee.std_logic_1164.all;ENTITY mux21a ISPORT ( a, b, s: IN STD_LOGIC;y : OUT STD_LOGIC );END ENTITY mux21a;ARCHITECTURE one OF mux21a IS BEG

15、INPROCESS (a,b,s) BEGINIF s = 0 THEN y = a ; ELSE y = b ;END IF;END PROCESS;END ARCHITECTURE one ;2.将此多路选择器看成是一个元件 mux21a,利用元件例化语句描述三选一数据选择器图1-1,并将此文件放在同一目录中。以下是MUX31部分参考程序:.COMPONENT MUX21APORT ( a,b,s :IN STD_LOGIC;y : OUT STD_LOGIC);END COMPONENT ;.u1 : MUX21A PORT MAP( );u2 : MUX21A PORT MAP( );

16、END ARCHITECTURE BHV ;图 1-1 3选1多路选择器3.请根据VHDL例化语句部分内容把MUX31的程序补充完整,之后进行编译、仿真、引脚设置、硬件下载。图1-2 实验电路结构图NO.5选择实验电路模式5,可以任意选择两个键控制s0和s1;a3、a2和a1分别接clock5、clock0和clock2;输出信号outy 接扬声器spker(引脚号为174)。通过跳线帽选择clock0, clock5,clock2接不同频率的信号。最后进行编译、下载和硬件测试实验(通过选择按键,控制s0、s1,可使扬声器输出不同clock频率的音调)。图1-3 实验箱引脚图五、实验内容记录1

17、.将设计好的3选1程序写在实验报告上2.将3选1电路时序仿真结果图画在实验报告上3.将3选1电路的引脚设置情况写在实验报告上4.将3选1电路的硬件测试情况列表描述状态(按键s0、s1是什么状态时,输出的是哪个clock的信号?)实验三 QuartusII原理图输入法设计4位全加器一、实验目的 熟悉使用Quartus II软件的原理图输入设计流程全过程二、实验内容 学习原理图输入法的设计、多层次电路设计、仿真和硬件测试三、实验仪器、设备 计算机、Quartus II软件四、实验步骤1、首先,使用原理图输入设计方法(具体方法查看书本),建立1位半加器原理图,将原理图设置成可调用的元件,将2个半加器

18、组成一个1位全加器,再将全加器设置成可调用的元件去搭建4位全加器。2、一个4位全加器由4个1位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相临的高位加法器的最低进位输入信号cin相接。4位全加器原理图3、选择好电路模式,从以下模式中选择你需要的电路模式进行设计和配置引脚,并完成编译、波形仿真、引脚设置和硬件测试。五、实验内容记录1.说明半加器和全加器的区别2.本次实验可以使用哪几个电路模式完成实验?3.请根据下载实验箱后的情况填写下表a0-a3b0-b3cincoutsumC219506708A1DE0FF1实验四 数控分频器的设计一、实验目的学习数控分频器的

19、设计、分析和测试方法。二、实验原理数控分频器的功能就是当在输入端给定不同输入数据时,将对输入的时钟信号有不同的分频比,数控分频器就是用计数值可并行预置的加法计数器设计完成的,方法是将计数溢出位与预置数加载输入信号相接即可。三、实验内容(1)分析:根据下图的波形提示,分析实验程序各语句功能、设计原理及逻辑功能,详述进程P_REG和P_DIV的作用,并画出该程序的RTL电路图。图 当给出不同输入值 D时,FOUT 输出不同频率(CLK 周期=50ns)(2)仿真:输入不同的CLK频率和预置值D,给出时序波形。(3)在实验系统上硬件验证本次实验功能。按照步骤对上例分别进行编译、综合、仿真。并对其仿真

20、波形作出分析说明。请将实验程序补齐,然后进行编译、仿真、下载。将P_REG和P_DIV的作用写在实验报告上。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DVF ISPORT ( );END;ARCHITECTURE one OF DVF ISSIGNALFULL : STD_LOGIC;BEGINP_REG: PROCESS(CLK)VARIABLE CNT8 : STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINIF CLKEVENT AND CLK = 1

21、THENIF CNT8 = THENCNT8 := D;-当CNT8计数计满时,输入数据D被同步预置给计数器CNT8FULL = 1; -同时使溢出标志信号FULL输出为高电平ELSECNT8 := CNT8 + 1; -否则继续作加1计数FULL = 0;-且输出溢出标志信号FULL为低电平END IF;END IF;END PROCESS P_REG ; P_DIV: PROCESS(FULL)VARIABLE CNT2 : STD_LOGIC; BEGINIF FULLEVENT AND FULL = 1 THENCNT2 := NOT CNT2; -如果溢出标志信号FULL为高电平,D

22、触发器输出取反IF CNT2 = 1 THEN FOUT = 1; ELSE FOUT = 0; END IF;END IF;END PROCESS P_DIV ;END;实验五 序列检测器设计一、实验目的 用状态机实现序列检测器的设计,了解一般状态机的设计与应用二、实验原理序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出 1,否则输出 0。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。在检测

23、过程中,任何一位不相等都将回到初始状态重新开始检测。电路完成对序列数“”的检测,当这一串序列数高位在前(左移)串行进入检测器后,若此数与预置的密码数相同,则输出“A”,否则仍然输出“B”。三、实验内容 (1)实验内容1:利用 QuartusII进行文本编辑输入、仿真测试并给出仿真波形,了解控制信号的时序,最后进行引脚锁定并完成硬件测试实验。建议选择电路模式No.8(附录图10),用键7(PIO11)控制复位信号CLR;键6(PIO9)控制状态机工作时钟CLK;待检测串行序列数输入DIN接PIO10(左移,最高位在前);指示输出AB接PIO39PIO36(显示于数码管6)。下载后:按实验板“系统

24、复位”键;用键2和键1输入2位十六进制待测序列数“”;按键7复位(平时数码6指示显“B”);按键6(CLK)8次,这时若串行输入的8位二进制序列码(显示于数码2/1和发光管D8D0)与预置码“”相同,则数码6应从原来的B变成A,表示序列检测正确,否则仍为B。(2)实验内容2:将8位待检测预置数由键4/键3作为外部输入,从而可随时改变检测密码。四、实验仪器、设备 计算机、Quartus II软件五、实验步骤1、实验程序LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SCHK ISPORT(DIN,CLK,CLR : IN STD_LOGIC; -

25、串行输入数据位/工作时钟/复位信号AB : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -检测结果输出END SCHK;ARCHITECTURE behav OF SCHK ISSIGNAL Q : INTEGER RANGE 0 TO 8 ;SIGNAL D : STD_LOGIC_VECTOR(7 DOWNTO 0); -8位待检测预置数(密码=E5H)BEGIND = ; -8位待检测预置数PROCESS( CLK, CLR )BEGINIF CLR = 1 THENQ IF DIN = D(7) THEN Q = 1 ; ELSE Q IF DIN = D(6) THEN Q = 2 ; ELSE Q IF DIN = D(5) THEN Q = 3 ; ELSE Q IF DIN = D(4) THEN Q = 4

温馨提示

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

评论

0/150

提交评论