可编程技术实验讲义.docx

上传人:b****8 文档编号:30673533 上传时间:2023-08-19 格式:DOCX 页数:44 大小:470.32KB
下载 相关 举报
可编程技术实验讲义.docx_第1页
第1页 / 共44页
可编程技术实验讲义.docx_第2页
第2页 / 共44页
可编程技术实验讲义.docx_第3页
第3页 / 共44页
可编程技术实验讲义.docx_第4页
第4页 / 共44页
可编程技术实验讲义.docx_第5页
第5页 / 共44页
点击查看更多>>
下载资源
资源描述

可编程技术实验讲义.docx

《可编程技术实验讲义.docx》由会员分享,可在线阅读,更多相关《可编程技术实验讲义.docx(44页珍藏版)》请在冰豆网上搜索。

可编程技术实验讲义.docx

可编程技术实验讲义

可编程技术实验讲义

实验一原理图输入方式实现可编程逻辑芯片的设计

一、实验目的

1、掌握MAX-plusII的应用方法;

2、掌握原理图编辑设计方法;

3、学会可编程逻辑万能开发器的使用。

二、实验仪器

可编程逻辑芯片万能开发器PC机max-plusII软件

三、实验原理

利用EDA工具进行原理图输入设计的优点是,设计者能利用原有的电路知识迅速入门,完成较大规模的电路系统设计,而不必具备许多诸如编程技术、硬件语言等新知识。

MAX+plusII提供了功能强大,直观便捷和操作灵活的原理图输入设计功能,同时还配备了适用于各种需要的元件库,其中包含基本逻辑元件库(如与非门、反向器、D触发器等)、宏功能元件(包含了几乎所有74系列的器件),以及功能强大,性能良好的类似于IPCore的巨功能块LPM库。

但更为重要的是,MAX+plusII还提供了原理图输入多层次设计功能,使得用户能设计更大规模的电路系统,以及使用方便精度良好的时序仿真器。

以传统的数字电路实验相比为例,MAX+plusII提供原理图输入设计功能具有显著的优势:

能进行任意层次的数字系统设计。

传统的数字电路实验只能完成单一层次的设计,

使得设计者无法了解和实现多层次的硬件数字系统设计;

对系统中的任一层次,或任一元件的功能能进行精确的时序仿真,精度达0.1ns,

因此能发现一切对系统可能产生不良影响的竞争冒险现象;

通过时序仿真,能对迅速定位电路系统的错误所在,并随时纠正;

能对设计方案作随时更改,并储存入档设计过程中所有的电路和测试文件;

通过编译和编程下载,能在FPGA或CPLD上对设计项目随时进行硬件测试验证。

如果使用FPGA和配置编程方式,将不会有如何器件损坏和损耗;

符合现代电子设计技术规范。

传统的数字电路实验利用手工连线的方法完成元件连接,容易对学习者产生误导,以为只要将元件间的引脚用引线按电路图连上即可,而不必顾及引线的长短、粗细、弯曲方式、可能产生的分布电感和电容效应以及电磁兼容性等等十分重要的问题。

以下将详细介绍原理图输入设计方法,但读者应该更多地关注设计流程,因为除了最初的图形编辑输入外,其它处理流程都与文本(如VHDL文件)输入设计完全一致。

四、实验内容(自选参考)

(一)1位全加器设计向导

1位全加器可以如图7-11那样用两个半加器及一个或门连接而成,因此需要首先完成如图7-10所示的半加器的设计。

以下将给出使用原理图输入的方法进行底层元件设计和层次化设计的完整步骤,其主要流程与数字系统设计的一般流程基本一致。

事实上,除了最初的输入方法稍有不同外,应用VHDL的文本输入设计方法的流程也基本与此相同。

1.1步骤1:

为本项设计建立文件夹

任何一项设计都是一项工程(Project),都必须首先为此工程建立一个放置与此工程相关的所有文件的文件夹,此文件夹将被EDA软件默认为工作库(WorkLibrary)。

