EDA技术实验指导书.docx
《EDA技术实验指导书.docx》由会员分享,可在线阅读,更多相关《EDA技术实验指导书.docx(27页珍藏版)》请在冰点文库上搜索。
EDA技术实验指导书
EDA技术实验
实验指导书
(配DXT-B3型EDA实验开发系统)
海南师范大学物理与电子工程学院
实验一简单门电路设计与仿真
一、实验目的
1、熟悉MAX+plusⅡ软件的使用方法
2、通过实验掌握组合逻辑电路的EDA原理图输入设计法,通过电路的仿真和硬件验证,学会对实验板上的FPGA/CPLD进行编程下载,进一步了解门电路的功能。
二、实验仪器设备
1、PC机一台
2、DXT-B3型EDA实验开发系统一套
三、实验原理
在多路数据传送过程中,能够根据需要将其中任意一路挑选出来的电路,叫做数据选择器,也称为多路选择器或多路开关。
1、输入、输出信号分析
输入信号:
4路数据,用D0、D1、D2、D3表示;两个选择控制信号,用S1、S0表示。
输出信号:
用Y表示,它可以是4路输入数据中的任意一路,究意是哪一路完全由选择控制信号决定。
示意框图如图1-1所示。
2、真值表
表1-14选1数据选择器的真值表
输入
输出
D
S1
S0
Y
D0
0
0
D0
D1
0
1
D1
D2
1
0
D2
D3
1
1
D3
3、逻辑表达式
四、实验内容
1、编辑4选1数据选择器的原理图
在MAX+plusⅡ图形编辑方式下,从maxplus2\max2lib\prim元件库中调出4选1数据选择器设计所需要的元件,包括4个三输入端与非门、1个四输入端与非门和2个非门。
按照图1-2所示的原理电路,完成4选1数据选择器原理图输入设计。
图1-2所示的原理电路
图1-2中,D3、D2、D1和D0是数据输入端,S1和S0是控制输入端,Y是数据输出端。
2、设计文件存盘与编译
以mux41.gdf为文件名保存在工程目录中。
执行MAX+plusⅡ的“Compiler”命令对设计文件进行编译。
3、仿真设计文件
在MAX+plusⅡ波形编辑方式下,编辑mux41.gdf的波形文件,并完成输入信号D3、D2、D1和D0,控制信号S1和S0电平的设置。
波形文件编辑结束后以mux41.scf为波形文件名存盘。
执行启动仿真器“Simulator”命令,仿真开始,观察仿真波形进行设计电路的功能验证。
4、引脚锁定
本实验选择的目标芯片为EPF10K10LC84-4,在DXT-B3实验开发系统中进行硬件验证。
5、编程下载与硬件验证
完成引脚锁定后,再次对设计文件编译,然后打开DXT-B3的电源,执行MAX+plusⅡ的“Programmer”命令,将4选1数据选择器设计文件下载到DXT-B3的EPF10K10LC84-4目标芯片中。
硬件验证数据选择器的功能是否正确。
五、实验报告
详细叙述4选1数据选择器的设计流程;给出仿真图和选择器的延时情况;最后给出硬件测试流程和结果。
实验二七人表决器的设计
一、实验目的
1、初步了解VHDL语言;
2、学会用行为描述方式来设计电路。
二、实验仪器设备
1、PC机一台
2、DXT-B3型EDA实验开发系统一套
三、实验原理
1、用七个开关作为表决器的7个输入变量,输入变量为逻辑“1”时表示表决者“赞同”;输入变量为“0”时,表示表决者“不赞同”。
输出逻辑“1”时,表示表决“通过”;输出逻辑“0”时,表示表决“不通过”。
当表决器的七个输入变量中有4个以上(含4个)为“1”时,则表决器输出为“1”;否则为“0”。
2、七人表决器设计方案很多,比如用多个全加器采用组合电路实现。
用VHDL语言设计七人表决器时,也有多种选择。
常见的VHDL语言描述方式有行为描述、寄存器传输(RTL)描述、结构描述以及这几种描述在一起的混合描述。
我们可以用结构描述的方式用多个全加器来实现电路,也可以用行为描述。
3、采用行为描述时,可用一变量来表示选举通过的总人数。
当选举人大于或等于4时为通过,绿灯亮;反之不通过时,黄灯亮。
描述时,只须检查每一个输入的状态(通过为“1”不通过为“0”)并将这些状态值相加,判断状态值和即可选择输出。
四、实验内容
1.编写上述电路的VHDL源程序,并进行编译。
2.锁定引脚。
3.编程下载与硬件验证。
五、设计提示
1.初次接触VHDL语言应注意语言程序的基本结构,数据类型及运算操作符;
2.了解变量和信号的区别;
3.了解进程内部顺序执行语句及进程外部并行执行语句的区别。
六、实验报告要求
根据以上的实验内容写出实验报告,包括七人表决器的工作原理叙述,程序设计、软件编译、仿真分析、引脚锁定、硬件测试和详细实验过程:
给出程序分析报告、仿真波形图及其分析报告。
实验三四位全加器
一、实验目的
通过实验让学生熟悉MAX+plusⅡ的VHDL文本设计流程全过程,掌握组合逻辑电路的文本输入设计法,通过对设计电路的仿真和硬件验证,让学生进一步了解加法器的功能。
二、实验仪器设备
1、PC机一台
2、DXT-B3型EDA实验开发系统一套
C0C0
C2C0
C1C0
三、实验原理
4位全加器可看作4个1位全加器串行构成,具体连接方法如下图所示:
由1位全加器构成4位全加器连接示意图
采用VHDL语言设计时调用其附带的程序包,其系统内部会自行生成此结构。
四、实验内容
4.编写1位全加器full_add1的VHDL源程序,并进行编译。
5.利用元件例化语句编写4位全加器full_adder4的VHDL源程序,并进行编译和仿真。
6.锁定引脚。
7.编程下载与硬件验证。
五、设计提示
调用STD_LOGIC_UNSIGNED包。
先设计一个一位的全加器包括三个输入端:
a,b,cin(进位输入),两个输出端:
s(和),cout(进位输出)。
四位串行进位的全加器可以利用四个一位的全加器搭建而成,其结构如上图所示,其输入端口分别为a0,a1,a2,a3,b0,b1,b2,b3,cin输出端口分别为s0,s1,s2,s3,cout。
在实验中只需要先描述一位全加器,然后用component语句进行元件说明,再利用元件例化语句就可以实现四位的全加器。
六、实验报告要求
根据以上的实验内容写出实验报告,包括4位全加器的工作原理叙述,程序设计、软件编译、仿真分析、引脚锁定、硬件测试和详细实验过程:
给出程序分析报告、仿真波形图及其分析报告。
实验四七段译码器的设计
一、实验目的
1、学习7段数码显示译码器设计;
2、学习VHDL的多层设计方法。
二、实验仪器设备
1、PC机一台
2、DXT-B3型EDA实验开发系统一套
三、实验原理
1、七段数码显示工作原理(共阴极接法)
2、显示代码概念
9的显示代码
四、实验内容
1、画出7段译码器的原理框图。
2、编写7段译码器VHDL源程序。
3、在MAX+plusⅡ软件上编译和仿真。
4、锁定管脚。
5、编程下载与硬件验证。
6、记录系统仿真和硬件验证结果。
五、实验报告要求
根据以上的实验内容写出实验报告,包括7段译码器的工作原理叙述,程序设计、软件编译、仿真分析、引脚锁定、硬件测试和详细实验过程,给出程序分析报告、仿真波形图及其分析报告。
实验五用状态机实现序列检测器的设计
一、实验目的
1、了解状态机的设计;
2、用状态机实现序列检测器的设计。
二、实验仪器设备
1、PC机一台
2、DXT-B3型EDA实验开发系统一套
二、实验原理
序列检测器在数据通讯,雷达和遥测等领域中用于检测同步识别标志。
它是用来检测一组或多组由二进制码组成的脉冲序列信号。
当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出标志1,否则,输出0。
由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位都与预置数的对应码相同。
对于“1110010”序列信号,电路需记忆初始状态、1、11、111、1110、11100、111001、1110010这8种状态。
三、实验内容与要求
1、预习序列检测器原理并写出预习报告;
2、设计一个7位检测序列信号“1110010”的序列检测器;
3、画出ASM图;
4、用VHDL语言编写出源程序;
5、在MAX+plusⅡ软件上编译和仿真,并下载到下载板FPGA芯片中验证结果。
四、实验报告要求
根据以上的实验内容写出实验报告,包括序列检测器原理的叙述,程序设计、软件编译、仿真分析、引脚锁定、硬件测试和详细实验过程,给出程序分析报告、仿真波形图及其分析报告。
实验提示:
在clk的上升沿将待检测的序列Din与预置数D的高位到低位依次进行比较,再设置一个计数器,如果相同,那么计数器的值加1,否则计数器的值为0,到最后如果计数值为7,则Din与D相同。
实验六分频器的设计
一、实验目的
1、学习分频电路的设计方法;
2、进一步学习用VHDL语言进行电路设计的方法。
二、实验仪器设备
1、PC机一台
2、DXT-B3型EDA实验开发系统一套
二、实验原理
在数字系统设计中,分频器是一种基本电路。
分频器通常用来对某个给定频率进行分频,得到所需的频率。
二分频电路的作用就是将时钟的频率降低一半,但是分频后的信号的占空比仍为1:
1。
分频电路跟计数器有一定的类似,对于2分频、4分频…2N分频等分频次数为2的N次幂的分频电路,其结构较为简单,只需要一个计数器就可以了。
对于分频次数不是2的N次方的分频器来说,我们只需要对源代码中计数器的模进行调整并对计数进行适当的控制就可以了。
三、实验内容与要求
1、预习分频器原理并写出预习报告;
2、设计一个分频器,对时钟信号进行2分频、4分频、8分频和16分频,
分频占空比为1:
1。
3、用VHDL语言编写出源程序;
4、在MAX+plusⅡ软件上编译和仿真。
四、实验报告要求
根据以上的实验内容写出实验报告,包括分频器原理的叙述,程序设计、软件编译、仿真分析和详细实验过程,给出程序分析报告、仿真波形图及其分析报告。
实验七交通灯控制器的设计
一、实验目的
1、熟悉交通灯控制器的基本原理;
2、进一步掌握用状态机设计数字系统的方法。
二、实验仪器设备
1、PC机一台
2、DXT-B3型EDA实验开发系统一套
三、实验内容与要求
1、预习交通灯控制器的设计原理并写出预习报告;
2、能显示十字路口东西、南北两个方向的红、黄、绿的指示状态,用两组红、黄、绿三色灯作为两个方向的红、黄、绿灯。
按下SA键时,计时器迅速递增,并按24小时循环,计满23小时后在回00;
3、能实现正常的到计时功能
用两组数码管作为东西和南北方向的到计时显示,显示时间为红灯35秒、绿灯50秒、黄灯5秒。
4、能实现特殊状态的功能
(1)按S1键后,能实现特殊状态功能;
(2)显示到计时的两组数码管闪烁;
(3)计数器停止计数并保持在原来的状态;
(4)东西、南北、路口均显示红灯状态;
(5)特殊状态解除后能继续计数。
5、能实现总体清零功能
按下SB键后,系统实现总清零,计数器由初始状态计数,对应状态的指示灯亮。
6、用VHDL语言设计符合上述功能要求的交通灯控制器,并用层次化设计方法设计该电路。
7、控制器、置数器的功能用功能仿真的方法验证,可通过有关波形确认电路设计是否正确。
8、用VHDL语言编写出源程序;
9、在MAX+plusⅡ软件上编译和仿真,并下载到下载板FPGA芯片中验证设计的正确性。
四、设计说明与提示
交通灯控制器框图如图18-1所示。
各模块电路功能如下:
1、从电路框图可以看到由减计数器、控制器组成了最基本的电路,其中计数器A、B经过数据选择器MUX82以BCD码输出的形式通过译码器与外部数码管相连;控制器控制各信号灯的状态以及计数器的置数、暂停计数。
2、基准频率分频器可以分出标准的1Hz频率信号,用于减计数器的时钟信号以及控制器内触发器的时钟信号。
3、MUX82是八二选一数据选择器,用于特殊情况发生时对显示器闪烁信号的产生。
4、置数器A、B通过控制器的控制对减计数器进行预置。
5、控制器电路模块如图6-1所示。
图6-1交通灯控制器电路框图
图6-2主控制器电路框图
其中K1为特殊状态,S2为清零信号,A、B分别为计数器A、B。
6-3交通灯控制器ASM图
四、实验报告要求
根据以上的实验内容写出实验报告,对照交通灯电路框图分析电路工作原理,程序设计、软件编译、仿真分析、引脚锁定、硬件测试和详细实验过程,给出程序分析报告、仿真波形图及其分析报告。
实验八数字频率计的设计
一、实验目的
1、巩固和加深对本课程所学知识的理解和综合设计应用;
2、掌握运用FPGA进行数字频率计的设计方法。
二、实验仪器设备
1、PC机一台
2、DXT-B3型EDA实验开发系统一套
三、实验任务及要求
1、设计一个4位十进制频率计,其测量范围为1MHz。
分为3挡,1挡量程为0~9999Hz;2挡量程为10.00~99.99kHz;3挡量程为100.0~999.9kHz。
2、显示方式如下:
(1)采用记忆显示方式,即计数过程中不显示数据,待计数过程结束后,显示计数结果,并将此显示结果保持到下一次计数结束。
显示时间应不小于1s。
(2)小数点位置随量程变换自动移位。
3、送入信号应是符合CMOS电路要求的脉冲或正弦波。
4、设计符合上述功能的频率计,并用层次化方法设计该电路。
5、控制器、计数器、锁存器的功能,用功能仿真方法验证,还可通过观察有关波形确认电路设计是否正确。
6、完成电路设计后在实验系统上下载,验证课题的正确性。
四、设计说明与提示
频率计测频原理框图如图7-1所示。
图7-1频率计测频原理图
模块电路功能如下:
1、每次测量时,用由时基信号产生的闸门信号启动计数器,对输入脉冲信号计数,闸门信号结束即将计数结果送入锁存器,然后计数器清零,准备下一次计数。
但下一次计数的开始,需待设定的显示时间结束。
为与时基信号同步,在此时时间结束后还有一段准备时间。
2、显示电路为四位动态扫描电路,可以参阅以前的动态扫描电路。
注意这里只用4位。
3、计数器为模9999十进制加法计数器,可由4个模10十进计数器级联而成。
4、锁存器为保持电路。
5、控制器由时序机组成能够完成对量程的选择调整。
五、实验报告要求
根据以上的实验内容写出实验报告,分析频率计电路的作原理,VHDL程序设计、软件编译、仿真分析、引脚锁定、硬件测试和详细实验过程,给出程序分析报告、仿真波形图及其分析报告。
附录1MAX+PLUSII软件使用指导
1、VHDL源文件的编辑和输入
首先建好工作目录,以便将设计好的文件存储于该目录,注意不要用中文作为文件或者文件夹的名称。
然后打开maxplusII,选择file->new,再选择texteditorfile,此时即可在maxplusII的文本框中输入VHDL程序。
程序输入完成之后,选择saveas,在filename框中键入文件名,文件的扩展名为.vhd,将文件存在建好的工作目录中。
需要注意的是所存的VHDL程序的文件名必须与该VHDL程序的实体名称一致。
2、将当前的设计定为项目
在对用VHDL进行的设计进行编译/综合之前,必须将此文件设置为项目文件,做法是选择file->project->setprojecttocurrentfile。
在设定好项目之后,选择所用的可编程器件的型号。
具体做法是,在maxplusII中选择assign->device,devicefamily选择FLEX10K,device型号选择EPF10K10LC84-4。
3、对VHDL程序进行编译
选择MAXplusII->compiler,在点击start进行编译前,还应在菜单Interfaces->VHDLnetlistreadersetting中选择VHDL’1993。
4、时序仿真
为当前的VHDL设计建立波形仿真文件。
选择菜单file及new,然后在弹出的窗口中选择waveformeditorfile,此时就可以进行波形编辑。
在菜单中选择node->enternodesfromSNF,就可以引入本设计中所涉及的节点。
对所有输入节点的波形进行编辑,编辑好波形文件后,将波形文件保存为与VHDL源文件名称相同的文件,此时就可以进行仿真了。
选择maxplusII->simulator就可以进行仿真了。
通过分析仿真的输出波形可以判断项目
设计的正确性。
如果时序仿真正确,就可以进行下一步的引脚配置和程序下载了。
附录2EDA实验装置使用说明
DXT-B3型EDA实验开发系统是使用EPF10K10LC84-4为目标芯片的实验板;RAM型芯片,管脚与外围信号已连接好,必须按下表手工进行管脚分配。
表1管脚对应表(EPF10K10)
主要器件名称
信号名
兼容器件名称
信号名
F10K10A
引脚
输出发光管
L12R
25
输出发光管
L12G
24
输出发光管
L11
23
输出发光管
L10
22
输出发光管
L9
21
输出发光管
L8
19
输出发光管
L7
18
输出发光管
L6
65
输出发光管
L5
64
输出发光管
L4
62
输出发光管
L3
61
输出发光管
L2
60
输出发光管
L1G
59
输出发光管
L1R
58
数码管
M4
M4A
动态显示
MS1~MS8
七段显示
器信号
a
17
M4B
b
16
M4C
c
11
M4D
d
10
数码管
M3
M3A
e
9
M3B
f
8
M3C
g
7
M3D
dot
6
数码管
M2
M2A
MS5
5
M2B
MS6
3
M2C
MS7
83
M2D
MS8
81
数码管
M1
M1A
MS4
80
M1B
MS3
79
M1C
MS2
78
M1D
MS1
73
数据开关
K1
28
数据开关
K2
29
数据开关
K3
30
数据开关
K4
35
数据开关
K5
36
数据开关
K6
37
数据开关
K7
38
数据开关
K8
39
数据开关
K9
47
数据开关
K10
48
数据开关
K11
49
数据开关
K12
50
数据开关
K13
51
数据开关
K14
52
数据开关
K15
53
数据开关
K16
54
扬声器
SP
27
时钟信号
CP1
1
时钟信号
CP2
43
注:
1、千万不要选择自动分配管脚。
MAX+PLUSII在管脚分配时按照此表进行手动分配管脚,
2、在实验板上所有连线已经接好。
3、三色数码管:
有两个输入端;一个为红色,另一个为绿色,当两个脚同时亮时为黄色。
4、两路时钟信号源在实验板上。
表2实验板右上部CZ1开关控制功能表:
编号
控制名称
作用
实验选定
1
静态/动态
控制八个七段显示器
静态显示/动态显示
动态(左)
2
开关、小键盘控制
K1~K16和小键盘
D1~D16起作用/失效
按键(左)
3
电平/脉冲
(1)
K1~K8电平信号/脉冲信号
电平A(右)
4
电平/脉冲
(2)
K9~K16电平信号/脉冲信号
电平B(右)
5
L7~L12
L7~L12工作/不工作
L1~L6(右)
6
L1~L6
L1~L6工作/不工作
L7~L12(右)
7
232(T1-IN)
232工作
任意
8
232(R1-OUT)
232工作
任意
9
A/D信号OUT
A/D工作/不工作
任意
附录3 EDA技术实验报告范例
海南师范大学
物理与电子工程学院
实验报告
(20----20学年第学期)
课程名称:
实验名称:
专业班级:
学号:
姓名:
实验时间:
年月日(第周)
实验室名称:
EDA技术学时数:
节
注:
报告内容根据具体实验课程或实验项目的要求确定,一般包括实验目的、实验仪器、原理摘要、数据记录及结果分析等。
如纸张不够请自行加纸。
一、实验目的
1、通过实验让学生熟悉MAX+plusⅡ的VHDL文本设计流程全过程。
2、掌握组合逻辑电路的文本输入设计法。
3、通过对设计电路的仿真和硬件验证,让学生进一步了解加法器的功能。
二、实验内容
4位全加器可看作4个1位全加器串行构成。
可先设计一位全加器,并通过编译;然后用component语句进行元件说明,再利用元件例化语句就可以实现四位的全加器。
三、实验条件
1、开发软件:
MAX+plusⅡ10.2或QuartusⅡ。
2、实验设备:
DXT-B型EDA实验开发系统
3、拟用芯片:
EPF10K10LC84-4。
四、实验设计
1、系统的原理框图
一个4位的全加器可以由4个1位的全加器构成,全加器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相临的高位的最低进位输入信号cin相接。
先设计1位全加器,然后再通过下图的连接方法构成4位的全加器。
2、VHDL源程序
--1位全加器的描述
libraryieee;
useieee.std_logic_1164.all;
entityf_adder1is
port(a,b,cin:
instd_logic;
sum,cout:
outstd_logic);
endf_adder1;
architecturebehavioroff_adder1is
begin
process(a,b,cin)
variabletemp:
std_logic_vector(2downto0);
begin
temp:
=a&b&cin;
casetempis
when"000"=>sum<='0';cout<='0';
when"001"|"010"|"100"=>sum<='1';cout<='0';
when"011"|"101"|"110"=>sum<='0';cout<='1';
when"111"=>sum<='1';cout<='1';
whenothers=>sum<='X';cout<='X';
endcase;
endprocess;
endbehavior;
--4位全器的描述
libraryieee;
useieee.std_logic_1164.all;
entityf_adder4is
port(A,B:
instd_logic_vector(3downto0);
CIN:
instd_logic;
S:
outstd_logic_