数电实验教程EDA技术应用.docx

上传人:b****4 文档编号:4911163 上传时间:2022-12-11 格式:DOCX 页数:73 大小:3.04MB
下载 相关 举报
数电实验教程EDA技术应用.docx_第1页
第1页 / 共73页
数电实验教程EDA技术应用.docx_第2页
第2页 / 共73页
数电实验教程EDA技术应用.docx_第3页
第3页 / 共73页
数电实验教程EDA技术应用.docx_第4页
第4页 / 共73页
数电实验教程EDA技术应用.docx_第5页
第5页 / 共73页
点击查看更多>>
下载资源
资源描述

数电实验教程EDA技术应用.docx

《数电实验教程EDA技术应用.docx》由会员分享,可在线阅读,更多相关《数电实验教程EDA技术应用.docx(73页珍藏版)》请在冰豆网上搜索。

数电实验教程EDA技术应用.docx

数电实验教程EDA技术应用

第四篇EDA技术应用

实验一1位全加器原理图输入设计

一、实验目的

学习QuartusII原理图输入设计方法和步骤,掌握应用EL-SOPC4000实验系统,将设计项目编程下载到可编程器件,并进行硬测试,验证设计的正确性。

二、实验原理

1位全加器可以用两个半加器及一个或门连接而成,因此需首先完成半加器的设计。

(1)半加器原理图设计

半加器只考虑了两个加数(a、b)本身,而没有考虑由低位来的进位,所以称为“半加”,输出so表示和数,co表示进位数。

一位半加器的加法运算可用真值表4-1-1来表示:

表4-1-1半加器的真值表

被加数a

加数b

和数so

进位数co

0

0

1

1

0

1

0

1

0

1

1

0

0

0

0

1

由真值表得逻辑表示式为:

由逻辑表达式可画出半加器原理图。

(2)全加器原理图设计

全加器能进行被加数(ain)、加数(bin)和由低位来的进位(cin)三者相加,得出求和结果(sum)并给出该位的进位信号(cout)。

一位全加器的加法运算可用如下真值表4-1-2来表示:

表4-1-2全加器的真值表

被加数ain

加数bin

低位进位cin

和数sum

进位数cout

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

0

1

1

0

1

0

0

1

0

0

0

1

0

1

1

1

由真值表得逻辑表示式为:

由逻辑表达式可利用封装的半加器元件来画出全加器原理图。

三、实验内容

(1)利用QuartusII进行1位半加器的原理图输入设计。

对其进行编辑、编译、综合、适配、仿真,并且进行元件封装入库。

(2)利用半加器元件进行1位全加器的原理图输入设计。

对其进行编辑、编译、综合、适配、仿真,并进行引脚锁定以及硬件下载测试。

四、预习要求

(1)完成半加器和全加器的原理图设计;

(2)阅读附录A,了解EL-SOPC4000实验系统的使用方法。

(3)阅读附录B,掌握QuartusII设计与实验方法。

五、报告要求

实验报告包括:

实验原理、过程、仿真波形,以及硬件测试结果;思考题。

六、思考题

在实验一的启发下,如何用原理图输入设计法实现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

0

X

X

X

X

X

1

1

1

1

1

1

1

1

1

0

0

0

0

0

0

1

1

1

1

1

1

1

1

0

0

0

0

1

1

0

1

1

1

1

1

1

1

0

0

0

1

0

1

1

0

1

1

1

1

1

1

0

0

0

1

1

1

1

1

0

1

1

1

1

1

0

0

1

0

0

1

1

1

1

0

1

1

1

1

0

0

1

0

1

1

1

1

1

1

0

1

1

1

0

0

1

1

0

1

1

1

1

1

1

0

1

1

0

0

1

1

1

1

1

1

1

1

1

1

0

(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='0')THEN

CASEindataIS

WHEN"000"=>Y<="11111110";

WHEN"001"=>Y<="11111101";

WHEN"010"=>Y<="11111011";

WHEN"011"=>Y<="11110111";