一般不同的设计项目最好放在不同的文件夹中,注意,一个设计项目可以包含多个设计文件,如频率计。

图1-1进入Max+plusII,建立一个新的设计文件

图1-2元件输入选择窗

假设本项设计的文件夹取名为MY_PRJCT,在E盘中,路径为:

E:

\MY_PRJCT。

文件夹不能用中文。

1.2步骤2:

输入设计项目和存盘

1、打开Mux+plusII,选菜单FileNew(图1-1),在弹出的FileType窗中选原理图编辑输入项GraphiceditorFile,按OK后将打开原理图编辑窗。

2、在原理图编辑窗中的任何一个位置上点鼠标右键,将跳出一个选择窗,选择此窗中的输入元件项EnterSymbol,于是将跳出如图1-2所示的输入元件选择窗。

3、用鼠标双击文件库“SymbolLibraries”中的e:

\maxplu2\max2lib\prim项,在SymbolFiles窗中即可看到基本逻辑元件库prim中的所有元件,但也可以在SymbolName窗中用键盘直接输入所需元件名,在按OK键,即可将元件调入原理图编辑窗中。

如为了设计半加器,可参考图7-10,分别调入元件and2、not、xnor、input和output(图1-3)并连接好。

然后用鼠标分别在input和output的PIN-NAME上双击使其变黑色,再用键盘分别输入各引脚名:

a、b、co和so。

4、点击选项File“SaveAs”,选出刚才为自己的工程建立的目录E:

\MY_PRJCT,将已设计好的图文件取名为:

h_adder.gdf(注意后缀是.gdf),并存在此目录内。

图1-3将所需元件全部调入原理图编辑窗

注意,原理图的文件名可以用设计者认为合适的任何英文名(VHDL文本存盘名有特殊要求),如adder.gdf等。

还应注意,为了将文件存入自己的E:

\MY_PRJCT目录中,必须在如图1-4的Saveas窗中双击MY_PRJCT目录,使其打开,然后键入文件名,并按OK。

图1-4连接好原理图并存盘

图1-5将当前设计文件设置成工程文件

1.3步骤3:

将设计项目设置成工程文件(PROJECT)

为了使Max+plusII能对输入的设计项目按设计者的要求进行各项处理,必须将设计文件,如半加器h_adder.gdf,设置成Project。

如果设计项目由多个设计文件组成,则应该将它们的主文件,即顶层文件设置成Project。

如果要对其中某一底层文件进行单独编译、仿真和测试,也必须首先将其设置成Projcet。

图1-6选择最后实现本项设计的目标器件

将设计项目(如h_adder.gdf)设定为工程文件设置成Project有两个途径:

1、如图1-5,选择FileProjectSetProjecttoCurrentFile,即将当前设计文件设置成Project。

选择此项后可以看到图1-5所示的窗口左上角显示出所设文件的路径。

这点特别重要,此后的设计应该特别关注此路径的指向是否正确!

2、如果设计文件未打开,可如图1-5所示,选FileProjectName,然后在跳出的ProjectName窗中找到E:

\MY_PRJCT目录,在其File小窗中双击adder.gdf文件,此时即选定此文件为本次设计的工程文件(即顶层文件)了。

1.4步骤4:

选择目标器件并编译

图1-7对工程文件进行编译、综合和适配等操作

为了获得与目标器件对应的,精确的时序仿真文件,在对文件编译前必须选定最后实现本设计项目的目标器件,在Max+plusII环境中主要选Altera公司的FPGA或CPLD。

首先在Assign选项的下拉菜单中选择器件选择项Device,其窗口如图1-6所示。

此窗口的DeviceFamily是器件序列栏,应该首先在此拦中选定目标器件对应的序列名,如EPM7128S对应的是MAX7000S系列;EPF10K10对应的是FLEX10K系列等。

为了选择EPF10K10LC84-4器件,应将此栏下方标有ShowonlyFastestSpeedGrades的勾消去,以便显示出所有速度级别的器件。

完成器件选择后,按OK键。

