第一篇:EDA实验报告
EDA 实验报告
张佳兴 2220131738 电气工程及其自动化1班
一、Verilog语言反应硬件特性举例
1.module cc(clk,en,cout)、input、output,这三个语句用Verilog语言定义了一个逻辑器件,module后边括号内为端口名称,每个端口都对应硬件的一个引脚,引脚的输入输出性质都由input、output所定义,C语言中对变量的定义,都是int等反应数据大小的数据类型,不能反映硬件特性。
2.reg寄存器类型,表示一个具有保持作用的数据储存单元,它只能在always语句和initial语句中被赋值,并且它的值从一个赋值到另一个赋值被保存下来。这种类型就和实际芯片中的寄存器作用一样,可以将其中数据状态保存一定时间,C语言中没有这一类型。
3.always语句当其检测到适当状态时,执行其中内容。Always @(posedge clk)语句就表明,检测到高电平执行,和实际芯片引脚状态变化引起内部变化原理一致,C语言中没有过程赋值这种语句,C中也没有对高低电平、上升下降沿的判断条件。
4.Verilog语言中的模块例化,将各个模块程序在例化程序里结合起来,在硬件层面就相当于将各个小的模块互相连接,构成一个大的模块,C语言中类似的形式是函数,一个函数可以有子函数,但是C中的函数不能反应硬件特性。
二、数字频率计设计与调试总结
在进行课程设计的过程中我遇到了以下几点困难:
1.在最初设计时,没能利用硬件的思想来设计这个题目,导致频率频率计数的逻辑控制部分设计不清。在参考老师所提供的框图后了解应将逻辑控制部分单独设计成一个模块,通过en和clr来控制计数,这样技术部分就可以将之前的实验内容移植过来,十分简便。
2.在设计过程中的,锁存部分原理没有搞懂。按照老师的框图,从前向后分析,发现锁存的时钟clk是之前逻辑控制部分的lock引脚所提供,这样就将每个周期所计得的频率结果在同一个时序通过锁存器向后传输。
3.配置引脚时出错,将数码管的位选引脚顺序弄反,导致数码管显示错误。仔细检查,发现错误,改正后正常运行。4.在拓展功能一的设计中,将十分频部分弄错,最后出来的结果和预期差了一些。在当堂实验课中,这个错误我没能及时纠正,回来之后,我对应程序认真检查,发现我的十分频,被我设计成了逢9进1,导致最后结果错误。
5.发现了自己很多语法问题,比如在过程赋值中对wire类型数据进行赋值导致错误,module定义的模块名称没有和文件名称对应导致错误等,最终我通过PPT及网络途径解决了这些问题。
在这次实验中,基本功能全部实现,并且是我自行制作,拓展功能一,同样是我自行完成,不过我当时得到的结果有误差,实验后我已经发现了问题,改正了错误。拓展功能二没有实现。
三、对课程的建议
1.我希望老师以后的实验过程中能够有一个答疑环节,在实验前,我们可以对预习中不懂的部分进行提问。
2..希望老师能增加一些课时,或者给我们一些课外时间去到实验室,我们的实验我自我感觉相对别的实验来说难度还是比较大的,我觉得如果有充足的时间,洒家可以将拓展部分做出来,为自己争取更好的分数。
第二篇:EDA实验报告
实验一:
QUARTUS II 软件使用及组合电路设计仿真
实验目的:
学习QUARTUS II 软件的使用,掌握软件工程的建立,VHDL源文件的设计和波形仿真等基本内容。
实验内容:
1.四选一多路选择器的设计 基本功能及原理 :
选择器常用于信号的切换,四选一选择器常用于信号的切换,四选一选择器可以用于4路信号的切换。四选一选择器有四个输入端a,b,c,d,两个信号选择端s(0)和s(1)及一个信号输出端y。当s输入不同的选择信号时,就可以使a,b,c,d中某一个相应的输入信号与输出y端接通。
逻辑符号如下:
程序设计:
软件编译:
在编辑器中输入并保存了以上四选一选择器的VHDL源程序后就可以对它进行编译了,编译的最终目的是为了生成可以进行仿真、定时分析及下载到可编程器件的相关文件。仿真分析:
仿真结果如下图所示
分析:
由仿真图可以得到以下结论:
当s=0(00)时y=a;当s=1(01)时y=b;当 s=2(10)时y=c;当s=3(11)时y=d。符合我们最开始设想的功能设计,这说明源程序正确。2.七段译码器程序设计 基本功能及原理:
七段译码器是用来显示数字的,7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用VHDL译码程序在FPGA或CPLD中实现。本项实验很容易实现这一目的。输出信号的7位分别接到数码管的7个段,本实验中用的数码管为共阳极的,接有低电平的段发亮。数码管的图形如下
七段译码器的逻辑符号:
程序设计:
软件编译:
在编辑器中输入并保存了以上七段译码器的VHDL源程序后就可以对它进行编译了,编译的最终目的是为了生成可以进行仿真、定时分析及下载到可编程器件的相关文件
。仿真分析:
仿真结果如下图所示:
分析: 由仿真的结果可以得到以下结论:
当a=0(0000)时led7=1000000 此时数码管显示0; 当a=1(0001)时led7=1111001 此时数码管显示1; 当a=2(0010)时led7=0100100 此时数码管显示2; 当 a=3(0011)时led7=0110000 此时数码管显示3; 当 a=4(0100)时led7=0011001 此时数码管显示4; 当 a=5(0101)时led7=0010010 此时数码管显示5; 当 a=6(0110)时led7=0000010 此时数码管显示6; 当 a=7(0111)时led7=1111000 此时数码管显示7; 当 a=8(1000)时led7=0000000 此时数码管显示8; 当a=9(1001)时led7=0010000 此时数码管显示9; 当a=10(1010)时led7=0001000 此时数码管显示A; 当a=11(1011)时led7=0000011 此时数码管显示B; 当 a=12(1100)时led7=1000110 此时数码管显示C; 当a=13(1101)时led7=0100001 此时数码管显示D; 当a=14(1110)时led7=0000110 此时数码管显示E; 当a=15(1111)时led7=0001110 此时数码管显示F;
这完全符合我们最开始的功能设计,所以可以说明源VHDL程序是正确的。
实验心得:
通过这次实验,我基本掌握了QUARTUS II软件的使用,也掌握了软件工程的建立,VHDL源文件的设计和波形仿真等基本内容。在实验中,我发现EDA这门课十分有趣,从一个器件的功能设计到程序设计,再到编译成功,最后得到仿真的结果,这其中的每一步都需要认真分析,一遍又一遍的编译,修改。当然,中间出现过错误,但我依然不放弃,一点一点的修改,验证,最终终于出现了正确的仿真结果,虽然有一些毛刺,但是总的来说,不影响整体的结果。
实验二:计数器设计与显示
实验目的:
(1)熟悉利用QUARTUS II中的原理图输入法设计组合电路,掌握层次化的设计方法;
(2)学习计数器设计,多层次设计方法和总线数据输入方式的
仿真,并进行电路板下载演示验证。实验内容:
1.完成计数器设计
基本功能及原理:
本实验要设计一个含有异步清零和计数使能的4位二进制加减可控计数器,即有一个清零端和使能端,当清零端为1时异步清零,即所有输出值都为0,当使能端为0时,计数器停止工作,当使能端为1时,正常工作,由时钟控制。另外,还应该有一个控制端,当控制端为0时,进行减法运算,当控制端为1时,进行加法运算。输出端有输出值和进位端,当进行加法运算时,输出值递增,当减法运算时,输出值递减,同时进位端进行相应的变化。
4位二进制加减计数器的逻辑符号:
程序设计:
软件编译:
在编辑器中输入并保存了以上4位二进制加减计数器的VHDL源程序后就可以对它进行编译了,编译的最终目的是为了生成可以进行仿真、定时分析及下载到可编程器件的相关文件。仿真分析: 仿真结果如下:
分析:
由仿真图可以得到以下结论:
当enable端为0时,所有数值都为0,当enable端为1时,计数器正常工作;当reset端为1时,异步清零,所有输出数值为0,当reset端为0时,正常工作;当updown端为0时,进行减法运算,当updown为1时,进行加法运算;另外,当程序进行减法运算时,出现借位时,co为1,其余为0,当进行加法运算时,出现进位时,co为1,其余为0。图中所有的功能与我们设计的完全一样,所以说明源程序正确。2.50M分频器的设计
基本功能及原理:
50M分频器的作用主要是控制后面的数码管显示的快慢。即一个模为50M的计数器,由时钟控制,分频器所有的端口基本和上述4位二进制加减计数器的端口一样,原理也基本相同。分频器的进位端(co)用来控制加减计数器的时钟,将两个器件连接起来。50M分频器的逻辑符号如下:
程序设计:
软件编译:
在编辑器中输入并保存了以上50M分频器的VHDL源程序后就可以对它进行编译了,编译的最终目的是为了生成可以进行仿真、定时分析及下载到可编程器件的相关文件。仿真分析: 结果如下:
上图为仿真图的一部分,由于整个图太大,所以显示一部分即可,其余部分如图以上图规律一直递增,直到50M为止,然后再重复,如此循环。
上图是部分输出的显示,由于整个图太大,所以只显示部分,其余部分如图递增。
分析:
由仿真图可以看出,当reset为0,enable为1时(因为本实验中计数器的模值太大,为了尽可能多的观察出图形,可让reset一直为0,enable一直为1,即一直正常工作),输出值由0一直递增到50M,构成一个加法计数器,与我们设计的功能一致。3.七段译码器程序设计
基本功能及原理:
七段译码器是用来显示数字的,7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用VHDL译码程序在FPGA或CPLD中实现。本项实验很容易实现这一目的。输出信号的7位分别接到数码管的7个段,本实验中用的数码管为共阳极的,接有低电平的段发亮。
七段译码器的逻辑符号:
程序设计:
软件编译:
在编辑器中输入并保存了以上七段译码器的VHDL源程序后就可以对它进行编译了,编译的最终目的是为了生成可以进行仿真、定时分析及下载到可编程器件的相关文件。仿真分析:
仿真结果如下图所示:
分析:具体分析与实验一中七段译码器的分析相同,在此不再赘述。计数器和译码器连接电路的顶层文件原理图:
原理图连接好之后就可以进行引脚的锁定,然后将整个程序下载到已经安装好的电路板上,即可进行仿真演示。
实验心得:
经过本次试验,我学到了很多。首先,我加强了对QUARTUS II软件的掌握;其次,我掌握了电路图的顶层文件原理图的连接,学会了如何把自己设计的程序正确的转化为器件,然后正确的连接起来,形成一个整体的功能器件;最后,我学会了如何安装以及如何正确的把完整的程序下载到电路板上,并进行演示验证。
实验三:大作业设计
(循环彩灯控制器)
实验目的:
综合应用数字电路的各种设计方法,完成一个较为复杂的电路设计。实验内容:
流水灯(循环彩灯)的设计 设计任务:
设计一个循环彩灯控制器,该控制器可控制10个发光二极管循环点亮,间隔点亮或者闪烁等花型。要求至少三种以上花型,并用按键控制花型之间的转换,用数码管显示花型的序号。基本原理:
该控制器由两部分组成,一部分是一个50M的分频器,其主要用来控制花色变化的快慢;另一部分是一个彩灯控制器,该彩灯控制器可由两个开关控制花型的序号,10个输出分别控制10个发光二极管的亮暗,当输出为1时,该发光二极管亮,输出为0时,该二极管灭。将分频器的co端用来控制彩灯控制器的时钟,将两个器件连接起来。1.分频器的设计
50M分频器与实验二中的分频器一样,这里不再赘述。2.彩灯控制器的设计 基本原理:
该彩灯控制器由时钟控制,reset异步清零,enable当做使能端,由两个开关do(0-1)来控制选择不同的花型,10个输出端lig(0-9)来控制10个LED灯的亮灭。因为用了两个开关来控制花型,所以一共有4种花色。
彩灯控制器的逻辑符号:
程序设计:
3.七段译码器的设计
七段译码器是用来显示不同花型的序号的,其设计与实验一中的设计一样,这里不再赘述。循环彩灯控制器的原理图:
仿真波形如下: 第一种花型:
第二种花型:
第三种花型:
第四种花型:
仿真分析:
将以上仿真波形图和源程序对比,我们可以看到,仿真出来的波形和我们设计的功能一致,这说明源VHDL程序是正确的。实验心得:
本次试验是在没有老师指导的情况下自己完成的,我在参考了网上的程序的情况下,最终成功的设计并正确的演示出了循环彩灯的不同花型。通过本次试验,我真正的体会到了DEA这门课的乐趣,也发现它对我们的学习和生活带来很大的方便。
第三篇:EDA实验报告
EDA课程实验报告
----移位相加8位硬件乘法器电路计
ou 1
移位相加硬件乘法器设计
一.实验目的
1、学习移位相加8 位硬件乘法器电路设计;
2、学习应用EDA 技术进行项目设计的能力
二.实验原理
该乘法器是由8位加法器构成的以时序方式设计的8位乘法器。其乘法原理是:乘法通过逐项移位相加原理来实现,从被乘数的最低位开始,若
为1,则乘数左移后与上一次的和相加;若为0,左移后以全零相加,直至被乘数的最高位。
实验箱内部结构图
:
三.实验设备
1.安装QUARTUS II 软件的PC一台;
2.实验箱一个 四.实验步骤
1.输入下列VHDL程序:
2.编译程序,并连接实验箱并下载 3.在实验箱上按下列要求进行设置:
①选择模式1 ②CLKK控制移位相加速度,接clock0=4Hz ③A[7..0]、B[7..0]输入数据 显示于此4个数码管上
④DOUT[15..0]接数码管8/7/6/5,显示16位乘积:PIO31—PIO16 ⑤接键8(PIO49):高电平清0,低电平计算允许
⑥A[7..0]接键2/1,输入8位乘数 PIO7—PIO0(模式1)⑦B[7..0]接键2/1,输入8位被乘数 PIO7—PIO0(模式1)
五.实验结果
实验程序编译运行后RTL电路图
ou 1)2
(模式
实验RTL电路
A[7..0]接键2/1,输入8位乘数:A2(十六进制)B[7..0]接键4/3,输入8位被乘数:33(十六进制)可得结果DOUT[15..0]:2046(十六进制)六:心得体会
通过电子设计的数字部分EDA设计,我们掌握了系统的数字电子设计的方法,也知道了实验调试适配的具体操作方法。
通过实验,进一步加深了对EDA的了解,让我对它有了浓厚的兴趣。但是在调试程序时,遇到了不少问题,编译下载程序时,总是有错误,在细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了,心里终于舒了一口气。
ou 3
第四篇:EDA实验报告
EDA
实验报告
姓名:汤灿亮 学号:2012118060 班级:1211自动化
实验一 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、打开输入文件编辑器
点击菜单Filenew„选择Verilog HDL file建立一个文本设计文件。用文本输入法输入程序。
2、保存文件,文件名同程序的模块名。后缀.v
(四)、全编译(逻辑综合)
1、创建工程
点击菜单FileNew Project Wizard…….进行工程设置。完成工程文件夹的选定、工程名、顶层设计文件名(主程序)、编程器件的选择等工程设置。
2、编译前的相关设置设置
⑴选择PLD芯片:AssignmenmtsSettingsDevice弹出的窗口中选择选择芯片。
⑵选择配置芯片的工作方式AssignmenmtsSettingsDeviceDevice&Pin Options弹出的窗口中首选General项,在Options栏中选择Auto-restart-configuration after error.⑶选择配置芯片和编程方式:AssignmenmtsSettingsDeviceDevice&Pin Options弹出的窗口中选择Configuration栏,在窗口中设置配置方式,配置芯片和是否需要生成压缩的配置文件。
⑷选择输出设置:(1)-(4)项默认方式,可以不做任何操作,⑸选择目标器件闲置引脚的状态:AssignmenmtsSettingsDeviceDevice&Pin Options弹出的窗口中选择Unused Pins栏,在窗口中对闲置的引脚设置,推荐设置为As input tri-stated。
3、执行全程编译:ProcessingStart Compilation。完成对设计项目的检 错、逻辑综合、结构综合、配置文件生成以及时序分析。
(五)、功能仿真(或时序仿真)
建议先做功能仿真,以检验设计项目的逻辑真确性,这样可以提高设计效率。
1、功能仿真设置:AssignmenmtsSettings弹出的窗口中选择Simulator Settings。在右边Simulation mode中选择 Functional.2、ProcessingGenerate Functional Simulation netlist,生成功能仿真所需的文件。
3、建立波形文件并进行功能仿真
⑴FileNew,在窗口中选择Vector Waveform file打开向量波形文件编辑器。
⑵设置仿真时间区域:可默认。一般几十微妙。时间区域过长,使仿真时间变长,影响仿真效率。
⑶在向量波形文件编辑器中添加项目的相关引脚。原则上是所有引脚,但有的项目引脚很多,可以只添加必要的一些引脚。双击向量波形文件编辑器Name栏的空白区域后,会弹出一个“Insert Node or Bus”对话框,在弹出的对话框中选择“Node Finder„”按钮,则弹出“Node Finder„”对话框,选择Filter:Pins:all,然后点击List,Nodes Found栏将列出所有输入、输出端口。选择要观察的信号,点击“>”命令按钮加入到观察目标窗口中。选择OK,则在波形图中加入了待观察信号的图形。
或者执行ViewUtility WindowsNode Finder命令打开Node Finder窗口,在弹出的窗口中将所需引脚拖入波形编辑器中。
⑷编辑输入波形:对所有的输入引脚设置合适的波形。⑸启动仿真器:ProcessingStart Simulation.⑹观察分析仿真结果。仿真结果保存于文件“Simulation Report”,此文件在仿真完成后会自动弹出。若仿真结果有出入,重新修改程序,直到仿真结果没有问题。
(六)、下载验证:
1、芯片选择ACEX1KEP1K30QC208-2;
2、引脚锁定:
3、全编译;
4、下载线连接:将25针连下一端连接电脑LPT1口,一端连接到编程模块的DB25接口,再用十针连线一头插入通用编程模块JTGA下载接口处,另一头连接到目标芯片的下载接口。
5、打开实验箱电源,将模式选择开关CTRL的(2)(4)(8)拨至ON,使按键KD1,KD2,LED1,LED2,LED3,LED4,LED5等有效。
6、下载:ToolsProgrammer,完成下载。
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 II软件是英文版的,一下基本功能在第一次中还是不够熟悉,通过问老师同学,慢慢的了解到QUARTUS Ⅱ软件的基本使用方法,以及从编写程序到下载到实验箱验证运行的基本流程,实验二用原理图输入法设计2位频率计
一、实验目的:
1.熟悉和掌握用QUARTUS Ⅱ的原理图输入方法设计简单数字系统的方法,并通过一个2位频率计的设计掌握用EDA软件进行数字系统设计的详细流程。2.掌握用EDA技术的层次化设计方法; 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。
五、心得体会
这次实验中,按照书上面的接线图,完成基本的接线,然后在电脑上面设计原理图,进行实验的测试,掌握用EDA技术的层次化设计方法,在实验中也出现过点失误,软件运行出错,经过检查,发现软件没有破解,在实验中还是要注意小细节。
实验三简易正弦波信号发生器设计
一、实验目的:
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 是参数可设置模块库Library of Parameterized Modules 的英语缩写,Altera 提供的可参数化宏功能模块和LPM 函数均基于Altera 器件的结构做了优化设计。在许多实用情况中,必须使用宏功能模块才可以使用一些Altera 特定器件的硬件功能。例如各类片上存储器、DSP 模块、LVDS 驱动器、嵌入式PLL 以及SERDES 和DDIO 电路模块等等。这些可以以图形或硬件描述语言模块形式方便调用的宏功能块,使得基于EDA 技术的电子设计的效率和可靠性有了很大的提高LPM可实现基于LPM的流水线的累加器的设计,逻辑数据采样电路设计,简易正弦信号发生器的设计
实验四用状态机实现序列检测器的设计
一、实验目的
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,查看状态转换表。
四、心得体会
通过本次实验掌握了如何用Verilog HDL语言实现状态机的原理,运用状态机实现序列检测器的设计,进一步掌握了课堂上所学到的知识,但同时充分的感觉到了自己的不足之处,今后一定要加强自己弱势方面的学习,用心学好EDA教科书上的知识,并抽时间在课外进行深入地学习,相信下次试验情况会有很大程度的改观
第五篇:EDA实验报告
XX大学
UNIVERSITY 《EDA技术》实验报告
学
院:电子与信息工程学院
专
业:电子信息科学与技术
姓
名:
XXX
班
级:
XXX
学
号:
XXXXXXXXX
指导老师:
XXX
这是模板,仅供参考,做实验报告的步骤都有,大家最好自己操练下,里面只有三个实验的例子
MAX+plus 实验名称:设计作业(实验一)四选一多路选择器
一、实验目的:熟悉MAX+plus软件的操作及应用
二、实验步骤
1建立存储工程的文件夹,如下:
2.打开MAX+plusii软件
3.建立工程
4.新建文本文件并以VHD格式保存(注意保存的名称要和代码中实体的名称一致如mux41.vhd)
5.敲入mux21代码使其生成四选一芯片
5.1点击MAX+puls II/Compiler进行编译
5.2点击File/Edit Symbol即可对生成的四选一芯片进行编辑
6.建立电路图文件并保存(注意保存的名字不能与文本名字一致)
然后在空白处点击右键再点击Enter symbol,双击刚刚建立的芯片即可
接下来就构建原理图了
进行编译后,如果要下载到开发板上的话还要选择引脚
点击此处拖到芯片的引脚即可
7.建立波形图并保存
点击Node/Enter Nodes From...这样在波形图中就把电路图的输入输出引脚全部调进来了 在里面选择各个输入引脚的的信号就行了
经过编译后再仿真(点击MAX +plus/simulator)就可得到输出的波形了 MAX+plus 设计作业(实验二)实验名称:全加器的制作
一、实验目的:熟练掌握MAX+plus软件的操作
二、实验步骤
1.组成部件半加器源代码 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity H_addr is port(a,b :in std_logic;co,so:out std_logic);end H_addr;architecture a of H_addr is begin so <= a XOR b;co <= a and b;end a;2 全加器电路原理图如下图一所示:
图一时序仿真图形
MAX+plus 设计作业(实验三)实验名称:矩阵键盘的制作
一、实验目的:熟悉MAX+plus软件的操作及应用
二、实验步骤 Scanselect.vhd文件的设计
library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity scanselect is port(clk:in std_logic;
res:in std_logic;in1,in2,in3,in4,in5,in6:in std_logic_vector(3 downto 0);sel:out std_logic_vector(2 downto 0);daout:out std_logic_vector(3 downto 0));end scanselect;architecture behave of scanselect is begin PROCESS(clk)VARIABLE cnt:std_logic_vector(2 downto 0);BEGIN IF(clk'event AND CLK='1')THEN
if res='0'then
cnt:=“000”;
else IF cnt=“101” THEN cnt:=“000”;ELSE cnt:=cnt+1;END IF;END IF;if cnt=“000” then daout(0)<=in1(0);daout(1)<=in1(1);daout(2)<=in1(2);daout(3)<=in1(3);elsif cnt=“001” then daout(0)<=in2(0);daout(1)<=in2(1);daout(2)<=in2(2);daout(3)<=in2(3);elsif cnt=“010” then daout(0)<=in3(0);daout(1)<=in3(1);daout(2)<=in3(2);daout(3)<=in3(3);elsif cnt=“011” then daout(0)<=in4(0);daout(1)<=in4(1);daout(2)<=in4(2);daout(3)<=in4(3);elsif cnt=“100” then daout(0)<=in5(0);daout(1)<=in5(1);daout(2)<=in5(2);daout(3)<=in5(3);elsif cnt=“101” then daout(0)<=in6(0);daout(1)<=in6(1);daout(2)<=in6(2);daout(3)<=in6(3);end if;end if;sel<=cnt;end process;end behave;
2.生成的图形
2.电路图层的设计