EDA实验指导书.docx
《EDA实验指导书.docx》由会员分享,可在线阅读,更多相关《EDA实验指导书.docx(23页珍藏版)》请在冰点文库上搜索。
![EDA实验指导书.docx](https://file1.bingdoc.com/fileroot1/2023-6/4/108a5f93-45c2-4677-95b9-56bac8fee3d6/108a5f93-45c2-4677-95b9-56bac8fee3d61.gif)
EDA实验指导书
EDA实验
湖北科技职业学院殷海波2008.9-12月
实验说明:
本实验分为七个实验,其中实验一至实验四为必做题,实验五、实验六和实验七为选作题。
必做题每个人都必须完成,选作题每人至少选择一个题目,如果选做题同时选择多个,可以根据实际完成情况,给予适当加分。
实验报告在考试当天交。
实验一:
基于原理图输入的数字系统设计
(学习和掌握QuartusII的设计流程)
一.实验目的
1.学习EDA集成工具软件QuartusII的使用;
2.学会基于PLD的EDA设计流程;
3.学会使用原理图设计数字电路;
4.学会对设计进行综合、仿真和设计下载。
二.实验内容
1.用原理图输入方式设计一个简单组合逻辑电路
;
2.分别用原理图和VHDL语言输入方式设计一个3-8译码器;
三.实验方法、步骤
1.新建一个工程(应用工程建立向导)。
2.新建一个原理图文件或者文本文件,并存档。
3.画出一个简单组合逻辑电路的原理框图或者用文本编辑器设计VHDL程序。
4.对设计的文件进行编译,改错,直至没有语法错误。
5.编辑测试激励波形。
执行时序仿真和功能仿真,记录仿真结果。
并对仿真结果进行分析,如果不满足设计要求,修改原有设计,直至满足要求。
6.选定目标器件(1C6),配置管脚,对设计进行综合。
7.下载设计,记录硬件验证结果(不做)。
8.记录实验过程中出现的问题及解决办法。
四.实验报告要求
1.简介Quartus的设计流程。
2.记录设计源程序和原理图。
3.记录仿真结果。
4.分析结果,验证正确性。
5.简答思考题。
五.思考题
1.简述Quartus的设计流程。
2.功能仿真与时序仿真有什么不同?
实验二:
组合逻辑电路设计
一.实验目的
1.熟练QuartusII的使用;
2.学会使用硬件描述语言(HDL)设计组合逻辑电路;
二.实验内容和要求
1.用VHDL语言设计一个四位二进制数据比较器。
说明:
设输入的两个四位二进制数为A,B,通过比较,如果A>B,输出“10”;如果A
三.实验方法、步骤
1.新建一个工程(应用工程建立向导)。
2.新建一个文本文件,并存档。
3.用文本编辑器输入一个VHDL源程序。
4.对设计的文件进行编译,改错,直至没有语法错误。
5.编辑测试激励波形。
执行时序仿真和功能仿真,记录仿真结果。
并对仿真结果进行分析,如果不满足设计要求,修改原有设计,直至满足要求。
6.选定目标器件,配置管脚,对设计进行综合。
7.下载设计,记录硬件验证结果(不做)。
8.记录实验过程中出现的问题及解决办法。
五.实验报告要求
1.对设计的一个简单分析。
2.记录设计源程序。
3.记录仿真结果。
4.分析结果,得出结论。
实验三:
时序逻辑电路设计
一.实验目的
1.熟练QuartusII的使用;
2.学会使用硬件描述语言(HDL)设计时序逻辑电路;
二.实验内容和要求
1.用VHDL语言输入方式设计一个可逆24进制计数器。
说明:
当Crtl=‘1’时,进行加法计数,同时输出进位脉冲;当Crtl=‘0’时,进行减法计数,同时输出借位脉冲。
三.实验方法、步骤
1.新建一个工程(应用工程建立向导)。
2.新建一个文本文件,并存档。
3.用文本编辑器输入一个VHDL源程序。
4.对设计的文件进行编译,改错,直至没有语法错误。
5.编辑测试激励波形。
执行时序仿真和功能仿真,记录仿真结果。
并对仿真结果进行分析,如果不满足设计要求,修改原有设计,直至满足要求。
6.选定目标器件,配置管脚,对设计进行综合。
7.下载设计,记录硬件验证结果(不做)。
8.记录实验过程中出现的问题及解决办法。
五.实验报告要求
1.对设计的一个简单分析。
2.记录设计源程序。
3.记录仿真结果。
4.分析结果,得出结论。
5.简答思考题。
六.思考题
1.在时序逻辑电路中,如何实现异步复位?
2.对设计进行时序分析,记录设计的最高工作频率并在最高工作频率下,执行时序仿真,观察时序仿真的结果,并分析仿真结果。
实验四:
状态机设计
一.实验目的
1.熟练QuartusII的使用;
2.学会使用状态机设计混合电路(时序和组合逻辑电路);
二.实验内容和要求
1.用状态机设计一个“10110010”序列检测器。
说明:
检测完毕后,输出一个“1”信号,其他输出“0”信号。
三.实验方法、步骤
1.新建一个工程(应用工程建立向导)。
2.新建一个文本文件,并存档。
3.用文本编辑器输入一个VHDL源程序。
4.对设计的文件进行编译,改错,直至没有语法错误。
5.编辑测试激励波形。
执行时序仿真和功能仿真,记录仿真结果。
并对仿真结果进行分析,如果不满足设计要求,修改原有设计,直至满足要求。
6.选定目标器件,配置管脚,对设计进行综合。
7.下载设计,记录硬件验证结果(不做)。
8.记录实验过程中出现的问题及解决办法。
五.实验报告要求
1.对设计的一个简单分析。
1.记录设计源程序。
2.记录仿真结果。
3.分析结果,得出结论。
实验五:
简易交通灯控制器设计(选作)
一.实验目的
1.熟练QuartusII的使用;
2.学会使用多种语句设计较复杂的时序逻辑;
二.实验内容和要求
1.设计一个只有两个方向的交通灯控制器。
具体说明如下:
本设计为简单的两个方向A、B的红绿灯控制(不带左转的控制(如图))。
A、B方向各设三种信号灯红、黄、绿,其中A、方向为主干道,B方向为支干道。
根据实际,假设初始状态为:
A(绿灯),B(红灯)。
依次变换顺序是:
A(绿灯,亮20s),B(红灯)——>A(黄灯,亮3秒),B(红灯)——>A(红灯),B(绿灯,亮12s)——>A(红灯),B(黄灯,亮3秒)——>A(绿灯,亮20s),B(红灯)。
具体变换情况如下表:
(0表示不亮,1表示亮。
)
表一红绿灯点亮真值表
A方向
B方向
绿灯
黄灯
红灯
绿灯
黄灯
红灯
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
三.实验方法、步骤
1.新建一个工程(应用工程建立向导)。
2.新建一个文本文件,并存档。
3.用文本编辑器输入一个VHDL源程序。
4.对设计的文件进行编译,改错,直至没有语法错误。
5.编辑测试激励波形。
执行时序仿真和功能仿真,记录仿真结果。
并对仿真结果进行分析,如果不满足设计要求,修改原有设计,直至满足要求。
6.选定目标器件,配置管脚,对设计进行综合。
7.下载设计,记录硬件验证结果(不做)。
8.记录实验过程中出现的问题及解决办法。
五.实验报告要求
1.对设计进行一个简单的分析,并划分功能模块。
1.记录设计源程序。
2.记录仿真结果。
3.分析结果,得出结论。
六.扩展(选用其中一种,或者自行设计方案)
1.用基本顺序语句实现该设计;
2.用状态机实现该设计。
实验六:
多功能数字钟电路设计(选作)
一.实验目的
1.熟练QuartusII的使用;
2.学会使用硬件描述语言(HDL)设计多功能数字钟电路;
二.实验内容和要求
1.用原理图和VHDL语言混合输入方式设计一个多功能数字钟电路。
2.要求及说明:
⏹1.能够实现1s加一计数;
⏹2.当前时间可以通过六位数码管动态显示;
⏹3.具有异步复位功能;
⏹4.具有暂停/启动计数功能;
⏹5.能够调节时间(包括时、分、秒的调整)
⏹6.能够实现整点报时。
框图如下:
⏹其中,CLK为全局时钟,通过对它进行分频,可以实现数码管动态扫描时钟clk_scan,整点报时时钟clk_sound1(500Hz),clk_sound2(1KHz),以及1s钟计数时钟clk_1Hz.
⏹复位信号RST,在低电平时,实现异步复位,复位后,小时、分钟、秒均被清零。
⏹时间调节部分,为6个按键,每按一个相应的按键,对应数据位加1。
⏹扬声器用于在XX:
59:
50,52,54,56,58时,输出一种声音信号(clk_sound1(500Hz)),在XX:
00:
00时,输出另外一种声音信号(clk_sound2(1KHz)),实现整点报时。
⏹八位数码管动态显示小时、分钟和秒,由时钟clk_scan提供扫描信号。
三.实验方法、步骤
1.新建一个工程(应用工程建立向导)。
2.新建一个文本文件,并存档。
3.用文本编辑器输入一个VHDL源程序。
4.对设计的文件进行编译,改错,直至没有语法错误。
5.编辑测试激励波形。
执行时序仿真和功能仿真,记录仿真结果。
并对仿真结果进行分析,如果不满足设计要求,修改原有设计,直至满足要求。
6.选定目标器件,配置管脚,对设计进行综合。
7.下载设计,记录硬件验证结果(不做)。
8.记录实验过程中出现的问题及解决办法。
五.实验报告要求
1.结合设计要求,有功能模块的划分。
1.记录设计源程序。
2.记录仿真结果。
3.分析结果,得出结论。
4.简答思考题。
六.思考题
1.为什么要用数码管动态显示?
六位数码管动态显示是如何实现的?
2.动态显示的扫描时钟一般取多大比较合适?
为什么太小或者太大都不合适?
实验七:
4*4行列式键盘扫描及显示电路设计(选作)
一.实验目的
1.熟练QuartusII的使用;
2.学会使用VHDL语言实现4*4键盘扫描电路;
二.实验内容和要求
1.用VHDL语言设计实现一个4*4键盘扫描电路,同时扫描的键值能通过数码管显示出来。
三.实验方法、步骤
1.新建一个工程(应用工程建立向导)。
2.新建一个文本文件,并存档。
3.用文本编辑器输入一个VHDL源程序。
4.对设计的文件进行编译,改错,直至没有语法错误。
5.编辑测试激励波形。
执行时序仿真和功能仿真,记录仿真结果。
并对仿真结果进行分析,如果不满足设计要求,修改原有设计,直至满足要求。
6.选定目标器件,配置管脚,对设计进行综合。
7.下载设计,记录硬件验证结果(不做)。
8.记录实验过程中出现的问题及解决办法。
五.实验报告要求
1.根据设计要求,进行简单的设计分析,并划分功能模块。
1.记录设计源程序。
2.记录仿真结果。
3.分析结果,得出结论。
4.回答思考题。
六.思考题
1.为什么在扫描到有键按下时要延时一段时间再重新判断是否有键按下?
2.按键扫描的时钟一般取多大比较合适?
为什么太大或太小都不合适?
附录一:
QuartusII的使用指南
一.基于QuartusII的设计过程
使用QuartusII软件进行设计和开发的流程如图1.1所示,主要包括以下几个步骤:
图1.1QuartusII开发流程
二.QuartusII设计输入
QuartusII的编译器能够接受多种输入文件格式,也能输出多种文件格式。
图1.2给出了各种方式输入时所产生的文件格式。
图1.2QuartusII的设计文件
三.建立一个新项目
QuartusII的编译器的工作对象是项目。
因此,编译项目前必须确定一个设计文件作为当前的项目。
需要注意的是项目名必须与顶层设计文件名一致。
具体建立步骤如图1.3所示。
图1.3项目的建立步骤
3.1、图形输入方式
用图形输入方式进行设计的一般流程为:
1、产生一个新的模块设计文件
--画出图表模块或输入设计单元符号
--输入接口和参数信息
--连接各个设计单元(利用单连线,总线等)
2、保存设计
--文件的后缀名为.bdf
3、顶层设计可以产生设计单元,头文件,或转化成Verilog/VHDL文件
具体步骤如图1.4所示
图1.4图形输入方式设计具体步骤
3.2、文本输入方式
QuartusII支持AHDL,VHDL及VerilogHDL等硬件描述语言。
采用进行文本设计的步骤如下:
(1)定项目并建立新文件;
(2)输入文本设计文件;
(3)将文本文件命名、保存;
(4)编译文件并检查、修改句法错误。
首先选择File/New,在对话框中选择DeviceDesignFile,新建一个VerilogHDLFile无标题文本窗口,然后输入文件名保存。
为了快速和准确地创建VerilogHDL文本文件,可以使用Verilog模板。
选择Edit/InsertTemplate/VerilogHDL,再选择ModuleDeclaration,点击OK按钮,这时就可以在对应的位置输入设计文件中的各项参数了,如图1.5所示。
利用模板输入,可以避免语法错误,提高输入效率。
图1.5利用模板进行文本编辑
四.QuartusII编译
QuartusII编译器是由一系列处理模块构成的,这些模块负责对设计项目的检错,逻辑综合和结构综合。
即将设计项目适配进FPGA/CPLD目标器中,同时产生多种用途的输出文件,如功能和时序仿真文件,器件编程的目标文件等。
编译类型有如下几种:
--只是综合并输出网表
·编译设计文件,综合产生门级代码
·编译器只运行到综合这步就停止了
·编译器只产生估算的延时数值
--完全的编译,包括编译,网表输出,综合,配置器件
·编译器除了完成以上的步骤,还要将设计配置到ALTERA的器件中去
·编译器根据器件特性产生真正的延时时间和给器件的配置文件
4.1指定器件
在编译项目前,需要为设计项目指定一种器件,否则编译器会自动选择一种器件。
选定器件的步骤如图1.6所示。
图1.6选择器件
4.2引脚锁定
选择菜单“Assignments“项中的”Assignpin..“,会出现如图1.7所示的对话框:
图1.7引脚锁定
4.3开始编译
设置完各种配置选项后,即可以开始编译设计项目。
如图1.8所示。
在编译过程中,所有信息、错误和告警将会在自动打开的信息处理窗口中显示出来。
如图1.9所示。
图1.8编译界面
图1.9编译产生的信息
4.4编译报告
4.5延时分析
五.QuartusII仿真
仿真就是对设计项目进行一项全面彻底的测试,以确保设计项目的功能和时序特性,以及最后的硬件器件的功能与原设计相吻合。
仿真包括功能仿真和时序仿真。
功能仿真又称为前仿真,是在不考虑器件延时的理想情况下进行的逻辑验证。
通过功能仿真可以验证一个项目的逻辑功能是否正确。
时序仿真又称为后仿真,是在考虑了具体适配器件的各种延时的情况下进行的仿真。
时序仿真不仅能测试逻辑功能,还能测试目标器件在最差情况下的时间关系。
打开Assignments/settings/Simulator,可以选择Timing或Function仿真。
在仿真时需要向QuartusII仿真器提供输入激励向量,QuartusII支持多种仿真方法:
--波形方式输入
·.vwf(向量波形文件)-是QuartusII中最主要的波形文件
·.vec(向量文件)-是MAX+PLUSII中的文件,主要是为了向下兼容
·.tbl(列表文件)-用来将MAX+PLUSII中的.scf文件输入到QuartusII中。
--支持Testbench
·Tcl/TK脚本文件
--第三方的仿真工具
·Verilog/VHDLTestbench
现具体介绍常用的波形方式输入:
1、建立波形文件。
为此设计建立一个波形测试文件。
选择菜单“File”项及其“New”,再选择New窗中的Vectorwaveformfile项,打开波形编辑窗。
2、输入信号。
选择菜单“Edit”项的”Insertnode..“选项,选择要输入信号的节点。
并为输入信号设定必要的测试电平或数据,如图1.10所示。
图1.10设定必要的测试电平或数据
3、开始仿真。
波形文件存盘后,便可以运行仿真器,得出输出仿真波形
六.QuartusII编程下载
对于EEPROM工艺的器件,一般将.pof编程文件下载到器件中;而对于SDRM工艺的器件,则一般将.sof编程文件下载到器件中。
编程下载和硬件测试的步骤如下:
1、打开下载窗口。
选择菜单“Tool“项的”programmer“,便可打开下载窗口。
2、设置下载电缆。
将ByteBlaster电缆的一端与微机的并行口相连,另一端10针插头与装有目标器件的PCB板上的插座相连。
并在”HardwareSetup”中设置下载电缆,如图1.11所示。
图1.11设置下载电缆
3、设置JTAG链。
Altera器件基本都支持JTAG在系统编程方式,这种方式简单易行,不需要专门的编程器。
具体设置如图1.12所示。
图1.12设置JTAG链
4、开始下载。
加入编程设计文件后,便可以点击”start”开始下载,如图1.13所示。
图1.13开始下载