最后启动编译器,首先选择左上角的MAX+plusII选项,在其下拉菜单中选择编译器项Compiler(图1-7),此编译器的功能包括网表文件提取、设计文件排错、逻辑综合、逻辑分配、适配(结构综合)、时序仿真文件提取和编程下载文件装配等。

点击Start,开始编译!

如果发现有错,排除错误后再次编译。

1.5步骤5:

时序仿真

接下来应该测试设计项目的正确性,即逻辑仿真,具体步骤如下:

1、建立波形文件。

按照以上“步骤2”,为此设计建立一个波形测试文件。

选择File项及其New,再选择图1-1右侧New窗中的WaveformEditer..项,打开波形编辑窗。

2、输入信号节点。

在图1-8所示的波形编辑窗的上方选择Node项,在下拉菜单中选择输入信号节点项NodesfromSNF。

在弹出的窗口(图1-9)中首先点击List键,这时左窗口将列出该项设计所以信号节点。

由于设计者有时只需要观察其中部分信号的波形,因此要利用中间的“=>”键将需要观察的信号选到右栏中,然后点击OK键即可。

图1-8从SNF文件中输入设计文件的信号节点

图1-9列出并选择需要观察的信号节点

图1-10在Options选项中消去网格对齐SnaptoGrid的选择(消去勾)

3、设置波形参量。

图1-10所示的波形编辑窗中已经调入了半加器的所有节点信号,在为编辑窗的半加器输入信号a和b设定必要的测试电平之前,首先设定相关的仿真参数。

如图1-10所示,在Options选项中消去网格对齐SnaptoGrid的选择(消去勾),以便能够任意设置输入电平位置,或设置输入时钟信号的周期。

4、如图1-11所示,设定仿真时间宽度。

选择File项及其Endtime选项,在Endtime选择窗中选择适当的仿真时间域,如可选34us(34微秒),以便有足够长的观察时间。

5、加上输入信号。

现在可以为输入信号a和b设定测试电平了。

如图1-12标出的那样,利用必要的功能键为a和b加上适当的电平,以便仿真后能测试so和co输出信号。

图1-11设定仿真时间宽度

图1-12为输入信号设定必要的测试电平或数据

图1-13仿真波形文件存盘图1-14运行仿真器

图1-15半加器h_adder.gdf的仿真波形

6、波形文件存盘。

选择File项及其Saveas选项,按OK键即可。

由于图1-13所示的存盘窗中的波形文件名是默认的(这里是h_adder.scf),所以直接存盘即可。

7、运行仿真器。

选择MAX+plusII项及其中的仿真器Simulator选项,点击跳出的仿真器窗口(图1-15)中的Start键。

图1-15是仿真运算完成后的时序波形。

注意,刚进入图1-15的窗口时,应该将最下方的滑标拖向最左侧,以便可观察到初始波形。

8、观察分析波形。

对照表7-1,图1-15显示的半加器的时序波形是正确的。

还可以进一步了解信号的延时情况。

图1-15右侧的竖线是测试参考线,它上方标出的991.ns是此线所在的位置,它与鼠标箭头间的时间差显示在窗口上方的Interval小窗中。

由图可见输入与输出波形间有一个小的延时量。

图1-16打开延时时序分析窗

图1-17半加器引脚锁定

为了精确测量半加器输入与输出波形间的延时量,可打开时序分析器,方法是选择左上角的MAX+plusII项及其中的TimingAnalyzer选项,点击跳出的分析器窗口(图1-16)中的Start键,延时信息即刻显示在图表中。

其中左排的列表是输入信号,上排列出输出信号,中间是对应的延时量,这个延时量是精确针对EPF10K10LC84-4器件的。

9、包装元件入库。

选择File项的“Open”选项,在“Open”窗中先点击原理图编辑文件项GraphicEditorFiles,选择h_adder.gdf,重新打开半加器设计文件,然后如图1-5选择File中的CreateDefaultSymbol项,此时即将当前文件变成了一个包装好的单一元件,并被放置在工程路径指定的目录中以备后用。

1.6步骤6:

