数电实验教程EDA技术应用Word格式.docx
- 文档编号:17864554
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:73
- 大小:3.04MB
数电实验教程EDA技术应用Word格式.docx
《数电实验教程EDA技术应用Word格式.docx》由会员分享,可在线阅读,更多相关《数电实验教程EDA技术应用Word格式.docx(73页珍藏版)》请在冰豆网上搜索。
实验原理、过程、仿真波形,以及硬件测试结果;
思考题。
六、思考题
在实验一的启发下,如何用原理图输入设计法实现4位全加器?
实验二组合逻辑3-8译码器的设计
设计并实现一个3-8译码器;
;
了解VHDL设计技术。
(1)译码器设计
常用的译码器有:
2-4译码器、3-8译码器、4-16译码器,下面我们用一个3-8译码器的设计来介绍译码器的设计方法。
3-8译码器逻辑符号如图4-2-1所示,其真值表如表4-2-1。
图4-2-13-8译码器逻辑符号
表4-2-13-8译码器真值表
输入
输出
G1
G2A
G2B
A
B
C
Y0N
Y1N
Y2N
Y3N
Y4N
Y5N
Y6N
Y7N
X
(2)VHDL程序基本结构
库(Library)、实体(Entity)、结构体(Architecture)----具体参见附录B。
(1)设计2-4译码器的VHDL程序,用QuartusII对其进行编辑、编译、仿真,给出时序仿真波形。
(2)设计3-8译码器的VHDL程序,用QuartusII对其进行编辑、编译、仿真,给出时序仿真波形;
并进行引脚锁定、硬件下载测试。
引脚锁定以及硬件下载测试:
功能选择位M[3..0]状态为0001,即16位拨码SW1—SW16被选中输出到总线D[15..0]。
输入信号A、B、C、G1、G2A、G2B分别对应SW1—SW6,其中A、B、C代表三路数据输入,G1、G2A、G2B代表使能控制端;
输出信号Y0~Y7对应IO9—IO16,代表8路译码数据输出。
实验接线:
IO9—IO16用导线连接L1—L8,LED高电平点亮,改变拨码开关的状态,参照表4-2-1,观察实验结果。
(1)阅读附录B,掌握VHDL基本设计;
(2)理解译码器设计原理;
(3)完成2-4、3-8译码器的VHDL源程序的编写,并逐行加以注释;
(4)理解译码器使能控制端、地址输入端和译码输出端的关系。
(1)实验报告包括:
实验原理、程序设计、软件编译、仿真波形和分析结果、锁定的引脚号,以及硬件测试结果。
(2)对VHDL源程序作必要的注释;
(3)完成思考题。
(1)用VHDL语言进行电路设计,文本文件存盘时,应注意哪些问题?
(2)讨论语句WHENOTHERS=>
Y<
="
XXXXXXXX"
的作用。
如果删除该语句,会产生什么错误?
七、参考程序
【例4-2-1】
LIBRARYieee;
USEieee.std_logic_1164.ALL;
ENTITYdecoder3_8IS
PORT(
A,B,C,G1,G2A,G2B:
INSTD_LOGIC;
Y:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDdecoder3_8;
ARCHITECTUREfunOFdecoder3_8IS
SIGNALindata:
STD_LOGIC_VECTOR(2DOWNTO0);
BEGIN
indata<
=C&
B&
A;
encoder:
PROCESS(indata,G1,G2A,G2B)
BEGIN
IF(G1='
1'
ANDG2A='
0'
ANDG2B='
)THEN
CASEindataIS
WHEN"
000"
=>
11111110"
;
001"
11111101"
010"
11111011"
011"
11110111"
100"
11101111"
101"
11011111"
110"
10111111"
111"
01111111"
WHENOTHERS=>
ENDCASE;
ELSE
Y<
11111111"
ENDIF;
ENDPROCESSencoder;
ENDfun;
实验三7段数码显示译码器设计
学习7段数码显示译码器设计,要求在时钟信号的控制下,使8位数码管动态刷新显示0—F;
(1)共阴数码管及其电路原理
7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制数的译码显示,最方便的方法就是利用VHDL译码程序在FPGA或CPLD中实现。
本项实验很容易实现这一目的,但为了简化过程,首先完成7段BCD码译码器的设计。
例4-1作为7段BCD码译码器的设计,输出信号LED7S的7位分别接如图4-1数码管的7个段,高位在左,低位在右。
例如当LED7S输出为"
1101101"
时,数码管的7个段:
g、f、e、d、c、b、a分别接1、1、0、1、1、0、1,接有高电平的段发亮,于是数码管显示“5”。
图4-3-1共阴数码管及其电路
库(Library)、实体(Entity)、结构体(Architecture)----具体参见附录B
三、实验内容
(1)设计“十进制BCD码”7段数码显示译码器的VHDL程序,用QuartusII对其进行编辑、编译、仿真,给出时序仿真波形。
(2)设计“16进制”7段数码显示译码器的VHDL程序,用QuartusII对其进行编辑、编译、仿真,给出时序仿真波形;
功能选择位M[3..0]状态均为0010,左端8个数码管,低8位为7位段总加小数点选取位,高8位为8个数码管com端选取,即如果要选取数码管0,则发送总线值为:
1111111011111111,如要选取数码管1,则发送总线值为:
1111110111111111,此时所选数码管7段和DP位将全部亮。
CP对应IO3;
SEGOUT、SELOUT分别对应数据总线的低8位与高8位;
NUMOUT对应IO9-IO12。
用导线连接IO3与ADJ_CLK,调整拨码开关SW17-SW20,使输出频率为5MHz;
用导线将IO9-IO12连到L1-L4。
(2)理解7段数码显示译码器设计原理;
(3)完成十进制BCD码、16进制7段译码器的VHDL源程序的编写,并逐行加以注释;
(4)理解数码显示与输入(A)、输出(LED7S)的关系。
(2)讨论语句WHENOTHERS=>
NULL的作用。
扫描频率超过眼睛的视觉暂留频率24HZ以上就可以达到点亮单个显示,却能享有6个同时显示的视觉效果,而且显示也不闪烁。
当我们输入频率为5MHZ时,我们通过加法计数器来产生一个约300HZ的信号,并且由它来产生位选信号,参考程序段如例4-3-1:
【例4-3-1】
PROCESS(CP)--计数器计数
Begin
IFCP'
EventANDCP='
then
Q<
=Q+1;
ENDPROCESS;
NUM<
=Q(24DOWNTO21);
--about1Hz
S<
=Q(15DOWNTO13);
--about300Hz
--扫描信号
SEL<
="
WHENS=0ELSE
"
WHENS=1ELSE
WHENS=2ELSE
WHENS=3ELSE
WHENS=4ELSE
WHENS=5ELSE
111111"
由计数器Q引出到S信号,若时钟信号为5MHZ时,Q13得到的信号频率约300HZ,再将它分给扫描信号,最后每个显示器扫描信号频率为:
300/6=50HZ>
24HZ,所以不会有闪烁情形产生。
【例4-3-2】
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYDECL7SIS
PORT(A:
INSTD_LOGIC_VECTOR(3DOWNTO0);
LED7S:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDDECL7S;
ARCHITECTUREoneOFDECL7SIS
PROCESS(A)
CASEAIS
WHEN"
0000"
=>
LED7S<
="
0111111"
;
0001"
0000110"
0010"
1011011"
0011"
1001111"
0100"
1100110"
0101"
0110"
1111101"
0111"
0000111"
1000"
1111111"
1001"
1101111"
WHENOTHERS=>
NULL;
ENDCASE;
ENDPROCESS;
ENDone;
实验四4位加法计数器设计
学习时序逻辑电路的设计、仿真和硬件测试;
加深理解VHDL设计技术。
图4-4-1是一含计数使能、异步复位和计数值并行预置功能的4位加法计数器,其VHDL描述参见例4-3-1。
由图4-4-1所示,图中间是4位锁存器(即D触发器);
RST是异步清零信号,高电平有效;
CLK是锁存信号;
D[3..0]是4位数据输入端;
PST是同步并行预置信号,高电平有效,置数值为Data[3:
0];
Outy[3:
0]是计数值输出;
Cout是计数溢出信号。
①RST为异步清零信号,高电平有效,一旦RST=1,4位锁存器输出状态复位为“0000”;
②ENA为同步计数使能信号,当CLK为上升沿时
●当ENA=“1”时,加法计数,CQI=CQI+1;
●当ENA=“0”时,保持原数,CQI=CQI;
③PST为同步并行预置信号,当CLK为上升沿时
如PST='
时,进行并行预置,4位锁存器输出状态预置为Data[3:
0]。
图4-4-1含计数使能、异步复位和计数值并行预置功能的4位加法计数器
(1)对例4-4-1含计数使能、异步复位和计数值并行预置功能的4位加法计数器的VHDL设计,说明例中各语句的作用,并详细描述示例的功能特点。
(2)在例4-4-1的基础上进行修改,完成含异步清0和同步时钟使能功能的十进制加法计数器的VHDL设计,在QuartusII上对其进行编辑、编译、综合、适配、时序仿真、引脚锁定以及硬件下载测试。
功能选择位M[3..0]状态为0001,即16位拨码SW1—SW16被选中输出到总线D[15..0],用SW1(D0)控制ENA;
用SW2(D1)控制RST;
Outy是计数输出,对应IO12—IO9(用导线连接L1—L4,高位靠左),计数溢出Cout对应IO13,(用导线连接L5);
时钟CLK对应IO3,用导线将ADJ_CLK与IO3相连,调节拨码SW17—SW20使输出1Hz信号。
引脚锁定后进行重新编译、下载和硬件测试实验。
(1)阅读附录B,掌握时序逻辑电路的VHDL设计;
(2)完成实验内容
(1)、
(2)的VHDL源程序的编写,并逐行加以注释。
(1)实验原理、设计过程、编译仿真波形和分析结果,以及硬件测试实验结果写进实验报告。
(2)附加实验内容的VHDL设计。
(1)在例4-4-1中是否可以不定义信号CQI,而直接用输出端口信号完成加法运算,即:
OUTY<
=OUTY+1?
(2)修改例4-4-1,用进程实现进位信号的检出。
【例4-4-1】
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCNT4BIS
PORT(CLK:
RST:
ENA:
PST:
DATA:
INSTD_LOGIC_VECTOR(3DOWNTO0);
OUTY:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
COUT:
OUTSTD_LOGIC;
M:
OUTSTD_LOGIC_VECTOR(3DOWNTO0)
);
ENDCNT4B;
ARCHITECTUREbehavOFCNT4BIS
SIGNALCQI:
STD_LOGIC_VECTOR(3DOWNTO0);
M<
P_REG:
PROCESS(CLK,RST,ENA,PST)
IFRST='
THENCQI<
ELSIFCLK'
EVENTANDCLK='
THEN
IFPST='
=DATA;
ELSIFENA='
=CQI+1;
ELSECQI<
=CQI;
ENDIF;
=CQI;
ENDPROCESSP_REG;
COUT<
=CQI(0)ANDCQI
(1)ANDCQI
(2)ANDCQI(3);
--进位输出
ENDbehav;
实验五简易交通信号灯控制电路设计
(1)了解交通灯的亮灭规律;
(2)了解交通灯控制器的工作原理;
(3)
熟悉VHDL语言编程,了解实际设计中的优化方案。
交通灯的显示有很多方式,如十字路口、丁字路口等,而对于同一个路口又有很多不同的显示要求,比如十字路口,车子如果只要东西和南北方向通行就很简单,而如果车子可以左右转弯的通行就比较复杂,本实验仅针对最简单的南北和东西直行的情况。
要完成本实验,首先必须了解交通灯的亮灭规律。
本实验需要用到实验箱上交通灯模块中的发光二极管,即红、黄、绿各三个。
依人们的交通常规,“红灯停,绿灯行,黄灯提醒”。
其交通灯的亮灭规律为:
初始态是两个路口的红灯全亮,之后东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。
闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。
闪烁若干次后,再切换到东西路口方向,重复上述过程。
本实验要设计一个简单的交通灯控制器,交通灯显示用实验箱的交通灯模块来显示。
系统时钟选择时钟模块的1Hz时钟,黄灯闪烁时钟要求为1Hz,红灯15s,黄灯5s,绿灯15s。
系统中用CPU板上的复位按键进行复位。
CLK_1,即对应IO3(用导线连接IO3与ADJ_CLK,调整SW17-SW20,使输出频率为1Hz)
(1)认真阅读实验原理,掌握交通灯控制器的工作原理。
(2)编写VHDL程序,并加以注释。
给出设计的完整实验报告:
实验原理、交通灯控制器的设计过程、编译仿真波形和硬件测试结果。
实验六多功能数字电子钟设计
一、设计要求
(1)具有时,分,秒,计数显示功能,以24小时循环计时;
(2)具有清零,调节小时、分钟功能;
(3)具有整点报时功能,整点报时的同时LED灯花样显示。
二、实验目的
(1)掌握多位计数器相连的设计方法;
(2)掌握十进制,六进制,二十四进制计数器的设计方法;
(3)继续巩固多位共阴级扫描显示数码管的驱动,及编码;
(4)掌握扬声器的驱动;
(5)LED灯的花样显示;
(6)掌握EPLD技术的层次化设计方法。
三、实验原理
(1)时钟计数:
秒——60进制BCD码计数;
分——60进制BCDD码计数;
时——24进制BCDD码计数;
整个计数器有清零,调分,调时功能,在接近整数时间能提供报时信号。
(2)具有驱动8位八段共阴扫描数码管的片选驱动信号输出和八段字形译码输出,编码和扫描部分可参照前面实验;
(3)扬声器在整点时有报时驱动信号产生;
(4)LED灯在整点时有花样显示信号产生。
四、实验内容
(1)根据电路持点,可在教师指导下用层次设计概念,将此设计任务分成若干模块,规定每一模块的功能和各模块之间的接口,让几个学生分做和调试其中之一,然后再将各模块合起来联试,以培养学生之间的合作精神,同时加深层次化设计概念。
(2)了解软件的元件管理深层含义,以及模块元件之间的连接概念。
了解如何融合不同目录下的统一设计。
模块说明:
各种进制的计数及时钟控制模块(10进制、6进制、24进制);
扫描分时显示,译码模块;
彩灯、扬声器编码模块;
各模块均由VHDL语言编写,连接示意图如图4-6-1所示。
图4-6-1数字钟各模块连接示意图
五、实验连线
◎输入接口:
(1)代表清零,调时,调分信号RESET,SETHOUR,SETMIN的管脚已经分别连接按键开关。
(2)代表计数时钟信号CLK和扫描时钟信号CKDSP的管脚分别已经同1HZ时钟源和32HZ(或更高)时钟源相连。
(3)Reset键为低电平复位,已经接上。
◎输出接口:
(1)代表扫描显示的驱动信号管脚SCAN2,SCAN1,SCAN0已经接到实验箱上的SCAN0~SCAN2,A…G接八位数码管显示模块的A~G。
(2)代表花样LED灯显示的信号管脚LAMP0…LAMP2已经同3个LED灯相连。
代表到时LED灯闪烁提示的ENHOUR接LED灯。
SETHOUR、SETMIN分别对应CPU板上的PB0、PB1(有些CPU板对应的标识是SW1、SW2)、RESET对应CPU板上的RESET、CLKDSP对应CPU板上的50MHz固定晶振输入、LAMP对应IO9-IO11、CLK,对应IO3。
功能选择位M[3..0]状态为0010,左端8个数码管,低8位为7位段加小数点选取位,高8位为8个数码管com端选取,即如果要选取数码管0,则发送总线值为:
实验接线:
用导线连接IO3与ADJ_CLK,调整SW17-SW20,使输出频率为1Hz;
IO9-IO11接到L1-L3上;
IO5接到蜂鸣器的BUZZER控制端口。
按下PB0、PB1(有些CPU板对应的标识是SW1、SW2)可以调整时钟,分钟。
六、预习要
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 教程 EDA 技术 应用