《数字逻辑与硬件描述语言》实验指导书003293007文档格式.docx
《《数字逻辑与硬件描述语言》实验指导书003293007文档格式.docx》由会员分享,可在线阅读,更多相关《《数字逻辑与硬件描述语言》实验指导书003293007文档格式.docx(53页珍藏版)》请在冰豆网上搜索。
(一)MAXPLUSII基本使用
设计流程图
一、图形输入的设计过程
在本节将以图形输入法为例讲述图形方法设计的整个过程。
在MAX—PLUSII中,用户的每个独立设计都对应一个项目,每个项目可饮食一个或多个设计文件,其中有一个是顶层文件,顶层文件的名字必须与项目名相同。
编译器是对项目中的顶层文件进行编译。
项目还管理所有中间文件,所有项目的中间文件的文件名相同,仅后缀名(扩展名)不同,对于每个部的项目最好建立一个单独的子目录。
(一)项目建立
1.启动MAX+PLUSII10.0
从“开始”菜单“程序”中的“MAX+PLUSII10.0Baseline”组中的“MAX+PLUSII10.0Baseline”,单击“MAX+PLUSII10.0Baseline”项。
2.在File菜单中选择Project的Name项,输入设计项目的名字。
3.启动菜单File\New,选择GraphicEditorFile,打开原理图编译器,进行原理图设计输入。
(如图1-1)
图1-1原理图设计界面
(二)设计的输入
1、放置器件在原理图上
(1)在原理图的空白出双击鼠标左键,出现图1-2。
图1-2选取元件菜单图
(2)在光标处输入元件或用鼠标点击选取元件,按下OK即可。
(3)安放同样的元件,选取该元件,按住Ctrl键,同时用鼠标拖动该元件。
(4)建立图1-3的实验原理图。
2、连线
如果需要连接元件的两个端口,则将鼠标移到其中的一个端口上,这时鼠标指示符会自动变为“+”形,然后
(1)按住鼠标左键并拖动鼠标至第二个端口(或其他地方);
(2)松开鼠标左键后,则可画好一条连线;
(3)若想删除一条连线,只需用鼠标左键点中该线,被点中的线会变为高亮线(为红色),此时按“Delete”键即可删除。
3、保存文件:
从“File”菜单下选择“Save”,出现文件保存对话框,选择“OK”,使用默认的文件名存盘。
此处默认的文件名为“demulti_4.gdf”,即项目名“demulti_4”加上图形文件的扩展名“.gdf”。
图1-31对4解多任务器原理图
(三)项目编译
完成设计文件输入后,可开始对其进行编译。
在“MAXPLUSII”菜单中选择“Compiler”,即可打开编译器(图1-4)。
选择“Start”就可开始编译。
编译成功后可生成时序模拟文件及器件编程文件。
若有错误,编译器将停止编译,并在下面的信息框中给出错误信息,双击错误信息条,一般可给出错误之处。
图1-4maxplusII编译器
编译器由多个部分组成,各部分名称与功能如下:
CompilerNetlistExtractor:
编译器网表提取器,该过程完成后生成设计的网表文件,若图形连接中有错误(如两个输出直接短接),该过程将指出此错误。
LogicSynthesizer:
逻辑综合器对设计进行逻辑综合,即选择合适的逻辑化简算法,去除冗余逻辑,确保对某种特定的器件结构尽可能有效地使用器件的逻辑资源,还可去除设计中无用的逻辑。
用户可通过修改逻辑综合的一些选项,来指导逻辑综合。
Fitter:
适配器。
它通过一定的算法(或试探法)进行布局布线将通过逻辑综合的设计最恰当地用一个或多个器件来实现。
TimingSNFExtractor:
时序模拟的模拟器网表文件生成器,它可生成用于时序模拟(项目校验)的标准时延文件。
若想进行功能模拟,可从菜单“Processing”中选择“FunctionalSNFExtractor”项,此时编译器仅由三项构成:
CompilerNetlistExtractor;
DatabaseBuilder;
FunctionalSNFExtractor。
Assembler:
适配器,生成用于器件下载/配置的文件。
(注意:
在这一步中编译器自动为你的设计选择目标器件并进行管脚锁定;
在下面的介绍中我们将说明如何由用户进行目标器选择和管脚锁定)
(四)目标器件选择与管脚锁定
1、选择器件:
本例中使用的目标器件为FLEX10K系列中的EPF10K10LC84,器件选择方法如下:
a.从菜单“Assign”下选择“Device”项可打开器件选择对话框;
b.单击“DeviceFamily”区的下拉按钮,可进行器件系列选择,选择FLEX10K;
c.在具体器件型号列表区双击EPF10K10LC84,可看到如图1-5;
d.单击“OK”按钮,关闭对话框即完成器件选择,下面可开始管脚锁定。
图1-5器件选择菜单
2、管脚锁定:
首先,从“Max+plusII”菜单下选择“FloorplanEditor”。
平面布置图编辑器窗口将被打开,如图1-6。
图1-6管脚分配菜单
注意,你所打开的窗口可能与此不同,可通过在菜单“Layout”中选中“DeviceView”,可使视图区显示器件视图(显示管脚锁定情况);
单击工具条中的可显示当前的管脚分配/逻辑分配情况。
为将D信号锁定在EPF10K10LC84的6号脚上,可先将鼠标移到节点显示区的“D”左边的上,按下鼠标左键,可看到鼠标至视图区中6号管脚的空白矩形处(见下图),松开左键即可完成信号D的人工管脚锁定。
图1-7信号D的人工管脚锁定
(五)器件编程/配置
在通过项目编译后可生成文件*.sof用于下载。
在Altera器件中,一类为MAX系列,另一类为FLEX系列。
其中MAX系列为CPLD结构,编程信息以EEPROM方式保存,故对这类器件的下载称为编程;
FLEX系列有些类似于FPGA,其逻辑块LE及内部互连信息都是通过芯片内部的存储器单元阵列完成的,这些存储器单元阵列可由配置程序装入,存储器单元阵列采用SRAM方式,对这类器件的下载称为配置。
因为MAX系列编程信息以EEPROM方式保存,FLEX系列的配置信息采用SRAM方式保存,所以系统掉电后,MAX系列编程信息不丢失,而FLEX系列的配置信息会丢失,需每次系统上电后重新配置。
在我们例子中使用的是EPF10K10LC84,为FLEX系列。
下面我们对其中进行配置:
a.将下载电缆一端插入LPT1(并行口,打印机口),另一端插入系统板,打开系统板电源;
b.从“Max+plusII”菜单下选择“Programmer”,可打开如下对话框,如图1-8。
图1-8Programmer界面
c.单击按钮“Configure”即可完成配置。
若第一次运行上述对话框所有按钮皆为灰色,可从“Options”菜单下选择“Hardwaresetup”对话框,如图1-9。
在“HardwareType”下拉框中选择“ByteBlaster”,单击“OK”即可。
图1-9“Hardwaresetup”对话框
二、语言描述输入法
采用HDL设计,可提高开发速度,设计易读。
MAX+PLUS II支持AHDL语言(theAlteraHardwareDescriptionLanguage),VHDL,VerilogHDL等语言输入。
其设计过程与图形方法基本相同,仅在开始时建立文本文件。
●使用VHDL设计1对4解多任务器
选择File/New出现设计输入文件选择对话框,选择TextEditorFile。
输入如下文本:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYdemulti_4vIS
PORT(D:
INSTD_LOGIC;
S:
INSTD_LOGIC_VECTOR(1downto0);
Y0,Y1,Y2,Y3:
OUTSTD_LOGIC);
ENDdemulti_4v;
ARCHITECTUREaOFdemulti_4vIS
BEGIN
--Y0<
=NOTS
(1)ANDNOTS(0)ANDD;
Y1<
=NOTS
(1)ANDS(0)ANDD;
--Y2<
=S
(1)ANDNOTS(0)ANDD;
Y3<
=S
(1)ANDS(0)ANDD;
PROCESS(S,D)
BEGIN
CASESIS
WHEN"
00"
=>
Y0<
=D;
--Y1<
='
0'
;
Y2<
01"
Y1<
--Y0<
10"
WHENOTHERS=>
Y3<
Y2<
ENDCASE;
ENDPROCESS;
ENDa;
此文件保存为demulti4_v.vhd。
注意保存时一定要选择vhd的文件后缀且文件名必须与实体名相同。
将此文件设为当前项目(File/Project/SetProjecttoCurreentFile)后编译,之后建立模拟文件demulti4_v.scf来仿真此计数器,下载等。
对于VerilogHDL,过程同VHDL,仅在存盘时其后缀名为“.v”。
(二)VHDL简明教程
一、VHDL简介
●VHDL是VHSICHardwareDescriptionLanguage的缩写。
□VHSIC—VeryHighSpeedIntegratedCircuit(1982年)
●由美国国防部(DOD)制定,以作为各合同商之间提交复杂电路设计文档的一种标准方案
●1987年被采纳为IEEE1076标准
●1993年被更新为IEEE1164标准
HDL的出现是为了适应电子系统设计的日益复杂性。
若以计算机软件的设计与电路设计做个类比,机器码好比晶体管/MOS管;
汇编语言好比网表;
则HDL语言就如同高级语言,VHDL在语法和风格上类似与现代高级编程语言,如C语言。
但要注意,VHDL毕竟描述的是硬件,它包含许多硬件特有的结构。
●现在VHDL被广泛用于:
电路设计的文档记录
设计描述的逻辑综合
电路仿真
采用VHDL及自顶向下方法在大型数字系统设计中被广泛采用。
在设计中你可采用较抽象的语言(行为/算法)来描述系统结构,然后细化成各模块,最后可借助编译器将VHDL描述综合为门级。
对用于CPLD/FPGA设计描述的VHDL语言作一简单说明。
其设计过程一般如下:
1.代码编写;
2.由综合器(如Synplify,Synopsys等)综合成门级网表;
3.前仿真/功能仿真;
4.布局/布线至某一类CPLD/FPGA中;
4.后仿真/时序仿真。
二、VHDL的组成
一个VHDL设计由若干VHDL文件构成,每个文件主要包含如下三个部分中的一个或全部:
1.程序包(Package);
2.实体(Entity);
3.结构体(Arch