引脚锁定

如果以上的仿真测试正确无误,就应该将设计编程下载进选定的目标器件中,如EPF10K10,作进一步的硬件测试,以便最终了解设计项目的正确性。

这就必须根据评估板、开发电路系统或EDA实验板的要求对设计项目输入输出引脚赋予确定的引脚,以便能够对其进行实测。

这里假设根据实际需要,要将半加器的4引脚a、b、co和so分别与目标器件EPF10K10的第5、6、17和18脚相接,操作如下:

1、选择Assign项及其中的引脚定位Pin\Location\Chip选项,在跳出的窗口(图1-17)中的NodeName栏中用键盘输入半加器的端口名,如a、b等。

如果输入的端口名正确,在右侧的PinType栏将显示该信号的属性。

图1-18设置编程下载方式

2、在左侧的Pin一栏中,用键盘输入该信号对应的引脚编号,如5、6、17等,然后按下面的Add键。

如图1-17所示分别将4个信号锁定在对应的引脚上,按OK键后结束。

3、特别需要注意的是,在锁定引脚后必须再通过MAX+plusII的Compiler选项,对文件从新进行编译一次,以便将引脚信息编如入下载文件中。

1.7步骤7:

编程下载

首先将下载线把计算机的打印机口与目标板(如开发板或实验板)连接好,打开电源:

1、下载方式设定。

选择MAX+plusII项及其中的编程器Programmer选项,跳出如图1-18左侧所示的编程器窗口,然后选择Options项的HardwareSetup硬件设置选项,其窗口如图1-18左侧所示。

在其下拉菜单中选ByteBlaster(MV)编程方式。

此编程方式对应计算机的并行口下载通道,“MV”是混合电压的意思,主要指对ALTERA的各类芯核电压(如5V、3.3V、2.5V与1.8V等)的FPGA/CPLD都能由此下载。

此项设置只在初次装软件后第一次编程前进行,设置确定后就不必重复此设置了。

图1-19向EPF10K10下载配置文件

2、下载。

如图1-19,点击Configure键,向EPF10K10下载配置文件,如果连线无误,应出现图1-19报告配置完成的信息提示。

到此为止,完整的设计流程已经结束。

VHDL文本输入的设计可参考这一流程。

图1-20在顶层编辑窗中调出已设计好的半加器元件

1.8步骤8:

设计顶层文件

可以将前面的工作看成是完成了一个底层元件的设计和功能检测,并被包装入库。

现在利用已设计好的半加器,完成顶层项目全加器的设计,详细步骤可参考以上设计流程:

1、仿照前面的“步骤2”,打开一个新的原理图编辑窗,然后在图1-20所示的元件输入窗的本工程目录中找到已包装好的半加器元件h_adder,并将它调入原理图编辑窗中。

这时如果对编辑窗中的半加器元件h_adder双击,即刻弹出此元件内部的原理图。

2、完成全加器原理图设计(图1-21),并以文件名f_adder.gdf存在同一目录中。

3、将当前文件设置成Project,并选择目标器件为EPF10K10LC84-4。

4、编译此顶层文件f_adder.gdf,然后建立波形仿真文件。

5、对应f_adder.gdf的波形仿真文件如图1-22所示,参考图中输入信号cin、bin和ain输入信号电平的设置,启动仿真器Simulator,观察输出波形的情况。

6、锁定引脚、编译并编程下载,硬件实测此全加器的逻辑功能。

图1-21在顶层编辑窗中设计好全加器

图1-221位全加器的时序仿真波形

1.9设计流程归纳

图1-23所示的是利用MAX+plusII进行设计的一般流程,因此对原理图输入设计和文本方式的硬件描述语言设计输入都能适用。

图1-23MAX+plusII一般设计流程

以上的“步骤8”是一个多层次设计示例,其设计流程与图1-23所示的单一层次设计完全一样,此时低层次的设计项目只是高层项目(顶层设计)中的某个或某些元件,而当前的顶层设计项目也可成为更高层设计中的一个元件。

1.10补充说明

