简单时序电路的设计一、实验目的:1.熟悉QuartusII的VHDL文本设计过程。2.学习简单时序电路的设计、仿真和硬件测试。二、实验原理时序逻辑电路是现代复杂数字电路的重要组成部分,往往占到整个设计的90%以上。触发器是时序电路的基本单元,本实验中将涉及到边沿触发和电平触发两种电路结构,其中边沿触发是实际电路实现的主要方式。三实验环境1.硬件:PC机、CycloneIII开发板一块。2.软件:QuartusII8.1四.实验内容1)设计一个上升沿触发的D触发器输入:D输出:Q触发时钟:CLK2)在QuartusII环境下对以上设计的模块进行编译,记录时序分析数据和仿真波形,并在实验电路上进行硬件测试。管脚锁定:DPIN_J6CLKPIN_G4QPIN_D2五.实验步骤:1.建立工作库文件夹和编辑设计文件(1)新建一个文件夹。本项设计文件夹取名为D:\DFF1。(2)输入源程序。打开QuartusII,选择File—New。在New窗口中的DeviceDesignFiles中选择编译文件的语言类型,这里选择VHDLFiles。然后在VHDL文本编辑窗中输入2选1多路选择器的VHDL程序。程序如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDFF1ISPORT(CLK:INSTD_LOGIC;D:INSTD_LOGIC;Q:OUTSTD_LOGIC);END;ARCHITECTUREbhvOFDFF1ISSIGNALQ1:STD_LOGIC;BEGINPROCESS(CLK,Q1)BEGINIFCLK'EVENTANDCLK='1'THENQ1=D;ENDIF;ENDPROCESS;Q=Q1;ENDbhv;(3)文件存盘。选择File—SaveAs命令,找到已设立的文件夹D:\DFF1,存盘文件名应该与实体名一致,即DFF1.vhd。当出现问句“Doyouwanttocreate…”时,点击“是”,直接进入创建工程流程。2.创建工程(1)打开建立新工程管理窗口。在上一步弹出的NewProjectWizard:Introduction窗口点击“Next”按钮,即弹出“工程设置”对话框。单击此对话框最上一栏右侧的“…”按钮,找到文件夹D:\quartvs2\DFF1,选中以存盘的文件DFF1.vhd在单击“打开”按钮。(2)将设计文件加入工程中。单击下方的“Next”按钮,在弹出的对话框中单击File栏的按钮,将与工程有关的所有VHDL文件加入此工程,然后单击下方的“Next”按钮。(3)选择目标芯片。首先在Family栏选芯片系列,在此选“Cyclne3”系列,再在Availabledevices栏中选择具体芯片,最后在Package栏选择FBGA,在Pincount栏中选择256,点击下方的“Next”按钮。(4)结束设置。在弹出的窗口再点击“Next”按钮,出现“工程设置统计”窗口,上面列出了此项工程相关的设置情况,最后单击Finish按钮。即已设计好此工程。3.全程编译编译前首先选择Processing菜单中的StartCompilation项,启动全程编译。编译过程中药注意工程管理窗口下方的Processing栏中的编译信息。如果工程中文件有错误,启动编译后在下方的Processing栏中会显示出来,对于Processing栏显示出的语句格式错误,可双击此条文,即弹出对应的vhdl文件,在深色标记处即为文件中的错误,再次进行编译直至排除所有错误。4.仿真对工程设计编译后,必须对其功能和时序性质进行仿真测试,以了解设计结果是否满足原设计要求。(1)打开波形编译器。选择菜单File中的New项,在New窗口中选择OtherFiles中的VectorWaveformFile,单击OK按钮,即出现空白的波形编译器。(2)设计仿真时间区域。在Edit菜单中选择EndTian项,在弹出的窗口中的Tian栏处输入50,单位选“us”,单击OK,结束设置。(3)波形文件存盘。选择File中的Saveas项,将以默认名DFF1.vwf的波形文件存入文件夹d:\DFF1中。(4)将工程DFF1的端口信号名选人波形编译器中。(5)编辑输入波形。单击波形窗口的信号CLK,使之变成蓝条,在单击左列的时钟设置键,在Clock窗口中设置CLK信号的时钟周期,然后再设置D的电平。(6)启动仿真器。在菜单Processing项下选择StartSimulation,直到出现Simulationwassuccessful,仿真结束。(7)观察仿真结果。5.引脚设置:在Assignments菜单中的pins选项里设置管脚映射。6.编程下载:需要重新安装USB驱动程序。7.硬件测试:开发板测试。五实验结果输入源程序界面如下:编译成功的界面如下:功能仿真结果如下:硬件测试结果及分析:CLKPIN_233SW1DPIN_234SW2QPIN_1LED1若SW2为1,当按下SW1时,LED1亮,此时若让SW2为0,再按下SW1,则LED1灭。可知:当CLK上升沿到来时,输出Q就是D值。故结果正确。实验结果分析与结论时序电路含有记忆元件(例如触发器),电路状态的变化一般只发生在时钟信号的特定时刻(例如上升沿),而其它时刻保持原有状态不变。时序电路一般只能利用进程中的顺序语句来建立,最主要的途径是利用不完整的条件语句描述。时序电路中两个关键信号是时钟信号和复位信号,在对时钟信号边沿检测的描述方法中,最常用的表达式是CLK‘EVENTANDCLK=’1’。在波形仿真及硬件测试的时候,观察在计数开始之后的每一个时钟的上升沿,如果计数值和硬件的LED发生预测之内的变化,则说明波形仿真、硬件测试成功。实验心得:这次实验让我学习到了D触发器中Q的输出结果不但与CLK有关,还与进程中的敏感信号有关,做硬件测试时要先检查开发板能不能正确使用。