EDA技术实验报告
学院:
专业:
学号:
姓名:
实验一 QUARTUS Ⅱ的设计流程
一、实验目的:
1、掌握QUARTUSⅡ安装过程;
2、熟悉QUARTUSⅡ设计环境;
3、掌握QUARTUSⅡ的设计过程。
二、实验内容:
用文本输入法设计一个二进制加法器。
三、实验步骤:
(一)、创建工作文件夹
在windows中新建一个文件夹(又称工作库或WORK LIBRARY),用于保存设计工程项目的有关文件。注:设计工程项目的所有有关文件不能保存在根目录下,必须保存在一个文件夹之下。例如建立的文件夹:E:\CNT10
(二)、启动Quartus II
点击QUARTUSⅡ9.0图标打开QUARTUSⅡ9.0设计窗口。或点击QUARTUSⅡ9.0图标打开QUARTUSⅡ9.0设计窗口
(三)、设计文件输入
1、打开输入文件编辑器
点击菜单File\new…选择Verilog HDL file建立一个文本设计文件。用文本输入法输入程序。
2、保存文件,文件名同程序的模块名。后缀.v
(四)、全编译(逻辑综合)
1、创建工程
点击菜单File\New Project Wizard…….进行工程设置。完成工程文件夹的选定、工程名、顶层设计文件名(主程序)、编程器件的选择等工程设置。
2、编译前的相关设置设置
(1)选择PLD芯片:Assignmenmts\Settings\Device弹出的窗口中选择选择芯片。
(2)选择配置芯片的工作方式Assignmenmts\Settings\Device\Device&Pin Options弹出的窗口中首选General项,在Options栏中选择Auto-restart-configuration after error.
(3)选择配置芯片和编程方式:Assignmenmts\Settings\Device\Device&Pin Options弹出的窗口中选择Configuration栏,在窗口中设置配置方式,配置芯片和是否需要生成压缩的配置文件。
(4)选择输出设置:(1)-(4)项默认方式,可以不做任何操作,
(5)选择目标器件闲置引脚的状态:Assignmenmts\Settings\Device\Device&Pin Options弹出的窗口中选择Unused Pins栏,在窗口中对闲置的引脚设置,推荐设置为As input tri-stated。
3、执行全程编译:Processing\Start Compilation。完成对设计项目的检错、逻辑综合、结构综合、配置文件生成以及时序分析。
(五)、功能仿真(或时序仿真)
建议先做功能仿真,以检验设计项目的逻辑真确性,这样可以提高设计效率。
1、功能仿真设置:Assignmenmts\Settings弹出的窗口中选择Simulator Settings。在右边Simulation mode中选择 Functional.
2、Processing\Generate Functional Simulation netlist,生成功能仿真所需的文件。
3、建立波形文件并进行功能仿真
⑴File\New,在窗口中选择Vector Waveform file打开向量波形文件编辑器。
⑵设置仿真时间区域:可默认。一般几十微妙。时间区域过长,使仿真时间变长,影响仿真效率。
⑶在向量波形文件编辑器中添加项目的相关引脚。原则上是所有引脚,但有的项目引脚很多,可以只添加必要的一些引脚。双击向量波形文件编辑器Name栏的空白区域后,会弹出一个“Insert Node or Bus”对话框,在弹出的对话框中选择“Node Finder…”按钮,则弹出“Node Finder…”对话框,选择Filter:Pins:all,然后点击List,Nodes Found栏将列出所有输入、输出端口。选择要观察的信号,点击“>”命令按钮加入到观察目标窗口中。选择OK,则在波形图中加入了待观察信号的图形。
或者执行View\Utility Windows\Node Finder命令打开Node Finder窗口,在弹出的窗口中将所需引脚拖入波形编辑器中。
⑷编辑输入波形:对所有的输入引脚设置合适的波形。
⑸启动仿真器:Processing\Start Simulation.
⑹观察分析仿真结果。仿真结果保存于文件“Simulation Report”,此文件在仿真完成后会自动弹出。若仿真结果有出入,重新修改程序,直到仿真结果没有问题。
(六)、下载验证:
1、芯片选择ACEX1K\EP1K30QC208-2;
2、引脚锁定:
3、全编译;
4、下载线连接:将25针连下一端连接电脑LPT1口,一端连接到编程模块的DB25接口,再用十针连线一头插入通用编程模块JTGA下载接口处,另一头连接到目标芯片的下载接口。
5、打开实验箱电源,将模式选择开关CTRL的(2)(4)(8)拨至ON,使按键KD1,KD2,LED1,LED2,LED3,LED4,LED5等有效。
6、下载:Tools\Programmer,完成下载。
7、拨动开关按键KD1,KD2验证电路。
四、实验程序及仿真结果
(一)、实验程序:
时序仿真结果:
波形文件及仿真:
五、实验箱现象描述
注:在程序正确,正确操作实验箱并成功下载并正常运行程序的前提下,现象为:实验箱上一排设定的LED灯,分别为4个表示四位二进制码,一个表示使能信号EN,一个表示复位信号RST,一个表示置数信号,一个进位位COUT,高电平时表示进位,四个用于置数的灯。EN信号高电平有效,低电平起保持作用,RST低电平有效,起复位作用,LOAD信号低电平有效,起置数作用。
启动实验箱,让EN灯亮(高电平),RST灯亮(高电平),LOAD灯亮(高电平),此时表示四位二进制码的LED灯分别从0到9计数(约为1S记一个数),到10的时候,显示数的四个LED灯表示成0(全灭),进位位灯(COUT)闪动一次(表示进一位),如此反复。
使EN灯熄灭(低电平),显示数的灯停止变动,保持在它当前所表示的数值。恢复EN灯亮,继续计数。
使RST灯熄灭(低电平),显示数的灯立即变为全灭(表示复位为0)。
设置任意值,使LOAD灯熄灭(低电平),显示灯变成设置的数值,然后正常计数。
六、心得体会
本次实验,我了解了QUARTUS Ⅱ软件的安装过程,熟悉了QUARTUSⅡ设计环境,掌握了QUARTUSⅡ的设计过程以及QUARTUSⅡ软件的破解,学会了从编写程序到下载到实验箱验证运行的基本流程,学会了保存文本文件,文件名要与程序名一致且要加后缀.v会设置引脚和芯片选择。
实验二用原理图输入法设计2位频率计
一、实验目的:
1.熟悉和掌握用QUARTUS Ⅱ的原理图输入方法设计简单数字系统的方法,并通过一个2位频率计的设计掌握用EDA软件进行数字系统设计的详细流程。
2. 掌握用EDA技术的层次化设计方法; [/6 D.r$
3. 掌握多个数码管动态显示的原理与方法
二、实验内容
用原理图输入法设计一个2位频率计
三、实验步骤
1 .在顶层文件设计窗口中设计频率计,频率计的设计分成几部分设计,分别是一个2位十进制计数器,一个时序控制电路,一个显示电路模块。
2 .先设计2位十进制计数器,如图显示为设计好的2位十进制计数器。
步骤:(1)、点击file—new,弹出如图所示窗口,点击design File中Block diagram/schematic file,再点击ok即可。
(2)、在弹出的bdf文件设计窗口中设计所需的设计,设计完成后,点击编译按钮,编译无误后,再进行时序仿真。
结果如图:
(3)、即可点击file—created/update—create symbol files for current file.生成元件符号,供高层次设计调用。
注意:需要独立建立工程,2位十进制计数器的工程名和bdf文件名都为counter8。
3、设计时序控制电路,设计步骤与设计2位类似,设计完成后,一样需要设计文件符号供高层次设计调用,如图为设计好的时序控制电路。
4.在顶层设计窗口中设计顶层设计,最终的设计如图
进行时序仿真无误后进行波形仿真,结果如图:
可以从波形仿真中看出,当输入的待测信号的周期为410ns的时候,所测的的频率的最后两位为39。
四、试验箱验证及现象描述
引脚正确设定并正确下载到试验箱后,调节待测信号频率,当输入为4hz时,数码管上显示04,当输入为8hz,数码管上显示08,当输入为16HZ时,数码管上显示为16,当输入为128hz时,数码管上显示为28。
五、心得体会
通过这次实验,我能熟悉和掌握用QUARTUS Ⅱ的原理图输入方法设计简单数字系统的方法,并通过一个2位频率计的设计掌握用EDA软件进行数字系统设计的详细流程,以及用原理图的方式来实现想要的一些功能。[/6 D.r$
实验三简易正弦波信号发生器设计
一、实验目的:
1、进一步熟悉QuartusII设计流程;
2、熟悉LMP_ROM与FPGA硬件资源的使用方法。
3、熟悉SignalTap II嵌入式逻辑分析仪的使用方法。
二、实验内容
用原理图设计一个简易的正弦波信号发生器。
三、实验步骤
1.建立一个工程,取名为SIN_GNT。
2.生成.mif文件,用直接编辑法。点击file—new—memory file—memory initialization file,点击OK,选number为128位,word size为8位,点击ok,填写表格,结果如图
3.以原理图方式对LPM_ROM进行设置和调用,在工程原理图编辑窗中双击,出现symbol框图中点击megawizard plug-in manager,在所示窗口中点击memory compiler的ROM:1-PORT,取文件名为ROM78,正弦波数据初始化文件选择DATA7X8.mif,即可生成正弦信号数据存储器ROM,如图所示
4.用原理图方式对7为计数器LPM模块,方法与制作ROM78模块类似,如图所示
5.新建一个原理图设计窗口,取名为SIN_GNT,在窗口里面设计所需的电路,结果如图,
进行时序仿真,无误后建立波形文件,结果如图
由图可知,在时间脉冲的作用下,AR计数,相对于的,Q也从正弦信号数据存储器ROM中输出相对应的数值,由这两项,这可以在示波器上输出正弦波。
四、心得体会
通过本次实验中,通过调用LPM宏模块来编写一些需要的模块是一个很好的方法,我进一步熟悉QuartusII设计流程,LMP_ROM与FPGA硬件资源的使用方法,以及SignalTap II嵌入式逻辑分析仪的使用方法。
实验四 用状态机实现序列检测器的设计
一、实验目的
1、熟悉状态机的作用及设计方法;
2、学习用状态机实现序列检测器的设计,并对其进行仿真和硬件测试。
二、实验原理
序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果与检测器预先设置的码相同,则输出为1,否则输出为0。
三、实验内容
设计一个序列检测器,对1110010进行检测,对设计进行仿真测试并给出仿真波形。
四、实验步骤
(1)运行软件,创建一个工程,取名为SHCK,打开文本文件编辑窗口,输入编写好的程序,如图所示。
取名为shiyan4,保存生成shiyan4.v文件。
(2)编译,时序仿真,直至无错误。
(3)建立波形文件,保存,取名为SHCK。设置各个需要的设置的参数,仿真时间设置为50us,时钟信号周期为4us,复位信号高电平有效,一般情况保持低电平,设置输入信号DIN含有输入数据段如图1110010,
(4)点击波形仿真,结果如图
由仿真结果可以看出,只有当输入完整的1110010时,输出信号才是高电平。
(5)点击tools—netlist viewers—state machine viewers,查看状态转换表。
四、心得体会
通过这次实验,我掌握了状态机的基本结构及其工作原理,结构通常包含说明部分、主控时序过程、主控组合过程、辅助过程等几个部分,掌握了其程序的基本写法,学会了用状态机实现序列检测器的设计以及其基本原理。
第二篇:EDA实验报告 (2)
实验一 QUARTUSII软件安装、基本界面及设计入门
一、 实验目的:
QUARTUSII是Altera公司提供的EDA工具,是当今业界最优秀的EDA设计工具之一。提供了一种与结构无关的设计环境,使得电子设计人员能够方便地进行设计输入、快速处理和器件编程。通过本次实验使学生熟悉QUARTUSII软件的安装,基本界面及基本操作,并练习使用QUARTUS的图形编辑器绘制电路图。
二、 实验内容:
1、安装QUARTUSII软件;
2、熟悉QUARTUSII基本界面及操作;
3通过一个4位加法器的设计实例来熟悉采用图形输入方式进行简单逻辑设计的步骤。
三、 实验仪器:
1、PC机一台;
2、QUARTUSII软件;
3、EDA实验箱。
四、 实验原理:
4位加法器是一种可实现两个4位二进制数的加法操作的器件。输入两个4位二进制的被加数A和B,以及输入进位Ci,输出为一个4位二进制和数D和输出进位数Co。
半加操作就是求两个加数A、B的和,输出本位和数S及进位数C。全加器有3位输入,分别是加数A、B和一个进位Ci。将这3个数相加,得出本位和数(全加和数)D和进位数Co。全加器由两个半加器和一个或门组成。
五、 实验步骤:
安装QUARTUSII软件;
因为实验时我的机器了已经有QUARTUSII软件,所以我并没有进行安装软件的操作。
设计半加器:
在进行半加器模块逻辑设计时,采用由上至下的设计方法,在进行设计输入时,需要由下至上分级输入,使用QuartusIIGraphic Editor进行设计输入的步骤如下。
(1)、打开QUARTUSII软件,选择File-new project wizard?新建一个设计实体名为has的项目文件;
(2)、新建文件,在block.bdf窗口下添加元件符号,并连接。如下图:
半加器原理图
(3)、将此文件另存为has.gdf的文件。
(4)、在主菜单中选择Processing→Start Compilation命令,系统对设计进行编译,同时打开Compilation Report Flow Summary窗体,Status视图显示编译进程。如下图。
(5)在主菜单中选择File→New命令,打开New对话框。单击New对话框中的Other Files选项卡标签,再选择Vector Waveform File选项,单击OK按钮,组建一个Waveform1.vwf的波形文件。
(6)在Waveform1.vwf的波形文件左侧单击右键,选择Insert→Insert Node or Bus(或直接双击界面)打开后再选择Node Finder按钮,打开。在出现的对话框中的Filter下拉列表中选择Pins:all项,单击List按钮,在Nodes Found列表中显示项目中的所有引脚节点。将所有节点都添加到Selected Nodes列表中,确定,关闭对话框。
(7)选择主菜单中的Edit→End Time命令,打开对话框,在Time编辑框中输入100,单位us。按住Ctrl键,同时向下滚动鼠标滑轮,使窗口比例合适,拖动选择节点a的一段波形,使其被选中,然后单击左侧工具栏的按钮,使选中的一段波形状态变为1。采取同样的方法,将输入点都进行设置。
(8)选择File→Save命令,接受默认名称has.scf,确定,存盘。
为了对设计进行仿真,创建的波形文件的名称必须与设计文件的名称相同,并且它们要保存在同一个子目录下。
(9)选择Processing→Start Simulation命令。如果没有错误的话,弹出Simulator was successful。仿真波形如下图
:
半加器波形图
(10)选择File→Creat/Update→Creat symbol Files for current files,接受对话框内默认的名称has.bsf,确认后,系统生成元件,并保存在上一步设置的bsa.bsf文件中。
六、 实验总结:(实验过程中出现的问题及解决方法)
(1)因为是第一次接触QUARTUSII语言,所以很多的东西都不太了解,加之因为语言都是英文形式的导致有很多的操作看不懂。以致出现了一些不必要的错误。
(2)、实验过程中连图时要注意应该只有代表两根导线相连的情况下才会出现圆点,其他地方出现则说明导线连接出现问题。
(3)、在文件的保存的时候,错误的建立了多个“HSA”文件,扩展名也出现了错误,致使项目出错,不能编译。在请教老师后,老师帮着操作了一次。我基本是明白了这些操作。
(4)、实验有时会出现编译不成功,原因是文件名称和存储路径有问题。创建的波形文件的名称必须与设计文件的名称相同,并且它们要保存在同一个子目录下。
(5)、实验时应该针对不同的文件建立不同的子文件夹,否则容易造成找不到需要添加的文件,这样做也使实验简单,更具有实用性。