为了使以上的各设计步骤表达得更为简洁和浅显易懂,一些需要详细说明的内容未能提及,故在此作为补充说明详述如下:

1、图1-7编译窗各功能项目块含义如下:

CompilerNetlistExtractor:

编译器网表文件提取器,该功能块将输入的原理图文件或HDL文本文件转化成网表文件并检查其中可能的错误。

该模块还负责连接顶层设计中的多层次设计文件;此外还包含一个内置的,用于接受外部标准网表文件的阅读器。

DatabaseBuilder:

基本编译文件建立器,该功能块将含有任何层次的设计网表文件转化成一个单一层次的网表文件,以便进行逻辑综合。

LogicSynthesizer:

逻辑综合器,对设计项目进行逻辑化简、逻辑优化和检查逻辑错误。

综合后输出的网表文件表达了设计项目中底层逻辑元件最基本的连接方式和逻辑关系。

逻辑综合器的工作方式和优化方案可以通过一些选项来实现,这将在第12中详述。

Partitioner:

逻辑分割器,如果选定的目标器件逻辑资源过小,而设计项目较大,该分割器则自动将设计项目进行分割,使得它们能够实现在多个选定的器件中。

Fitter:

适配器,适配器也称结构综合器或布线布局器。

它将逻辑综合所得的网表文件,即底层逻辑元件的基本连接关系,在选定的目标器件中具体实现。

对于布线布局的策略和优化方式也可以通过设置一些选项来改变和实现。

TimingSNFExtractor:

时序仿真网表文件提取器,该功能块从适配器输出的文件中提取时序仿真网表文件,留待对设计项目进行仿真测试用。

对于大的设计项目一般先进行功能仿真,方法是在Compiler窗口下选择Processing项中的FunctionalSNFExtractor功能仿真网表文件提取器选项。

Assembler:

装配器,该功能块将适配器输出的文件,根据不同的目标器件,不同的配置ROM产生多种格式的编程/配置文件,如用于CPLD或配置ROM用的POF编程文件(编程目标文件);用于对FPGA直接配置的SOF文件(SRAM目标文件);可用于单片机对FPGA配置的Hex文件,以及其它TTFs、Jam、JBC和JEDEC文件等。

(二)设计有时钟使能的两位十进制计数器

图1-24用74390设计一个有时钟使能的两位十进制计数器

五、思考题

1、如何修改编译出现的错误?

2、无法仿真,可能有哪些原因?

3、无法进行芯片编程,有哪些原因?

4、写出在可编程逻辑芯片万能开发器上进行验证的详细步骤。

实验二VHDL语言输入方式实现可编程逻辑芯片的设计

一、实验目的

1、巩固VHDL语言的编辑方法;

2、巩固工程文件的调用与激活;

3、掌握VHDL语言及原理图设计的编译方法,并学会识别和修改错误。

4、巩固引脚锁定、芯片编程方法。

二、实验仪器

可编程逻辑芯片万能开发器PC机max-plusII软件

三、实验原理

硬件描述语言程序

库及程序包

实体

结构体

进程语句

BLOCK子结构

VHDL文本输入设计方法:

虽然本节介绍的是基于MAX+plusII的文本输入设计方法,但其基本设计流程是具有一般性,因而,设计的基本方法也完全适合于其它EDA工具软件。

作为实验准备,本节将介绍利用MAX+plusII进行VHDL文本输入设计的基本方法和流程(参考图5-23)。

整个设计流程与第5章介绍的原理图输入设计方法基本相同,只是在一开始的原文件创建上稍有不同。

以下拟此作简要说明。

图2-1建立文本编辑器对话框

2.1编辑输入并存盘VHDL原文件

与原理图设计方法一样,首先应该建立好工作库目录,以便设计工程项目的存储。

作为示例,在此设立目录为:

E:

\muxfile,作为工作库。

以便将设计过程中的相关文件存储在此。

接下去是打开MAX+plusII,选择菜单“File”“New…”,出现如图2-1所示的对话框,在框中选中“TextEditorfile”,按“OK”按钮,即选中了文本编辑方式。

