EDA实验指导书.docx
- 文档编号:26173905
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:20
- 大小:53.61KB
EDA实验指导书.docx
《EDA实验指导书.docx》由会员分享,可在线阅读,更多相关《EDA实验指导书.docx(20页珍藏版)》请在冰豆网上搜索。
EDA实验指导书
实验一MAX+PLUSII软件的使用
[实验目的]掌握MAX+PLUSII软件的使用。
[实验内容]学习MAX+PLUSII软件的设计操作步骤。
[实验原理]MAX+PLUSII软件介绍。
MAX+PLUSII软件功能简介:
1原理图输入(GraphicEditor)
MAX+PLUSII软件具有图形输入能力,用户可以方便的使用图形编辑器输入电路图,图中的元器件可以调用元件库中元器件,除调用库中的元件以外,还可以调用该软件中的符号功能形成的功能块。
2硬件描述语言输入(TextEditor)
MAX+PLUSII软件中有一个集成的文本编辑器,该编辑器支持VHDL,AHDL和Verilog硬件描述语言的输入,同时还有一个语言模板使输入程序语言更加方便,该软件可以对这些程序语言进行编译并形成可以下载配置数据。
3波形编辑器(waveformEditor)
在进行逻辑电路的行为仿真时,需要在所设计电路的输入端加入一定的波形,波形编辑器可以生成和编辑仿真用的波形(*.SCF文件),使用该编辑器的工具条可以容易方便的生成波形和编辑波形。
4编译与仿真
当设计文件被编译好,并在波形编辑器中将输入波形编辑完毕后,就可以进行行为仿真了,通过仿真可以检验设计的逻辑关系是否准确。
5器件编程
当设计全部完成后,就可以将形成的目标文件下载到芯片中,实际验证设计的准确性。
[实验步骤]
设计过程如下:
1)输入项目文件名(File/Project/Name)
2)输入源文件(图形、VHDL、AHDL、Verlog和波形输入方式)
(Max+plusⅡ/graphicEditor,Max+plusⅡ/TextEditor,Max+plusⅡ/WaveformEditor)
3)指定CPLD型号(Assign/Device)
4)设置管脚、下载方式和逻辑综合的方式
(Assign/GlobalProjectDeviceOption,Assign/GlobalLogicSynthesis)
5)保存并检查源文件(File/project/Save&Check)
6)指定管脚(Max+plusⅡ/FloorplanEditor)
7)保存和编译源文件(File/project/Save&Compile)
8)生成波形文件(Max+plusⅡ/WaveformEditor)
9)仿真(Max+plusⅡ/Simulator)
10)下载配置(Max+plusⅡ/Programmer)
[实验报告要求]
不做要求。
实验二简单组合逻辑电路设计
[实验目的]1通过本实验提供的实例,掌握组合逻辑电路的设计方法。
2初步了解PLD设计的全过程和相关软件的使用。
[实验内容]
1设计一个3-8线译码器。
2设计一个8-3线优先编码器。
3设计一个8位数值比较器。
4设计一个优先权排队电路。
[实验原理]
1、3-8线译码器,8-3线优先编码器,8位数值比较器在数字电路教材中有详细的论述
此处略。
2、优先权排队电路,排队顺序为:
A=1最高优先级,B=1次高优先级,C=1最低优先
级输出端最高只能有一端为“1”,即只能是优先级较高的输入端所对应的输出端为“1”,即该输出端所对应的灯亮。
[实验步骤]
注:
本章的实验内容均以ALTERA公司的EPF10K10适配板为基础编写。
(一)3-8线译码器:
启动MaxplusⅡ软件,打开工程Test1/3-8decoder文件,下载3-8decoder.sof程序;(先插上下载线,再打开交流开关,然后打开直流开关APW1,最后打开通用下载模块的电源开关XPW1,点击软件中的下载编程或者配置按钮即可开始下载所需要的程序。
后面所有的下载操作步骤均一样将不在重复介绍)。
将拨码开关AS1
(2)(3)设置“ON”(当不使用数码管时AS1
(1)设置“ON”)。
实验现象:
拨位开关KD1~KD3分别代表图中的C、B、A;发光二极管LED1~LED8分别代表图中的LED1~LED8。
当C、B、A依次从000~111拨动时,发光二极管LED1~LED8依次从左至右被选亮。
(二)8-3线优先编码器:
启动MaxplusⅡ软件,打开工程Test1/encode文件,下载encode.sof程序;将拨码开关AS1
(2)(3)(4)设置“ON”;按照下表1所示的真值表完成该实验。
实验现象:
拨位开关KD1~KD8,KD16分别代表程序中的D0~D7,EIN;发光二极管LED1~LED5分别代表程序中的A2N,A1N,A0N,GSN,EON。
真值表输出数据中的‘1’代码所对应的发光二极管将会被点亮。
8-3线优先编码器真值表
输入
输出
EIN
D0
D1
D2
D3
D4
D5
D6
D7
A2N
A1N
A0N
GSN
EON
1
X
X
X
X
X
X
X
X
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
X
X
X
X
X
X
X
0
0
0
0
0
1
0
X
X
X
X
X
X
0
1
0
0
1
0
1
0
X
X
X
X
X
0
1
1
0
1
0
0
1
0
X
X
X
X
0
1
1
1
0
1
1
0
1
0
X
X
X
0
1
1
1
1
1
0
0
0
1
0
X
X
0
1
1
1
1
1
1
0
1
0
1
0
X
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1—高电平;0—低电平;X—任意,输入低电平有效。
(三)8位数值比较器:
启动MaxplusⅡ软件,打开工程Test1/bijiaoqi文件,下载bijiaoqi.sof程序。
将拨码开关AS1
(2)(3)(4)设置“ON”。
实验现象:
拨位开关KD1~KD16分别代表图中的A7~A0(从高到低),B7~B0(从高到低);发光二极管LED1~LED3分别代表图中的LAMP1~LAMP3。
当A[7..0]>B[7..0]时,LED3被点亮;当A[7..0]=B[7..0]时,LED2被点亮;当A[7..0]
(四)优先权排队电路:
启动MaxplusⅡ软件,打开工程Test1/gate2文件,下载gate2.sof程序。
拨码开关AS1
(2)(3)设置“ON”。
实验现象:
拨位开关KD1~KD3分别代表图中的A,B,C;发光二极管LED1~LED3分别代表图中的LAMP1~LAMP3,在该实验中A的优先级最高。
当KD1=‘1’时,发光二极管LED1被点亮;当KD1=‘0’,KD2=‘1’时,发光二极管LED2被点亮;当KD1=‘0’,KD2=‘0’,KD3=‘1’时,发光二极管LED3被点亮。
[实验报告]
要求用VHDL语言编程完成以上3-8译码器,8-3线优先编码器,8位数值比较器的设计。
比较图形输入法与语言输入法的优劣。
实验三简单时序电路设计
[实验目的]
1、掌握基本RS触发器、D触发器、JK触发器的逻辑功能。
2、掌握时序电路的设计方法。
3、熟悉触发器之间相互转换的方法。
[实验内容]
1通过模拟和仿真分析和验证三种触发器的逻辑功能及触发方式。
2设计基本RS触发器、D触发器、JK触发器。
3扩展任务:
设计其它触发器如T触发器,并研究其相互转化的方法。
[实验原理]
1、RS基本触发器:
(见相关数字电路教材,此处略)
2、D触发器:
正沿触发的D触发器的电路符号如下图所示。
它是一个正边沿触发的D触发器,有一个数据输入端d,一个时钟输入端clk和一个数据输出端q。
D触发器的真值表如下表所示。
从表中可以看到,D锁存器的输出端只有在正沿脉冲过后,输入端d的数据才可以传递到输出端q。
D锁存器真值表
数据输入端
时钟输入端
数据输出端
D
CLK
Q
X
0
不变
X
1
不变
0
↑
0
1
↑
1
3、JK触发器:
带有复位/置位功能的JK触发器电路符号如下图所示。
JK触发器的输入端有置位输入prn,复位输入clrn,控制输入j和k,时钟信号clk;输出端q和反向输出端NQ。
JK触发器的真值表如下表所示。
JK触发器真值表
输入端
输出端
PRN
CLRN
CLK
J
K
Q
NQ
0
1
X
X
X
1
0
1
0
X
X
X
0
1
0
0
X
X
X
X
X
1
1
↑
0
1
0
1
1
1
↑
1
1
翻
转
1
1
↑
0
0
q0
!
q0
1
1
↑
1
0
1
0
[实验步骤]
(一)RS基本触发器:
启动MaxplusⅡ软件,打开工程Test3/RS文件,下载rs.sof程序;
将拨码开关AS1
(2)(3)设置“ON”;
实验现象:
拨位开关KD1~KD2分别代表图中的R、S输入端;发光二极管LED1~LED2分别代表图中的Q、NQ输出端。
当拨位开关按照R、S触发器真值表的输入值拨动时,发光二极管则按照真值表的输出值显示(‘1’亮;‘0’灭)。
(二)D触发器:
启动MaxplusⅡ软件,打开工程Test3/DFF文件,下载dff.sof程序;
将拨码开关AS1
(2)(3)设置“ON”;
实验现象:
拨位开关KD1代表图中的D输入端;发光二极管LED1~LED2分别代表图中的Q、NQ输出端;输入时钟clk接1Hz档(TJ1处)。
当拨位开关(KD1)按照D触发器真值表的输入值拨动时,发光二极管则按照真值表的输出值显示(‘1’亮;‘0’灭)。
(三)JK触发器:
启动MaxplusⅡ软件,打开工程Test3/JKFF文件,下载jkff.sof程序;
将拨码开关AS1
(2)(3)设置“ON”;
实验现象:
拨位开关KD1~KD3分别代表图中的PRN置位端和J、K输入端;轻触开关K17代表图中的CLRN清零端;发光二极管LED1~LED2分别代表图中的Q、NQ输出端;输入时钟clk接1Hz档(TJ1处)。
当拨位开关(J、K和PRN)、轻触开关(K17)按照JK触发器真值表的输入值拨动时,发光二极管则按照真值表的输出值显示(‘1’亮;‘0’灭)。
[实验报告]
要求用VHDL语言编程完成D触发器和JK触发器的设计。
实验四LED显示译码电路的设计
[实验目的]
1、实现十六进制计数显示。
2、实现常见英语字母显示。
[实验内容]
1.编写一个简单的0~F轮换显示的十六进制计数电路。
2.编写一个显示英文字母A、B、C、D、E、F、H、P、L的轮换显示电路。
3.通过仿真或观察波形验证设计电路的正确性。
[实验原理]
用数码管除了可以显示0~9的阿拉伯数字外,还可以显示一些英语字母。
数码管由7段显示输出,利用7个位的组合输出,就可以形成26个英语字母的对应显示。
表2显示常见的字母与7段显示关系。
段字母
a
b
c
d
e
f
g
A
1
1
1
0
1
1
1
B
0
0
1
1
1
1
1
C
1
0
0
1
1
1
0
D
0
1
1
1
1
0
1
E
1
0
0
1
1
1
1
F
1
0
0
0
1
1
1
H
0
1
1
0
1
1
1
P
1
1
0
0
1
1
1
L
0
0
0
1
1
1
0
表2常见的字母与7段显示关系
[实验步骤]
(一)0~F计数显示电路:
1、启动MaxplusⅡ软件,打开工程Test4/display1文件,下载display1.sof程序;
2、将拨码开关AS1全部设置为“OFF”;
实验现象:
将计数频率设置为1Hz(TJ1处,数码管显示的数值每隔一秒变化一次),数码管SM5~SM8同时循环显示0~F。
当改变计数频率时,先按一下复位键(K17)然后再显示。
(二)英语字母显示电路:
1、启动MaxplusⅡ软件,打开工程Test4/display2文件,下载display2.sof程序;
2、将拨码开关AS1
(1)设置为“ON”;
实验现象:
将计数频率设置为1Hz(TJ1处,数码管显示的数值每隔一秒变化一次),扫描频率设置为32.768KHz(TJ5处);数码管SM5~SM8同时循环显示A、B、C、D、E、F、H、L、O。
[实验报告]
要求用VHDL语言编程完成十六进制数LED显示译码器的设计。
实验五数字钟设计
[实验目的]
1掌握多位计数器相连的设计方法。
2掌握十进制、六十进制、二十四进制计数器的设计方法。
3掌握喇叭的驱动方法。
4LED灯的花样显示。
5掌握CPLD的层次化设计方法。
[实验内容]
1、具有时、分、秒计数显示功能,以24小时循环计时。
2、具有清零,调节小时、分钟的功能。
3、具有整点报时功能,整点报时的同时LED灯花样显示。
[实验原理]
在同一块FPGA芯片EPF10K1084-4上集成了如下电路模块:
1时钟计数:
秒——60进制BCD码计数;分——60进制BCD码计数;
时——24进制BCD码计数;
同时整个计数器有清零,调分,调时功能。
在接近整点时间能提供报时信号。
2有驱动8位七段共阴极扫描数码管的片选驱动信号输出和七段字行译码输出。
3喇叭在整点时有报时驱动信号产生。
4LED灯根据设计在整点时有花样显示信号产生。
[实验步骤]
1、启动MaxplusⅡ软件,打开工程Test9/time文件,下载time.sof程序;
2、将拨码开关AS1
(1)
(2)(3)设置为“ON”;
实验现象:
K1代表调节分钟,K2代表调节小时;数码管SM3~SM8显示具体时间;K17为清零信号RESET(低电平有效);发光二极管LED1~LED3分别代表程序中的LAMP0~LAMP2信号;另外将计数频率(CLK)设置为1Hz(TJ1处,数码管显示的数值每隔一秒变化一次),报时频率(SPCLK)设置为1024Hz(TJ5处)。
当程序下载完毕后数码管从00时00分00秒开始计时,通过按键K1可以调节时钟的分钟显示,通过按键K2可以调节时钟的小时显示(调节时钟时应将按键所对应的拨位开关KD1和KD2拨向下;拨位开关KD1和KD2拨向上时,数字钟正常计时)。
当时钟走到整点时,喇叭开始鸣叫(1分钟,通过电位器SW1可以调节音量的大小),发光二极管LED1~LED3循环闪烁。
[实验报告]
1画出整个数字钟电路的结构框图。
2用VHDL语言完成十进制、六十进制、二十四进制计数器的设计。
实验六频率计设计
[实验目的]
1、掌握多位计数器相连的设计方法。
2、掌握频率计的工作原理。
3、掌握CPLD技术的层次化设计方法。
[实验内容]
设计一个频率计,其测频范围为1HZ [实验原理] 本实验所设计的频率计由三个模块组成: 测频控制信号发生器TESTCTL、8个有时钟使能的十进制计数器CNT10和一个32位锁存器REG32B。 以下分别叙述频率计各个逻辑模块的功能与设计方法。 测频控制信号发生器的设计要求: 频率测量的基本原理是计算每秒钟内待测信号的脉冲个数。 这就要求TESTCTL的计数使能信号TSTEN能产生一个1秒脉宽的周期信号,并对频率计的每一计数器CNT10的ENA使能端进行同步控制。 当TSTEN为高电平时,允许计数;为低电平时停止计数,并保持其所计的脉冲个数。 在停止计数期间,首先需要一个锁存信号LOAD的上跳沿将计数器在前1秒钟的计数值锁存进32位锁存器REG32B中,并由外部的7段译码器译出,并稳定显示。 设置锁存器的好处是,显示的数据稳定,不会由于周期性的清零信号而不断闪烁。 锁存信号之后,必须有一个清零信号CLR_CNT对计数器进行清零,为下1秒钟的计数操作作准备。 测频控制信号发生器的工作时序如下图所示。 为了产生这个时序图,需首先建立一个由D触发器构成的二分频器,在每次时钟CLK上升沿到来时其值翻转。 RST CLK TSTEN LOAD CLR_CNT 其中控制信号时钟CLK的频率取1HZ,那么信号TSTEN的脉宽恰好为1S,可以用作计数闸门信号。 然后根据测频的时序要求,可得出信号LOAD和CLR_CNT的逻辑描述。 由上图可见,在计数完成后,即计数使能信号TSTEN在1S的高电平后,利用其反相值的上跳沿产生一个锁存信号LOAD,0.5S后,CLR_CNT产生一个清零信号上跳沿。 高质量的测频控制信号发生器的设计十分重要,设计中要对其进行仔细的实时防真,防止可能产生的毛刺。 寄存器REG32B设计要求: 若已有32位BCD码存在于此模块的输入口,在信号LOAD的上升沿后即被锁存到寄存器REG32B的内部,并由REG32B的输出端输出,然后由实验板上的7段译码器译成能在数码管上显示输出的相应数值。 计数器CNT10设计要求: 此十进制计数器的特殊之处是,有一时钟使能输入端ENA,用于锁定计数值。 当高电平时计数允许,低电平时禁止计数。 [实验步骤] 1、启动MaxplusⅡ软件,打开工程Test10/frequency文件,下载fry.sof程序; 2、将拨码开关AS1 (1)设置为“ON”; 实验现象: 将时钟信号CLK设置为1Hz(TJ1处),待测频率fryin从时钟源TJ4~TJ6中选择。 当程序下载完毕后,从时钟源TJ4~TJ6输入一方波信号,数码管则将显示该信号的频率值(频率高时略有误差)。 [实验报告] 1、画出设计的顶层原理图。 2、对照频率计波形图分析电路工作原理。 3、写出各功能模块的VHDL语言源程序,并且给出相应的注释。 实验七乐曲演奏电路设计 [实验目的] 1、了解乐曲演奏电路的原理。 2、掌握利用可编程逻辑器件实现乐曲演奏的设计方法。 [实验内容] 用VHDL语言设计一个“梁祝”乐曲演奏电路。 [实验原理] 与利用微处理器(CPU或MCU)来实现乐曲演奏相比,以纯硬件完成乐曲演奏电路的逻辑要复杂得多,如果不借助于功能强大的EDA工具和硬件描述语言,仅凭传统的数字逻辑技术,即使最简单的演奏电路也难以实现。 本实验设计项目作为“梁祝”乐曲演奏电路的实现,其工作原理是这样的: 我们知道,组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的两个基本要素,问题是如何来获取这两个要素所对应的数值以及通过纯硬件的手段来利用这些数值实现所希望乐曲的演奏效果。 本实验设计由三个模块组成,其每一个模块的功能如下所述。 模块一为一个数控分频器SPEAKERA,其CLK端输入一具有较高频率(本实验为12MHz)的信号,通过SPEAKERA分频后由SPKOUT输出。 由于直接从数控分频器中出来的输出信号是脉宽极窄的脉冲式信号,为了有利于驱动喇叭,需另加一个D触发器以均衡其占空比,但这时的频率将是原来的1/2。 SPEAKERA对CLK输入信号的分频比由11位预置数TONE[10..0]决定。 SPKOUT的输出频率将决定每一音符的音调,这样分频计数器的预置值TONE[10..0]与SPKOUT的输出频率就有了对应关系。 例如在TONETABA模块中若取TONE[10..0]=1036,将发音符为“3”音的信号频率。 模块二TONETABA是确定乐曲的速度以及每个音符的节拍数。 TONETABA的功能首先是为SPEAKERA提供决定所发音符的分频预置数,而此数在SPEAKERA输入口停留的时间即为此音符的节拍值。 模块TONETABA是乐曲简谱码对应的分频预置数查表电路,其中设置了“梁祝”乐曲全部音符所对应的分频预置数,共13个,每一音符的停留时间由音乐节拍和音调发生器模块NOTETABS的CLK的输入频率决定,在此为4Hz。 这13个值的输出由对应于TONETABA的4位输入值Index[3..0]确定,而Index[3..0]最多有16种可选值。 输向TONETABA中的值ToneIndex[3..0]的输出值与持续的时间由模块NOTETABS决定。 模块三NOTETABS为音调发生器,在NOTETABS中设置了一个8位二进制计数器(计数最大值为138),这个计数器的计数频率选为4Hz,即每一计数值的停留时间为0.25S,恰为当全音符设为1S时,四四拍的4分音符的持续时间。 例如,NOTETABS在以下的VHDL逻辑描述中,“梁祝”乐曲的第一个音符为“3”,此音在逻辑中停留了4个时钟节拍,即为1S时间,相应地所对应的“3”音符分频预置值为1036在SPEAKERA的输入端停留了1S。 随着NOTETABS中的计数器按4Hz的时钟频率作加法计数时,“梁祝”乐曲就开始连续自然地演奏起来了。 下表为简谱中音名与频率的关系: 音名 频率(HZ) 音名 频率(HZ) 音名 频率(HZ) 低音1 261.63 中音1 523.25 高音1 1046.50 低音2 293.67 中音2 587.33 高音2 1174.66 低音3 329.63 中音3 659.25 高音3 1381.51 低音4 349.23 中音4 698.46 高音4 1396.92 低音5 391.99 中音5 783.99 高音5 1567.98 低音6 440 中音6 880 高音6 1760 低音7 439.88 中音7 987.76 高音7 1975.52 [实验步骤] 1、启动MaxplusⅡ软件,打开工程Test13/songer文件,下载songer.sof程序; 2、将拨码开关AS1 (1)设置为“ON”; 实验现象: 将程序中的CLK4HZ时钟信号设置在时钟源4Hz(TJ1)处,CLK12MHZ时钟信号设置在时钟源12MHz(TJ6)处,下载完毕后就开始连续演奏“梁祝”乐曲,并且可以通过电位器SW1来调节喇叭声音的大小。 [实验报告] 1、画出设计的原理图。 2、写出原理图中各功能模块的VHDL语言源程序并加上注释。 实验八八人抢答器 [实验目的] 1、熟悉多路抢答器的工作原理。 2、了解原理图、VHDL语言层次化设计方法。 [实验内容] 设计一个八人抢答器电路。 [实验原理] 本实验要实现的八人抢答器的功能是: 1、同时可供8人参加比赛,从1开始给他们编号,各用一个抢答按钮,第一个按下抢 答器的参赛者,数码管将显示对应的数字并报警。 2、给主持人设置一个控制开关,用来控制系统的清零和抢答的开始。 3、抢答器具有数据锁存和显示的功能。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 实验 指导书