WHEN"100"=>Y<="11101111";

WHEN"101"=>Y<="11011111";

WHEN"110"=>Y<="10111111";

WHEN"111"=>Y<="01111111";

WHENOTHERS=>Y<="XXXXXXXX";

ENDCASE;

ELSE

Y<="11111111";

ENDIF;

ENDPROCESSencoder;

ENDfun;

 

实验三7段数码显示译码器设计

一、实验目的

学习7段数码显示译码器设计,要求在时钟信号的控制下,使8位数码管动态刷新显示0—F;了解VHDL设计技术。

二、实验原理

(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共阴数码管及其电路

(2)VHDL程序基本结构

库(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。

四、预习要求

(1)阅读附录B,掌握VHDL基本设计;

(2)理解7段数码显示译码器设计原理;

(3)完成十进制BCD码、16进制7段译码器的VHDL源程序的编写,并逐行加以注释;

(4)理解数码显示与输入(A)、输出(LED7S)的关系。

五、报告要求

(1)实验报告包括:

实验原理、程序设计、软件编译、仿真波形和分析结果、锁定的引脚号,以及硬件测试结果。

(2)对VHDL源程序作必要的注释;

(3)完成思考题。

六、思考题

(1)用VHDL语言进行电路设计,文本文件存盘时,应注意哪些问题?

(2)讨论语句WHENOTHERS=>NULL的作用。

如果删除该语句,会产生什么错误?

七、参考程序

扫描频率超过眼睛的视觉暂留频率24HZ以上就可以达到点亮单个显示,却能享有6个同时显示的视觉效果,而且显示也不闪烁。

当我们输入频率为5MHZ时,我们通过加法计数器来产生一个约300HZ的信号,并且由它来产生位选信号,参考程序段如例4-3-1:

【例4-3-1】

PROCESS(CP)--计数器计数

Begin

IFCP'EventANDCP='1'then

Q<=Q+1;

ENDIF;

ENDPROCESS;

NUM<=Q(24DOWNTO21);--about1Hz

S<=Q(15DOWNTO13);--about300Hz

--扫描信号

SEL<="000"WHENS=0ELSE

"001"WHENS=1ELSE

"010"WHENS=2ELSE

"011"WHENS=3ELSE

"100"WHENS=4ELSE

"101"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

BEGIN

PROCESS(A)

BEGIN

CASEAIS

WHEN"0000"=>LED7S<="0111111";

WHEN"0001"=>LED7S<="0000110";

WHEN"0010"=>LED7S<="1011011";

WHEN"0011"=>LED7S<="1001111";

WHEN"0100"=>LED7S<="1100110";

WHEN"0101"=>LED7S<="1101101";

WHEN"0110"=>LED7S<="1111101";

WHEN"0111"=>LED7S<="0000111";

WHEN"1000"=>LED7S<="1111111";

WHEN"1001"=>LED7S<="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='1'时,进行并行预置,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:

INSTD_LOGIC;

RST:

INSTD_LOGIC;

ENA:

INSTD_LOGIC;

PST:

INSTD_LOGIC;

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);

BEGIN

M<="0001";

P_REG:

PROCESS(CLK,RST,ENA,PST)

BEGIN

IFRST='1'THENCQI<="0000";

ELSIFCLK'EVENTANDCLK='1'THEN

IFPST='1'THENCQI<=DATA;

ELSIFENA='1'THENCQI<=CQI+1;

ELSECQI<=CQI;

ENDIF;

ENDIF;

OUTY<=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,则发送总线值为:

1111111011111111,如要选取数码管1,则发送总线值为:

1111110111111111,此时所选数码管7段和DP位将全部亮。

实验接线:

用导线连接IO3与ADJ_CLK,调整SW17-SW20,使输出频率为1Hz;

IO9-IO11接到L1-L3上;IO5接到蜂鸣器的BUZZER控制端口。

按下PB0、PB1(有些CPU板对应的标识是SW1、SW2)可以调整时钟,分钟。

六、预习要

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1