在出现的“Untitled-TextEditor”文本编辑窗(图2-2)中键入图2-2的VHDL程序(2选1多路选择器),输入完毕后,选择菜单“FileSave”,即出现如图2-2所示的“SaveAs”对话框。

首先在“Directories”目录框中选择自己已建立好的存放本文件的目录E:

\MUXFILE(用鼠标双击此目录,使其打开),然后在“FileName”框中键入文件名MUX21A.VHD,按“OK”按钮,即把输入的文件放在目录E:

\MUXFILE中了。

注意,原理图输入设计方法中,存盘的原理图文件名可以是任意的,但VHDL程序文本存盘的文件名必须与文件的实体名一致,如MUX21A.VHD。

另应注意,文件的后缀将决定使用的语言形式,在MAX+plusII中,后缀为.VHD表示VHDL文件;后缀为.TDF表示AHDL文件;后缀为.V表示Verilog文件。

如果后缀正确,存盘后对应该语言的文件中的主要关键词都会改变颜色。

2.2将当前设计设定为工程

需要特别注意的是,在编译/综合MUX21A.VHD之前,需要设置此文件为顶层文件(最上层文件),或称工程文件:

Project,或者说将此项设计设置成工程。

选择菜单“File”Project“SetProjecttoCurrentFile”,当前的设计工程即被指定为MUX21A。

也可以通过选“File”“Project”“Name”,在跳出的“ProjectName”窗中指定E:

\MUXFILE下的MUX21A.VHD为当前的工程。

设定后可以看见MAX+plusII主窗左上方(图2-3)的工程项目路径指向为:

“e:

\muxfile\mux21a”。

这个路径指向很重要!

图2-2在文本编辑窗中输入VHDL文件并存盘

图2-3设定当前文件为工程

在设定工程文件后,应该选择用于编程的目标芯片:

选择菜单“Assign”“Device…”,在弹出的对话框中的“DeviceFamily”下拉栏中,例如选择FLEX10K,然后在Devices列表框中选择芯片型号“EPF10K10LC84-3”,按OK。

在设定工程文件后,应该选择用于编程的目标芯片:

选择菜单“Assign”“Device…”,在弹出的对话框中的“DeviceFamily”下拉栏中,例如选择FLEX10K,然后在“Devices”列表框中选择芯片型号“EPF10K10LC84-3”,按OK。

在设计中,设定某项VHDL设计为工程应该注意以下3方面的问题:

1、如果设计项目由多个VHDL文件组成,如本章给出的全加器,应先对各低层次文件(元件),如或门或半加器分别进行编辑、设置成工程、编译、综合、乃至仿真测试并存盘后以备后用。

2、最后将定顶层文件(存在同一目录中)设置为工程,统一处理,这时顶层文件能根据例化语句自动调用底层设计文件。

3、在设定顶层文件为工程后,底层设计文件原来设定的元件型号和引脚锁定信息自动失效。

元件型号的选定和引脚锁定情况始终以工程文件(顶层文件)的设定为准。

同样,仿真结果也是针对工程文件的。

所以在对最后的顶层文件处理时,仍然应该对它重新设定元件型号和引脚锁定(引脚锁定只有在最后硬件测试时才是必须的)。

如果需要对特定的底层文件(元件)进行仿真,只能将某底层文件(元件)暂时设定为工程,进行功能测试或时序仿真。

2.3选择VHDL文本编译版本号和排错

选菜单“MAX+plusII”“Compiler”菜单,出现编译窗(图2-4)后,需要根据自己输入的VHDL文本格式选择VHDL文本编译版本号。

选择如图2-4所示界面上方的“Interfaces”“VHDLNetlistReaderSettings”,在弹出的窗口中选“VHDL’1987”或“VHDL’1993”。

这样,编译器将支持87或93版本的VHDL语言。

这里,文件MUX21A.VHD属于93版本的表述。

由于综合器的VHDL’1993版本兼容VHDL’1987版本的表

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1