EDA技术基础实验指导书ALL.docx
《EDA技术基础实验指导书ALL.docx》由会员分享,可在线阅读,更多相关《EDA技术基础实验指导书ALL.docx(30页珍藏版)》请在冰豆网上搜索。
EDA技术基础实验指导书ALL
EDA技术基础实验指导书
海南大学信息学院编
目录
实验一MAX–plusII及开发系统使用1
实验二高速四位乘法器设计7
综合性设计性实验
实验三秒表的设计9
实验四序列检测器的设计12
实验五数字频率计的设计14
数字密码锁17
交通灯控制器18
实验一MAX–plusII及开发系统使用
一、实验目的
1、熟悉利用MAX-plusⅡ的原理图输入方法设计简单的组合电路
2、掌握层次化设计的方法
3、熟悉DXT-BⅢ型EDA试验开发系统的使用
二、主要实验设备
PC机一台(中档以上配置),DXT-B3EDA实验系统一台。
三、实验原理
数字系统设计系列实验是建立在数字电路基础上的一个更高层次的设计性实验。
它是借助可编程逻辑器件(PLD),采用在系统可编程技术(ISP),利用电子设计自动化软件(EDA),在计算机(PC)平台上进行的。
因为本实验是在计算机平台上进行,因此实验方式,实验手段和实验仪器与传统的实验有很大的区别,主要体现在以下几个方面:
1、实验器材集中化,所有实验基本上在一套实验设备上进行。
传统的实验每作完一个实验,实验器材基本上都要变动(个别除外)。
而做本实验时,只要在计算机上把不同的程序输进去,其它步骤所有实验都一致;
2、实验耗材极小(基本上没有耗材);
3、在计算机上进行,自动化程度高,人机交互性好,修改、验证实验简单;
4、下载后,实验结果清晰;
5、实验仪器损耗少,维护简单;
下面,我们就本套实验设备做一个简单的介绍。
(一)Max+plusⅡ10.0的使用。
1、Max+PlusII软件的安装步骤:
第一步:
系统要求
奔3CPU以上,128M内存以上,4G以上硬盘,98操作系统(98或Me操作系统才可以下载,其他操作系统下载必须安装驱动,否则只能仿真,如果大家只进行仿真的话,对系统没要求)
第二步:
安装
点击安装可执行文件进行安装,安装完毕后会弹出一对话框,点击是或否都可以。
第三步:
将安装文件夹中的License文件夹打开,里面有一个License.bat注册文件,将此文件复制到你的安装目录下(你的安装目录可放在任一个驱动器下,然后建立一个Max10的文件夹,将系统安装在此文件夹中,安装后此文件夹中会有三个文件夹)的任一个文件夹中,要清楚位置。
第四步:
注册
启动Max+PlusII软件,可以从开始-->程序-->Altera-->Max+PlusII打开,也可以建立一个快捷方式在桌面上。
启动软件后,会有弹出一个对话框,点击是或否都可以,然后进入系统。
点击菜单中的Options,然后选中License菜单项,打开弹出一个注册对话框,在注册文件路径中打开你第三步中复制位置的License文件,然后点击OK,注册完毕。
2、max+plusⅡ软件基本设计流程
注意:
实验时必须严格按照上述流程进行,如实验中遇到问题,举手向老师提出,严禁随意乱做!
!
(二)4位全加器设计
一个4位全加器可以由4个1位全加器构成,如图1.1所示,1位的全加器串行联接可以实现4位的二进制全加器。
图1.14位全加器电路原理图
1位全加器可以由两个半加器和一个或门构成,如图1.2所示。
图1.2全加器电路原理图
1位半加器可以由与、或、非等基本门构成,如图1.3所示。
图1.3半加器电路原理图
根据实验原理中,采用层次法设计一个4位全加器。
四、实验步骤
1、如图1.3所示,利用MAX-plusⅡ中的图形编辑器设计一半加器,进行编译、仿真,并将其设置成为一元件(可根据需要对元件符号进行调整)。
注意:
编译之前必须将文件设为当前文件。
2、建立一个更高得原理图设计层次,如图1.2所示,利用前面生成的半加器元件设计一全加器,进行编译、仿真,并将其设置成为一元件(可根据需要对元件符号进行调整)。
3、再建立一个更高得原理图设计层次,如图1.1所示,利用前面生成的半加器元件设计一全加器,进行编译、仿真。
4、选择器件“Assign”|“Device”|“MAX7000S”|“EPM7128SLC84-6”,并根据下载板上的标识对管脚进行配置。
然后下载,进行硬件测试,检验结果是否正确。
五、实验报告要求:
详细描述4位全加器的设计过程,给出各层的电路原理图、元件图(原理图)以及对应的仿真波形;给出加法器的延时情况;最后给出硬件测试的流程和结果。
思考题:
为了提高加法器的速度,如何改进以上设计的进位方式?
附录:
实验箱部分说明
1、按键K1~K16及指示灯
主板左下方有16个按键K1~K16,分两排排放,上面配有16个二极管,此二极管即可作按键输入指示,也可做输出用。
按键、发光二极管与下载板上CPLD/FPGA的一个I/O口通过控制芯片8间接对应相连,上、下按键各为一组,既可作电平输入也可作脉冲输入(均已经过消抖),通过主板右上角跳线来改变。
下载板上只标出了对应开关的信号名Ki。
当与I/O口相对应的开关Ki作为电平/脉冲输入使用时,将跳线帽电平/脉冲A(电平/脉冲B)插上/拔下即可(其中上排A、下排B按键各为一组)。
表示按键向该I/O口输入一个逻辑量脉冲信号或高/低电平。
当把K1~K16对应的I/O口定义为输出使用时,应把电平/脉冲A(电平/脉冲B)处跳线帽拔下,指示/按键处跳线帽插上,这时按键上方对应的发光二极管可作为输出使用。
2、发光二极管L1~L12
在主板的上方有12个发光二极管L1~L12(其中L1和L12为三色),它们分别与下载板上的标识符的I/O口相连。
注:
L1R输出表示红灯;L1G输出表示绿灯;L1R、L1G同时输出表示黄灯。
其中L12与L1输出情况相同。
红、黄、绿灯可以用于做交通灯实验。
3、静态显示数码管M1~M4
主板的上侧配有8位数码管M1-M8,当跳线帽静态/动态插上,表示静态显示(四位);拔下为动态输出显示(八位)。
每只数码管通过控制芯片的I/O口与下载板四个I/O口相连。
下载板四个I/O口输出BCD码,通过译码驱动数码管。
下载板与主板连接信号名M1D为PLD输出BCD码高位,M1A为BCD码低位。
其他信号类推。
实验二高速四位乘法器设计
一、实验目的
1.熟悉利用MAX-plusⅡ的原理图输入方法设计简单的组合电路
2.掌握层次化设计的方法
3.掌握高速乘法器的设计方法
二、实验原理
根据乘法的运算规则,不难得出下图所示的乘法器的原理框图。
4位加法器可以选择74283,b0*a,b1*a,b2*a,b3*a实际就是1位和4位的与运算,如下图所示。
由原理框图不难得出如图2.1所示的电路原理图。
三、实验内容
按以上原理实现一个高速4位乘法器
四、实验步骤
1.如上图所示,利用MAX-plusⅡ中的图形编辑器设计1-4的二进制乘法器,进行编译、仿真,并将其设置成为一元件(可根据需要对元件符号进行调整)。
注意:
编译之前必须将文件设为当前文件。
2.建立一个更高得原理图设计层次,如图2.1所示,利用前面生成的1-4的二进制乘法器和调用库中的74283元件设计一高速4位乘法器
3.选择器件“Assign”|“Device”|“MAX7000S”|“EPM7128SLC84-6”,并根据下载板上的标识对管脚进行配置。
然后下载,进行硬件测试,检验结果是否正确。
五、实验报告要求:
详细描述4位乘法器的设计过程,给出各层的电路原理图、元件图(原理图)以及对应的仿真波形;给出乘法器的延时情况;最后给出硬件测试的流程和结果。
思考题:
除了以上方法是否还有其他实现高速乘法的方法?
图2.1高速4位乘法器电路原理图
实验三秒表的设计
一、实验目的:
1、熟练利用VHDL语言进行数字系统设计;
2、掌握数字系统的设计方法——自顶向下的设计思想;
3、掌握计数器的设计与使用;
4、根据秒表的功能要求设计一个秒表;
二、实验设备:
PC机一台、EDA教学实验系统一台、下载电缆一根(已接好)、导线若干
三、实验要求:
1、有秒、分计数,数码扫描显示输出;
2、有清零端和计数使能端;
3、在功能允许的情况下,可自由发挥;
四、实验原理:
1、功能描述:
秒表是一种计时的工具,有着很广泛的用途。
本实验中的秒表要求有两个功能按钮:
一个是计数和停止计数按钮,当第一次按下此按钮时,秒表开始计数,再一次按下时,秒表停止计数,并显示所计的数字;另一个是清零按钮,当按下此按钮时,秒表清零。
在数码管上采用扫描显示输出。
2、基本原理:
本实验中用到的主要元件有计数器、控制逻辑、数据选择器和译码器等。
秒、分都是60进制计数,所以必须采用两个60进制的计数器(或6进制计数器与10进制计数器的组合);控制逻辑主要是用来实现计数和清零。
基本方框图如下:
注意:
计数器必须有进位输出、计数使能端和清零端。
3、自顶向下的设计方法:
自顶向下的设计方法是数字系统设计中最常用的设计方法,也是基于芯片的系统
设计的主要方法。
它的基本原理框图如下:
自顶向下的设计方法利用功能分割手段将设计由上到下进行层次化和模块化,即分层次、分模块进行设计和仿真。
功能分割时,将系统功能分解为功能块,功能块再分解为逻辑块,逻辑块再分解为更少的逻辑块和电路。
如此分割,逐步的将系统细化,将功能逐步具体化,模块化。
高层次设计进行功能和接口描述,说明模块的功能和接口,模块功能的更详细描述在下一设计层次说明,最底层的设计才涉及具体寄存器和逻辑门电路等实现方式的描述。
(注意:
这里所说的模块可能是芯片或电路板。
)
五、实验步骤:
1、采用自顶向下的设计方法,首先将系统分块;
2、设计元件,即逻辑块;
3、一级一级向上进行元件例化(本实验只需例化一次即可),设计顶层文件。
六、实验报告
1、写出实验源程序,画出仿真波形;
2、总结实验步骤和实验结果;
3、心得体会――本次实验中你的感受;你从实验中获得了哪些收益;本次实验你的成功之处;本次实验中还有待改进的地方;下次实验应该从哪些地方进行改进;怎样提高自的实验效率和实验水平等等。
4、完成实验思考题。
七、问题与思考
设计一个60~0的递减计数器。
实验四序列检测器的设计
一、实验目的:
1、掌握序列检测器的工作原理;
2、学会用状态机进行数字系统设计;
二、实验器材:
PC机一台、EDA教学实验系统一台、下载电缆一根(已接好)、导线若干
三、实验原理与内容:
1、序列检测器的基本工作过程:
序列检测器用于检测一组或多组由二进制码组成的脉冲序列信号,在数字通信中有着广泛的应用。
当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。
由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置的对应码相同。
在检测过程中,任何一位不相等都将回到初始状态重新开始检测。
方框图如下:
2、状态机的基本设计思想:
在状态连续变化的数字系统设计中,采用状态机的设计思想有利于提高设计效率,增加程序的可读性,减少错误的发生几率。
同时,状态机的设计方法也是数字系统中一种最常用的设计方法。
一般来说,标准状态机可以分为摩尔(Moore)机和米立(Mealy)机两种。
在摩尔机中,其输出仅仅是当前状态值的函数,并且仅在时钟上升沿到来时才发生变化。
米立机的输出则是当前状态值、当前输出值和当前输入值的函数。
本实验要从一串二进制码中检测出一个已预置的8位二进制码10001110,每增加一位二进制码相当于增加一个状态,再加上一个初始态,用9个状态可以实现。
其过程如下:
注意:
此图作为参考,检测不同的二进制码其过程不同!
3、实验内容:
写出状态机的源程序,编译后进行仿真,看结果是否正确。
四、实验步骤:
1、充分理解状态机的工作原理,画出状态转换图;
2、写出源程序,按顺序进行处理;
3、检查结果是否正确。
五、实验报告:
1、写出实验源程序,画出仿真波形;
2、总结实验步骤和实验结果;
3、心得体会――本次实验中你的感受;你从实验中获得了哪些收益;本次实验你
的成功之处;本次实验中还有待改进的地方;下次实验应该从哪些地方进行改进;
怎样提高自的实验效率和实验水平等等。
4、完成实验思考题。
七、问题与思考:
如果改变待检测的二进制码,状态转换图应如何变化。
实验五数字频率计的设计
一、实验目的:
1、学会数字频率计的设计方法;
2、设计一个计数范围在0~1MHz的数字频率计;
3、进一步掌握自顶向下的数字系统设计方法,并体会其优越性;
二、实验器材:
PC机一台、EDA教学实验系统一台、下载电缆一根(已接好)、导线若干
三、实验原理与内容:
1、测频原理
若某一信号在T秒时间里重复变化了N次,则根据频率的定义可知该信号的频率fs为:
fs=N/T通常测量时间T取1秒或它的十进制时间。
频率计方框图如下:
(1)、时基T产生电路:
提供准确的计数时间T。
晶振产生一个振荡频率稳定的脉冲,通过分频整
形、门控双稳后,产生所需宽度的基准时间T的脉冲,又称闸门时间脉冲。
注意:
分频器一般采用计数器完成,计数器的模即为分频比。
(2)、计数脉冲形成电路:
将被测信号变换为可计数的窄脉冲,其输出受闸门脉冲的控制。
(3)、计数显示电路:
对被测信号进行计数,显示被测信号的频率。
计数器一般采用多位10进
制计数器;控制逻辑电路控制计数的工作程序:
准备——计数——显示——复
位——准备下一次测量。
2、具体实现:
(1)、测频控制逻辑电路(以1秒为例)
A)产生一个1秒脉宽的周期信号;
B)对计数器的每一位计数使能进行控制;
C)完成下一次测量前的计数器复位;
一种可能的时序关系:
a)10进制计数器
要求具有计数使能端CNTEN、复位端CLR、进位输出端CO。
3、元件例化图(方框图):
注意:
用6个十进制计数器实现1MHz计数。
四、实验步骤:
1、画出实验原理方框图;
2、设计各个元件;
3、进行元件例化;
五、参考程序(略)
六、实验报告:
1、写出实验源程序,画出仿真波形;
2、总结实验步骤和实验结果;
3、心得体会――本次实验中你的感受;你从实验中获得了哪些收益;本次实验你
的成功之处;本次实验中还有待改进的地方;下次实验应该从哪些地方进行改进;
怎样提高自的实验效率和实验水平等等。
4、完成实验思考题。
七、问题与思考:
1、怎样实现测频范围的扩大;
2、怎样提高测量的精确度;
数字密码锁
要求:
1、密码:
4位十进制数(0-9)。
2、0-9数字键
3、密码设置键(起始密码0000)
4、开锁键
5、清屏键
6、显示:
4位密码LED(开锁时可见、密码设置时显示X)、锁状态1红(LOCK)1绿(OPEN)、密码错误1红(闪烁)
7、密码错误,报警(声音)
8、连续3次开锁失败,将键盘锁死,同时按下某组合键,清除原密码设置。
译码器(键盘k1-k10→0-9)、寄存器、存储器、计数器(3)、比较器、控制模块
交通灯控制器
实现高速公路与乡间小路的交叉路口红绿灯的控制
功能如下要求:
1.只有在小路上发现汽车时,高速公路上的交通灯才可能变为红灯。
2.当汽车行驶在小路上时、小路的交通灯保持为绿灯,但不能超过给定的延迟时间.
〔注;这段时间定义为20S时间)。
3.高速公路灯转为绿灯后,即使小路上有汽车出现,而高速公路上并无汽车,也将在给定的时间内保持高速公路绿灯
(注:
这段时间定义为60S)。
附录1位全加器设计向导
1位全加器可以如图7-11那样用两个半加器及一个或门连接而成,因此需要首先完成如图7-10所示的半加器的设计。
以下将给出使用原理图输入的方法进行底层元件设计和层次化设计的完整步骤,其主要流程与数字系统设计的一般流程基本一致。
事实上,除了最初的输入方法稍有不同外,应用VHDL的文本输入设计方法的流程也基本与此相同。
5.1.1步骤1:
为本项设计建立文件夹
任何一项设计都是一项工程(Project),都必须首先为此工程建立一个放置与此工程相关的所有文件的文件夹,此文件夹将被EDA软件默认为工作库(WorkLibrary)。
一般不同的设计项目最好放在不同的文件夹中,注意,一个设计项目可以包含多个设计文件,如频率计。
图5-1进入Max+plusII,建立一个新的设计文件
图5-2元件输入选择窗
假设本项设计的文件夹取名为MY_PRJCT,在E盘中,路径为:
E:
\MY_PRJCT。
文件夹不能用中文。
5.1.2步骤2:
输入设计项目和存盘
1、打开Mux+plusII,选菜单FileNew(图5-1),在弹出的FileType窗中选原理图编辑输入项GraphiceditorFile,按OK后将打开原理图编辑窗。
2、在原理图编辑窗中的任何一个位置上点鼠标右键,将跳出一个选择窗,选择此窗中的输入元件项EnterSymbol,于是将跳出如图5-2所示的输入元件选择窗。
3、用鼠标双击文件库“SymbolLibraries”中的e:
\maxplu2\max2lib\prim项,在SymbolFiles窗中即可看到基本逻辑元件库prim中的所有元件,但也可以在SymbolName窗中用键盘直接输入所需元件名,在按OK键,即可将元件调入原理图编辑窗中。
如为了设计半加器,可参考图7-10,分别调入元件and2、not、xnor、input和output(图5-3)并连接好。
然后用鼠标分别在input和output的PIN-NAME上双击使其变黑色,再用键盘分别输入各引脚名:
a、b、co和so。
4、点击选项File“SaveAs”,选出刚才为自己的工程建立的目录E:
\MY_PRJCT,将已设计好的图文件取名为:
h_adder.gdf(注意后缀是.gdf),并存在此目录内。
图5-3将所需元件全部调入原理图编辑窗
注意,原理图的文件名可以用设计者认为合适的任何英文名(VHDL文本存盘名有特殊要求),如adder.gdf等。
还应注意,为了将文件存入自己的E:
\MY_PRJCT目录中,必须在如图5-4的Saveas窗中双击MY_PRJCT目录,使其打开,然后键入文件名,并按OK。
图5-4连接好原理图并存盘
图5-5将当前设计文件设置成工程文件
5.1.3步骤3:
将设计项目设置成工程文件(PROJECT)
为了使Max+plusII能对输入的设计项目按设计者的要求进行各项处理,必须将设计文件,如半加器h_adder.gdf,设置成Project。
如果设计项目由多个设计文件组成,则应该将它们的主文件,即顶层文件设置成Project。
如果要对其中某一底层文件进行单独编译、仿真和测试,也必须首先将其设置成Projcet。
图5-6选择最后实现本项设计的目标器件
将设计项目(如h_adder.gdf)设定为工程文件设置成Project有两个途径:
1、如图5-5,选择FileProjectSetProjecttoCurrentFile,即将当前设计文件设置成Project。
选择此项后可以看到图5-5所示的窗口左上角显示出所设文件的路径。
这点特别重要,此后的设计应该特别关注此路径的指向是否正确!
2、如果设计文件未打开,可如图5-5所示,选FileProjectName,然后在跳出的ProjectName窗中找到E:
\MY_PRJCT目录,在其File小窗中双击adder.gdf文件,此时即选定此文件为本次设计的工程文件(即顶层文件)了。
图5-7对工程文件进行编译、综合和适配等操作
5.1.4步骤4:
选择目标器件并编译
为了获得与目标器件对应的,精确的时序仿真文件,在对文件编译前必须选定最后实现本设计项目的目标器件,在Max+plusII环境中主要选Altera公司的FPGA或CPLD。
首先在Assign选项的下拉菜单中选择器件选择项Device,其窗口如图5-6所示。
此窗口的DeviceFamily是器件序列栏,应该首先在此拦中选定目标器件对应的序列名,如EPM7128S对应的是MAX7000S系列;EPF10K10对应的是FLEX10K系列等。
为了选择EPF10K10LC84-4器件,应将此栏下方标有ShowonlyFastestSpeedGrades的勾消去,以便显示出所有速度级别的器件。
完成器件选择后,按OK键。
最后启动编译器,首先选择左上角的MAX+plusII选项,在其下拉菜单中选择编译器项Compiler(图5-7),此编译器的功能包括网表文件提取、设计文件排错、逻辑综合、逻辑分配、适配(结构综合)、时序仿真文件提取和编程下载文件装配等。
点击Start,开始编译!
如果发现有错,排除错误后再次编译。
5.1.5步骤5:
时序仿真
接下来应该测试设计项目的正确性,即逻辑仿真,具体步骤如下:
1、建立波形文件。
按照以上“步骤2”,为此设计建立一个波形测试文件。
选择File项及其New,再选择图5-1右侧New窗中的WaveformEditer..项,打开波形编辑窗。
2、输入信号节点。
在图5-8所示的波形编辑窗的上方选择Node项,在下拉菜单中选择输入信号节点项NodesfromSNF。
在弹出的窗口(图5-9)中首先点击List键,这时左窗口将列出该项设计所以信号节点。
由于设计者有时只需要观察其中部分信号的波形,因此要利用中间的“=>”键将需要观察的信号选到右栏中,然后点击OK键即可。
图5-8从SNF文件中输入设计文件的信号节点
图5-9列出并选择需要观察的信号节点
图5-10在Options选项中消去网格对齐SnaptoGrid的选择(消去勾)
3、设置波形参量。
图5-10所示的波形编辑窗中已经调入了半加器的所有节点信号,在为编辑窗的半加器输入信号a和b设定必要的测试电平之前,首先设定相关的仿真参数。
如图5-10所示,在Options选项中消去网格对齐SnaptoGrid的选择(消去勾),以便能够任意设置输入电平位置,或设置输入时钟信号的周期。
4、如图5-11所示,设定仿真时间宽度。
选择File项及其Endtime选项,在Endtime选择窗中选择适当的仿真时间域,如可选34us(34微秒),以便有足够长的观察时间。
5、加上输入信号。
现在可以为输入信号a和b设定测试电平了。
如图5-12标出的那样,利用必要的功能键为a和b加上适当的电平,以便仿真后能测试so和co输出信号。
图5-11设定仿真时间宽度
图5-12为输入信号设定必要的测试电平或数据
图5-13仿真波形文件存盘图5-14运行仿真器
图5-15半加器h_adder.gdf的仿真波形
6、波形文件存盘。
选择File项及其Saveas选项,按OK键即可。
由于图5-13所示的存盘窗中的波形文件名是默认的(这里是h_adder.scf),所以直接存盘即可。
7、运行仿真器。
选择MAX+plusII项及其中的仿真器Simulator选项,点击跳出的仿真器窗口(图5-15)中的Start键。
图5-15是仿真运