简化EDAVHDL实验教程1.docx
- 文档编号:10986305
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:53
- 大小:2.86MB
简化EDAVHDL实验教程1.docx
《简化EDAVHDL实验教程1.docx》由会员分享,可在线阅读,更多相关《简化EDAVHDL实验教程1.docx(53页珍藏版)》请在冰豆网上搜索。
简化EDAVHDL实验教程1
EDA(VHDL&FPGA)
实验指导教程
编者林海波
长春工程学院电子信息教研室
前言
本实验指导教程是EDA(VHDL&FPGA)上机实验指导教材,上机实验前,学生应依照教师指定的实验项目,认真预习实验内容,提前确定实验方案、初步设计实验项目的逻辑电路图或编写、设计VHDL程序,编制VHDL程序清单。
上机实验是一个验证和调试过程,只有充分的预习才能最大的发挥学习效果。
学生在实验教学中要认真依据要求完成每个实验项目,并按照要求详细撰写本书中指定实验项目的实验报告。
教师批阅后,将报告发回。
学生所获得的成绩将作为平时上机实验成绩的一部分,记入期末的考核成绩。
在期末必须上交全部实验报告,并装订存档,不及时交回者,实验成绩记为零分。
本实验指导教程可以作为《VHDL与数字系统设计》课程的实验指导书使用,也可以作为《EDA(VHDL)课程设计》的参考书使用。
《VHDL与数字系统设计》课程组
2009年5月
第一章MAX+PLUSⅡEDA软件操作
第一节逻辑设计的输入方法
逻辑设计的输入方法有图形输入、文本输入等。
输入方法不同,生成的文件格式也有所不同。
我们分别以图形输入法和文本输入法介绍MAX+plusII软件的使用方法。
1.1图形设计输入法
我们将用一简单的实例介绍该输入法。
启动MAX+plusII,该管理器窗口被打开。
1.项目的建立
用户的每个独立设计都对应一个项目,每个项目可包含一个或多个设计文件,其中有一个是顶层文件,顶层文件的名字必须与项目名相同。
编译器时对项目中的顶层文件进行编译,所以必须确定一个文件作为当前项目。
对于每个新的项目应该建立一个单独的子目录,当指定项目名称时,也就同时指定了保存该设计项目的子目录名。
建立项目名称的步骤如下:
1.在File菜单中选择Project的Name项(图1.1),将出现图1.2对画框。
图1.1
改变盘符,如:
E:
\mydesign\graph
键入项目名
如:
cntm12
改变路径
图1.2
2.在ProjectName框内,键入设计项目名(注意:
一定是英文名)和所选的路径,单击OK。
这时,MAX+plusII的标题条将显示新项目名字。
2.建立新的图形文件
在File菜单下选择“NEW”,出现图1.3所示的对话窗:
建立文本输入文件,如VHDL,VerilogHDL文件
可编辑用户生成的符号文件
选择该项可建立一个图形输入文件
可建立波形输入模拟文件
图1.3新建文件类型对话框
在图1.3中选择“GraphicEditorfile”后,选择“OK”后出现图1.4即可开始建立图形输入文件,图中标明了每个按钮的功能。
如果需要,通过单击图形编辑器标题条中的放大按钮可使图形编辑器窗口放置最大。
选择工具
文本编辑工具
正交线工具
图形编辑区
画直线、对角线
弧形工具
打开橡皮筋连接功能
与窗口适配,缩小到最小,即窗口大小
放大、缩小
圆形工具
连接点断开
关闭橡皮筋连接功能
图1.4
以四位计数器为例建立图形文件
调入一个元件。
调入74163元件。
在图形编辑区双击鼠标左键可打开“Entersymbol”对话框,如图1.5。
在对话框内你可选择需要输入的元件/逻辑符号。
指定您将输入文件中的符号名称
双击一个符号库,在SymbolFiles对话框中将出现它的所有符号
显示当前路径下的所有符号
图1.5
单击“OK”,此时在图形编辑器窗口出现了74163元件,如图1.6所示。
图1.6
从“File”菜单下选择“Save”,出现文件保存对话框,选择“OK”,使用默认的文件名存盘。
此处默认的文件名为“ygc.gdf”,及项目名“ygc”加上图形文件的扩展名“.gdf”。
放入输入和输出引脚,方法与放置图元件相似,即图31“SymbolNam框中键入INPUT或OUTPUT,然后选择OK,INPUT或OUTPUT符号就会显示在图形编辑窗中。
如果要重复放置同一符号,可用复制符号的方法,这样可以提高图形输入的速度,具体方法是将鼠标放在要复制的符号上,按下Ctrl健和鼠标左健不放,同时拖拽鼠标,并把它放在指定位置,这样就可以复制符号了。
此例中共放置3个INPUT和5个OUTPUT。
输入引脚
输出引脚
在本例中,三个输入引脚分别被命名为en、clear和clk,分别作为计数使能、清零和时钟输入。
五个输出引脚分别被命名为s0、s1、s2、s3和cout,分别作为计数器计数输出和进位输出。
用同样的方法,调用一个三输入与非门(nand3)、gnd、vcc等(位于库prim中)。
这些元件也可在符号输入对话框直接输入名字(如nand3,gnd)获得,单击“OK”即可。
xor代表异或门。
MAX+plusII提供了大量的库文件,每个库对应一个目录。
这些库根据其功能大小及特点可分为:
库名
内容
用户库
放有用户自建的元器件,即一些底层设计
Prim(基本库)
基本的逻辑快器件,如各种门、触发器等
Mf(宏功能库)
包括所有74系列逻辑元件,如74163,74161等
Mega-lpm(可调用参数库)
包括参数化模块,功能复杂的高级功能模块,如可调模值的计数器,FIFO,RAM等。
edif
和mf库类似
为引脚和引线命名
(1)为引脚命名的方法是:
在引脚的PIN-NAME处双击鼠标左键,然后输入指定的名字即可。
(2)引线命名的方法是:
选中需命名的引线,然后输入名字。
对于n为宽的总线A命名,可以采用A[n-1..0]形式,其中单个信号可用A0,A1,A2,……,An形式。
连线
如果需要连接两个端口,则将鼠标移到其中一个端口上,这是鼠标指示符自动变为“+”形状,然后可按下属步骤操作:
(1)一直按住鼠标左键并将其拖至第二个端口;
(2)放开左键,则一条连线被画好了;
(3)如果需要删除一根连接线,可单击这根连接线使其呈高亮线(为红色),用手按DEL键即可删除。
在图形编辑框中的Option菜单中列出了编辑图形时的一些选项(如图1.7所示),包括文本的字型和大小控制、线型、显示任务、网络控制等,设计人员可以根据需要进行选择。
图1.7图形编辑选项
将元件端口连接好,可得图1.8,并存盘。
图1.8模为12的计数器电路图
保存文件,检查基本错误
(1)在设计过程中,如需保存新文件或重新命名文件名,则选择File菜单中的SaveAs项,出现SaveAs对话框,如图1.9所示。
在FileName对话框内输入设计文件名,然后选择OK即可保存文件。
显示当前文件类型的缺省扩展名,您可从下拉列表中选择不同的扩展名
指定具体的设计文件名
图1.9SaveAs对话框
(2)若是为了保证输入逻辑的正确性,可将此逻辑对应的文件保存起来,并检查一些有关错误。
其具体操作步骤如下:
●在File工具栏中选择save&Check命令,该文件即将保存起来,同时MAX+plusII编辑器窗口打开。
编辑器网表提取器模块检查该文件的错误,更新层次结构的现实,同时给出错误和警告数目的信息。
●如果Save&Check命令执行成功,无错误和警告数目的信息,就选择OK。
●单击DocumentControl(文件控制)菜单框,关闭此编译器窗口并返回到图形编辑器。
如果编辑器发出了错误或警告信息,而信息处理器没有自动予以显示,这是可以从MAX+plusII菜单中选择MessageProcessor来打开信息处理窗口。
在信息处理器窗口中选择一条信息并定位以找到信息产生的地方,也可以选择HelponMessage(信息帮助)功能得到有关的解释,这样就可以定位设计文件中的错误并加以改正。
3.设计项目的编译
MAX+plusII编译器可以加查项目中的错误并进行逻辑综合,将项目最终设计结果加载到器件中去,并为模拟和编程产生输出文件。
MAX+plusII编译器既能接受多种输入文件格式,又能输出多种文件格式。
首先,它能接受的设计文件包括MAX+plusII自己的图形文件(.gdf)、AHDL文件(.tdf)、VHDL文件(.vhd);它还能接受第三方EDA工具输入文件,如EDIF文件(.Edf)、库映射文件(.lmf)OrCAD文件(.sch)及Xilinx文件(.xnf);最后,它还能接受赋值和配置文件(.acf)、第三方EDA工具所用的网表文件(.vo)和标准格式的SDF文件(.sdo),另外还可输出可编程文件,包括用于编程器的目标文件(.pof)、用于在先配置的SRAM目标文件(.sof)和JEDEC文件(.jed)。
下面介绍编译过程:
(1)打开编译器窗口
在MAX+plusII菜单中选择Compiler菜单项,则出现编译器窗口,如图1.10所示:
完成情况状态条
图1.10编译器
模块盒
在编译项目中时,沙漏将不停地反动
编译器各部分名称与功能如下:
CompilerNetlistExtractor:
编译器网表提取器,该过程完成后生成设计的网表文件,如图形连接中有错误(如两个输出直接短接),该过程将指出此类错误。
DatabaseBuilder:
数据建库器
LogicSynthesizer:
逻辑综合器对设计进行逻辑综合,即选择合适的逻辑化简算法,去除冗余逻辑,确保对某种特定的器件结构尽可能有效的使用器件的逻辑资源,还可去除设计中无用的逻辑。
用户可通过修改逻辑综合的一些选项,来指导逻辑综合。
Fitter:
适配器。
它通过一定的算法进行布局布线将通过逻辑综合的设计最恰当地用一个或多个器件来实现。
TimingSNFExtractor:
时序模拟的模拟器网表文件生成器,它可生成用于时序模拟的标准试验文件。
Assembler:
适配器,生成用于器件下载/配置的文件。
(2)编译器的选项设置
在对项目进行编译时,需要为项目指定一个器件系列,然后,设计人员可以自己选择某个具体器件,也可以让编译器在该器件系列内自动选择最合适该项目的器件。
确定器件系列的步骤如下:
1)Assign菜单中选择Device项,将出现Device对话框图1.11。
4)按下OK按钮
图1.11
3)选择某一器件或选择AUTO让MAX+plusII为您选择一个器件,选择器件时,将对话框下面ShowOnlyFastestSpeedGrades前面的对号去掉。
2)编译器对话框内,单击Start按钮,就开始对所要编译的项目进行编译了。
在编译器编译期间,所有信息将会在自动打开的信息处理窗中显示出来。
如果有错误发生,双击该错误信息,就会找到该错误在设计文件中的位置。
当编译器的Partition和Fiter模块处理此项目时,Stop/ShowStatus按钮,选择此按钮,parition/FitlerStatus对话框就会显示出来。
对话框中列出项目中的所有芯片以及当前它们进行适配的状态,如图1.12所示:
按此按钮继续编译
图1.12划分/适配状态对话框
当编译结束后,那些有编译器产生的代表输出文件的图表将会出现在各模块框的下面,可以通过双击适当的文件图表来打开这些输出文件。
(3)引脚锁定
在前面的图形编辑窗口中,仅仅对输入输出引脚做了名称定义,但没有对输入/输出引脚规定具体的引脚号码,规定引脚号码称为引脚锁定。
首先,从“MAX+plusII”菜单下选择“FlooplanEditor”,也可双击
,则平面布置图编辑器被打开,如图1.13:
显示没有被锁定管脚的输入输出信号及内部节电
视图区:
显示管脚锁定的情况
图1.13平面布置图编辑器窗口
控制在显示区显示
编译器编译结果
你所打开的窗口可能与此不同,使下面的窗口,可通过在菜单“Layout”中选中“DeviceView”改变为显示管脚锁定情况图。
将clk信号锁定在EPF10K10LC84-4的引脚上,现将鼠标移到节点显示区clk左边的
上,按下鼠标左键,可看到鼠标显示符有一个矩形框,拖动矩形框指示图区中1号管脚的空白矩形框处,松开左键即可完成信号clk的管脚锁定。
见如下示意图:
未锁定前锁定好clk信号后
图1.14
拖动clk矩形框至此处,松开左健
按上述方法分别将其他信号按一下锁定管脚:
信号名
管脚号
对应器件名称(DXT-B型试验板)
clk
1
时钟信号
Clear
28
开关K1
En
29
开关K2
S0
60
发光二极管L2
S1
61
发光二极管L3
S2
62
发光二极管L4
S3
64
发光二极管L5
Cout
65
发光二极管L6
完成所有管脚锁定后,关闭平面布置图编辑器窗口(图1.14),按
保存文件,然后重新编译使之生效,此时,原来设计的项目文件(ygc.gdf)上的输入输出信号旁都标有其对应的管脚号。
如图1.15所示:
文件名和对应锁定的管脚号
图1.15锁定管脚编译后的设计文件
简要介绍一下另一种管脚锁定方法:
在下拉菜单中,选择Assign—Pin/location/Chip项,出现如下对话框,如图1.16所示:
1)输入管脚名
3)选择引脚的信号方式
4)单击此按钮
2)选中pin,键入要写入的引脚号码
图1.16引脚锁定
至此,已成功完成了管脚锁定工作。
4.设计项目的模拟仿真
一个项目设计输入、编译完成后不一定完全符合设计要求,因为设计输入和编译仅仅是整个设计过程的一部分。
成功的编译只能保证为项目创建一个编程文件,而不能保证该项目将按照所期望的那样运行。
设计人员可以通过模拟一个项目来证明它的功能是否正确。
模拟允许把项目在编程到器件之前全面检测,以确保它在各种可能的条件下能有正确的响应。
在模拟过程中,需要给MAX+plusII模拟器提供输入变量,模拟器将利用这些输入信号来产生输出信号。
通过分析这些输出信号,可以判断项目设计的正确性。
根据所需的信息种类,设计人员可用MAX+plusII进行功能或时序模拟。
功能模拟仅是测试项目的逻辑功能,而时序模拟不仅此时逻辑功能,还测试目标器件最差情况下的时间关系。
创建模拟文件和功能模拟的方法如下:
1)File菜单中选择New,然后选择WaveformEditorFile,从下拉列表框中选中.scf扩展名,并可建立一个新的无标题文件,如图1.17和图1.18所示:
图1.17
图1.18波形编辑器窗口
2)从File菜单中选择EndTime….,键入1us,按OK键,则设置了模拟结束和时间,如图1.19。
图1.19设计结束时间
3)在Option菜单中选择GridSize…,键入40ns,按OK,则网格间距变成了40ns。
如图1.20所示。
图1.20设置GridSize对话框
4)在波形编辑器窗口的name下单击鼠标右键,出现浮动菜单,如下图:
单击此处,可打开“从SNF文件输入观测点对话框”可输入待测信号。
选择EnterNodesfromSNF…,可打开图1.21对话框,
图1.21从SNF文件输入观测节点对话框
在图1.21中的Type区选择“Input”和“Output”,默认情况下已选中。
单击List按钮,可在“AvailableNodes&Groups”区看到我们设计中的输入/输出信号,如图1.22,这些信号为蓝色高亮,表明被选中。
图1.22
单击此处,可将这些信号选择到右边区域中,表示可对这些信号进行观测。
图1.23输入被观测点后的对话框
单击图1.23中的OK,关闭此对话框。
可看到图1.18波形编辑器窗口变为图1.24所示。
图1.24
从菜单File中选择save,出现图1.25对话框,单击OK,将此波形文件保存为默认名:
“ygc.scf”,扩展名scf表示模拟通道文件。
模拟通道文件
图1.25
5)在开始时序模拟之前,先介绍一下波形图绘制用工具条说明,如图1.26所示。
输入或编辑文字
选中某段波形,并直接赋值。
对某段已选中的波形,
赋值0—低电平
赋值1—高电平
赋值X,不定值
赋值Z,高阻
赋相反值
图5.1
为时钟信号赋值
为有规律的单个信号或总线赋值
为某段总线赋值
为状态机赋值
图1.26
以给信号clk赋周期为80ns的时钟信号为例说明给信号赋值的方法,如下:
用鼠标选中clk信号,此信号条变黑,表明选中。
用鼠标左键单击工具条中
,出现下面对话框:
此值若为2,则时钟周期为80ns×2
若选择“网格对齐”,则此值不变
单击OK关闭此框即可生成所需时钟。
为观察清零的作用,我们在200ns至400ns之间赋0(因为该信号低电平有效),方法是:
将鼠标移到clear信号的200ns除按下鼠标左键并向右拖鼠标至400ns处,松开鼠标左键。
可看到这段区域城黑色,表明被选中。
然后单击
即可。
最后别忘了存盘。
到此完成了波形输入,可得图1.27。
图1.27建好的输入波形图
6)运行模拟器,进行时序仿真。
在MAX+plusII菜单中,选择Simulator,出现图1.28所示的开始框。
改变模拟的起止时间
进行两次结果对比
图1.28模拟器运行环境
单击Start即可开始模拟,模拟完毕后,单击OpenScf可打开刚才编辑的波形文件,如图1.29。
图1.29模拟结果
为观看方便,可将计数输出s0、s1、s2、s3作为一组来观测。
将鼠标移到Name区的s3上,按下鼠标左键并往下拖动鼠标至s0处,松开鼠标左键,可选中信号s3、s2、s1、s0;在选区中(黑色)上单击鼠标右键,打开一个浮动菜单,如图1.30,
单击此处,出现图5.6所示的对话框
图1.30
组名输入区
是否以格雷码显示
进制选择
图1.31
选择OK关闭此对话框,可得下面波形文件,如图1.32所示。
图1.32模拟结果(以组方式显示)
5.定时分析
1)定时分析器,可用来分析设计项目的性能。
定时分析器提供了三种分析模式,如下表所示:
分析模式
说明
延时矩阵
分析多个源节点和目标节点之间的传播延时路径
时序逻辑电路性能
分析时序逻辑电路的性能,包括限制性能的延时,最下的时钟周期和最高的电路工作频率
建立/保持矩阵
计算从输入引脚到触发器、锁存器和异步RAM的信号输入所需的最少的建立和保持时间
在MAX+PLUSⅡ菜单中选择TimingAnalyzer项,即可打开定时分析器窗口。
2)传播延时分析。
单击
,立即打开DelayMatrix项,然后选择start,则定使分析器开始对项目进行分析并计算项目中每对连接的节点之间的最大和最小传播延时,如图1.33所示。
从clk上升沿到q0的延时为9.4ns
图1.33传播延时分析
3)时序逻辑电路性能分析
从工具条中单击
,即打开时序逻辑电路性能分析窗口,如图1.34所示。
显示被分析的时钟信号名称
显示制约性能的目标节点的名称
显示在给定时钟下,时序逻辑电路要求的最小时钟周期
显示给定的时钟信号的最高频率
开始进行时序逻辑性能分析
打开信息处理窗口并显示延时路径
图1.34时序逻辑电路性能分析
4)建立和保持时间分析
在Analysis菜单中选择Set/HoldMatrix项,然后选择Start即可进行建立和保持时间分析,如图1.35所示。
图1.35
6.器件编程/配置(通过JTAG实现在系统编程)
项目通过模拟仿真,确定无误后,通过项目编译后生成文件.sof用于下载。
首先确认编程器硬件已装好,然后在MAX+PLUSⅡ菜单中选择Programmer项,编程器窗口被打开,如图1.36
将一个编程文件中的数据编程到一个MAX或EPROM器件中
为当前编程文件打开保密位选项
显示项目的编程文件
检查器件中的内容是否与当前编程内容相同
显示项目中所有Altera器件的名称
检查确认器件是否为空
将配置数据下载到一个FLEX器件中
图
1.36编辑器窗口
将ByteBlaster电缆的一端与微机的并口相连,另一端10针印记与下载板上的阳极头插座相连,单击按钮Configure即可完成配置。
到目前为止,我们已完成了一个完整的设计。
注意:
ByteBlaster编程器驱动设置
MAX+plusII的编程器的功能是将电路设计文件转换后的输出文件,例如*.pof文件与*.sof文件,烧写至FLEX系列器件或下载至MAX系列器件,亦可用来检验与测试器件或转换烧写文件格式。
此功能必须配合硬件实验设备才能进行。
在器件编程时,首先应该安装软件狗和下载线,这时需要进行硬件设置。
(备注:
MAX+PLUSII在WIN2000/XP上的安装设置:
在Windows98上,MAX+PLUSII一旦安装完毕,经过设置即可使用下载功能。
在Windows2000上的安装,除了安装软件外,为使用ByteBlasterMV下载功能,还必须安装硬件驱动(dirver),以支持MAX+PLUSII对PC机并口的操作。
具体操作步骤如下:
(1)首先安装MAX+PLUSII
(2)选择(“开始”---“设置”---“控制面版”)
(3)双击“游戏选项”然后选择“添加”---“添加其它”---“从磁盘安装”命令,再单击“浏览”浏览驱动所在的目录:
MAX+PLUSII的安装目录\dirvers\win2000;
(4)选择“WIN2000.inf”,单击“确定”;
(5)在“数字签名未找到”对话框中,选择“是”;
(6)在“选择一个设备驱动程序”窗口中,选择“AlteraBytblaster”,并单击“下一步”;
(7)在接下去的“数字签名未找到”对话框中,仍选择“是”;
(8)安装完成,依提示,重新启动计算机。
在WINXP/WINNT操作环境下,若要使用下载(DOWNLOAD)功能,同样要安装驱动,安装方法可参考在WINDOWS2000上的安装方法进行,在此不再赘述。
)
1.2工具条和常用菜单选项说明
1.3文本设计输入法
文本设计输入方法主要实现以AHDL语言形式或以VHDL语言形式书写的文件,AHDL是AlteraHardwareDescriptionLanguage的缩写,它是一种高级的硬件行为描述语言,该语言可以使用布尔方程、算术运算、针织表、条件语句等方式进行行为描述。
VHDL是VHSICHardwareDescriptionLanguage的缩写,特使一种符合IEEE表针的高级硬件行为描述语言,特别适合于大型或复杂的设计。
这两种语言都是用文本进行设计的。
1)在File中选择ProjectName,并输入项目名称。
本例中输入cntm60v,单击OK。
2)在File中选择new,然后选择TextEditorFile,在选择OK,即打开无标题的TextEditor窗口。
3)在File中选择Saveas,然后在FileName框内键入
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简化 EDAVHDL 实验 教程