Eda课程及实习指导3.docx
- 文档编号:7970618
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:60
- 大小:1.01MB
Eda课程及实习指导3.docx
《Eda课程及实习指导3.docx》由会员分享,可在线阅读,更多相关《Eda课程及实习指导3.docx(60页珍藏版)》请在冰豆网上搜索。
Eda课程及实习指导3
实验二十三串入/并出移位寄存器
一、实验目的
根据实验内容中介绍的4位串入/并出移位寄存器的设计方法,设计一个8位串入/并出移位寄存器。
实验源程序是sipo.vhd。
二、实验内容
在这里我们通过一个4位串入/并出移位寄存器设计过程来介绍如何设计串入/并出移位寄存器。
所谓的串入/并出移位寄存器,即输入的数据是一个接着一个有序地进入,输出时则一起送出。
例程代码如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYsipoIS
PORT(
D_IN:
INSTD_LOGIC;
CLK:
INSTD_LOGIC;
D_OUT:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDsipo;
ARCHITECTUREaOFsipoIS
SIGNALQ:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
P1:
PROCESS(CLK)
BEGIN
IFCLK'EVENTANDCLK='1'THEN
Q(0)<=D_IN;
FORIIN1TO3LOOP
Q(I)<=Q(I-1);
ENDLOOP;
ENDIF;
ENDPROCESSP1;
D_OUT<=Q;
ENDa;
仿真结果如图23-1所示。
图23-14位串入/并出移位寄存器仿真波形图
上图中输入的数据为“1010”、“0111”两组4位数据。
因输入的数据是每次一位依序进入,故输入、输出信号之间有4个CLK时间的延迟。
为了过滤中间没用的数据,只读取完整的存储数据,实用上可将取样脉冲的周期设定成CLK脉冲的四倍,也就是说,每经过4个CLK脉冲后再读取数据一次,便能每次读取都得到正确的数据。
可见上图有效的输出是A7。
三、实验连线
输入信号D-IN(代表一位的串行数据输入)和CLK(代表抽样时钟信号),CLK时钟信号接适配器板子上的时钟信号,频率建议取在1Hz左右,D-IN接拨码开关或按键;输出信号有D-OUT0~D-OUT3(代表4位并行数据输出),接发光二极管。
实验二十四并入/串出移位寄存器
一、实验目的
根据实验内容中介绍的4位并入/串出移位寄存器的设计方法,设计一个8位并入/串出移位寄存器。
实验源程序是piso.vhd。
二、实验内容
在这里我们通过一个4位并入/串出移位寄存器设计过程来介绍如何设计并入/串出移位寄存器。
所谓的并入/串出移位寄存器,即输入的数据是整组一次进入,输出时则一个接着一个依序地送出。
例程代码如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
ENTITYPISOIS
PORT(
DATA_IN:
INSTD_LOGIC_VECTOR(7DOWNTO0);--ParallelDataInput,8bit
CLK:
INSTD_LOGIC;--SyncClock
LOAD:
INSTD_LOGIC;--LoadDatawhenInput'1'
CLR:
INSTD_LOGIC;--ConvertEnableSignal,Active'H'
DATA_OUT:
OUTSTD_LOGIC);
ENDPISO;
ARCHITECTUREaOFPISOIS
SIGNALQ:
STD_LOGIC_VECTOR(7DOWNTO0);
BEGIN
P1:
PROCESS(CLK,CLR)
BEGIN
IFCLR='1'THEN
Q<=(OTHERS=>'0');
ELSIFRISing_edge(CLK)THEN
IFLOAD='1'THEN
Q<=DATA_IN;
ENDIF;
IFLOAD='0'THEN
FORIIN1TO7LOOP
Q(I)<=Q(I-1);
ENDLOOP;
ENDIF;
ENDIF;
ENDPROCESSP1;
DATA_OUT<=Q(7);
ENDa;
仿真结果如图24-1和24-2所示。
图24-14位并入/串出移位寄存器仿真波形图
图24-24位并入/串出移位寄存器仿真波形图
在程序中,增加了一个LOAD信号,当LOAD为‘1’时,数据才读入,这个‘1’的作用即为“Startbit”。
告诉电路现在准备开始读入数据。
在图24-1中,输入的数据为5546,在LOAD处于高电平时,在CLK的上升沿到来时,触发系统读入并行数据,经过一个很小的延时后输出,此延时是由于芯片内部的硬件延时,在本实验中是8ns。
在图24-2中,输入数据是8547,85的二进制表达式是10000101,读者可观察到在最后一个1的高电平保持到LOAD为高电平区域CLK的上升沿到来且经过一个很小的延时的时间段。
这是因为程序所设置。
如图24-2中的85的最后一个高电平保持到47的4的第一个低电平到来。
但是图24-1中55的最后一个高电平只有一个时钟周期,这是因为LOAD的高电平(读取信号)正好在55的最后一个高电平结束时刻对应的CLK时钟上升沿到来时是高电平。
程序如下:
IFLOAD='0'THEN
FORIIN1TO7LOOP
Q(I)<=Q(I-1);
在LOAD为0时,则将上次读取的数据中的最后一个数据保持到LOAD为高电平且有CLK上升沿到来并经过延时,上升沿到了后,经过8ns的延时,输出最新读取的数据,见图24-2中8的二进制码1000的1的上升沿与CLK的上升沿的延时。
三、实验连线
输入信号有CLK(时钟信号)、CLR(复位信号)、LOAD(读取信号)、DATA-IN0~DATA-IN7(8位数据输入),其中CLK用适配器板子上的时钟端,接时钟电路的相应输出CLK5,频率调节到1Hz左右,CLR和LOAD接拨码开关,工作时CLR是低电平,LOAD拨到高电平一次读取一次数据,DATA-IN0~DATA-IN7接8个拨码开关;输出信号DATA-OUT接发光二极管。
实验二十五串入/串出移位寄存器
一、实验目的
根据实验内容中介绍的4位串入/串出移位寄存器的设计方法,设计一个8位串入/串出移位寄存器。
实验源程序是siso.vhd。
二、实验内容
在这里我们通过一个4位串入/串出移位寄存器设计过程来介绍如何设计串入/串出移位寄存器。
所谓的串入/串出移位寄存器,即输入的数据是一个接着一个依序地进入,输出时一个接着一个依序地送出。
例程代码如下:
LIBRARYieee;
USEieee.std_logic_1164.ALL;
ENTITYsisoIS
PORT(
DATA_IN:
INSTD_LOGIC;
CLK:
INSTD_LOGIC;
DATA_OUT:
OUTSTD_LOGIC);
ENDsiso;
ARCHITECTUREaOFsisoIS
SIGNALQ:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
PROCESS(CLK)
BEGIN
IFCLK'EVENTANDCLK='1'THEN
Q(0)<=DATA_IN;
FORIIN1TO3LOOP
Q(I)<=Q(I-1);
ENDLOOP;
ENDIF;
ENDPROCESS;
DATA_OUT<=Q(3);
ENDa;
仿真结果如图25-1所示。
图25-14位串入/串出移位寄存器仿真波形图
因为一开始时寄存器内部存储的数据为“0000”,必须等这4个“0”逐一移出后,新的数据才能进入并存储,帮数据的输入和输出会存有4个位延迟时间的差异。
DATA_IN表示输入的数据流,DATA_OUT为输出的数据流,Q显示的为寄存器目前存储的数据内容。
三、实验连线
输入信号有CLK(时钟信号)、DATA-IN(数据输入),CLK用适配器板子上的时钟端,接数字信号源的CLK5,频率调节到1Hz左右,DATA-IN接拨码开关;输出信号DATA-OUT接发光二极管。
实验二十六并入/并出移位寄存器
一、实验目的
根据实验内容中介绍的4位并入/并出移位寄存器的设计方法,设计一个8位并入/并出移位寄存器。
实验源程序是pipo.vhd。
二、实验内容
在这里我们通过一个4位并入/并出移位寄存器设计过程来介绍如何设计并入/并出移位寄存器。
所谓的并入/并出移位寄存器,即输入的数据是一起进入,输出时则一起送出。
例程代码如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYPIPOIS
PORT
(DATA_IN:
INSTD_LOGIC_VECTOR(3DOWNTO0);
CLK:
INSTD_LOGIC;
DATA_OUT:
OUTSTD_LOGIC_VECTOR(3DOWNTO0)
);
ENDPIPO;
ARCHITECTUREPIPOOFPIPOIS
SIGNALQ:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
PROCESS(CLK)
BEGIN
IFCLK'EVENTANDCLK='1'THEN
Q<=DATA_IN;
DATA_OUT<=Q;
ENDIF;
ENDPROCESS;
ENDPIPO;
仿真结果如图26-1所示。
图26-14位并入/并出移位寄存器仿真波形图
程序中的并入/并出实际上是采用总线或排线的方式。
而串行输入/输出则只有一条线相连接,故需一个一个数据分别处理,串行的方式虽然硬件结构较为简单及经济,但相对的处理速度比较慢,尤其当位数大到某程度时,时间延迟会变得很明显。
三、实验连线
输入信号有clk(时钟信号)、data_in0~data_in3(4位数据输入),其中clk用适配器板子上的时钟端,接数字信号源的CLK0或CLK1等,频率可调节的高一些,data_in0~data_in3接拨码开关;输出信号data_out0~data_out3(4位数据输出)接发光二极管。
实验二十七多功能寄存器
一、实验目的
设计并实现一个串/并进、串出移位寄存器。
实验源程序是sreg166.vhd。
二、实验内容
串/并进、串出移位寄存器在TTL手册中是74166芯片,其功能图如图27-1所示。
其中:
A~H:
8位并行数据输入端
CLRN:
异步清零端
SER:
串行数据输入端
CLK:
同步时钟输入端
CLKIH:
时钟信号禁示端
STLD:
移位/装载控制端
QH:
串行数据输出端
图27-1功能图
通过查询74166的真值表可知:
CLK=0时,输出为0;
CLKIH=1时,不管时钟如何变化,输出不变化。
STLD=1时,移位状态,在时钟上升沿时刻,向右移一位,SER串入的数据移入Q。
STLD=0时,加载状态,8位输入数据输入数据就能装到Q0~Q7寄存器。
波形仿真图如下图27-2和27-3:
图27-2串行数据输入时的仿真图
图27-3并行数据输入时的仿真图
三、实验连线
输入信号有CLK(同步时钟信号)、CLK1H(时钟信号禁示端)、CLRN(异步清零)、STLD(信号读取控制端)、SER(串行数据输入端)、A~H(8位并行数据输入端),CLK信号用适配器板子上的时钟端接数字信号源的CLK5,频率可以适当调节的低一些,大概在1Hz左右,CLK1H接低电平,CLRN接高电平,SER和A~H接拨码开关,STLD接拨码开关,观察图27-2串行数据输入时的仿真图和27-3并行数据输入时的仿真图的波形,拨动拨码开关,观察现象。
输出信号QH接发光二极管。
观察串行数据输入时,CLK、CLK1H、CLRN按照以上所述接线,STLD接高电平,拨动SER,观察QH的输出。
观察并行数据输入时,CLK、CLK1H、CLRN接线方式不变,按照需要拨动A~H,确定并行输入数据,将STLD接高电平,然后给一个低电平的脉冲(即忽然向下拨动,马上又拨回高电平),观察QH的输出。
实验二十八单脉冲发生器
一、实验目的
设计并实现一个同步单脉冲发生器
实验源程序是pulse.vhd。
二、实验内容
单脉冲发生器就是能发出单个脉冲的线路,它的输入是一串连续脉冲M,它的输出受开关PUL的控制,每当按一次PUL开关后(接0电平),Q端输出一个与输入脉冲宽度、时间同步的脉冲,其原理图如图28-1所示。
图28-1单脉冲发生器原理图
发生器仿真波形图如图28-2所示。
图28-2单脉冲发生器仿真波形图
三、实验连线
输入信号PUL信号接一个按键开关或拨码开关,M用适配器板子上的时钟端,接数字时钟源的CLK5,频率调节的低一些;输出信号Q、NQ分别接两个发光二极管。
按PUL按键,观察Q和NQ的变化。
实验二十九节拍脉冲发生器
一、实验目的
设计一个节拍脉冲发生器,要求:
当按下START键时,循环产生P1~P4四个节拍脉冲;
当按下STOP键时,停止产生P1~P4四个节拍脉冲;
当按下STEP键时,只产生一组P1~P4四个节拍脉冲。
实验源程序是time_pulse.vhd。
二、实验内容
整个发生器的原理图如图29-1所示。
仿真波形如图29-2所示。
图29-1节拍脉冲发生器原理框图
图29-2节拍脉冲发生器仿真波形图
图29-3连续节拍脉冲发生器
节拍脉冲发生器用来产生计算机工作所需的节拍脉冲,如图29-2所示,当给START一个低电平脉冲时,节拍脉冲发生器启动,从P0~P3输出节拍脉冲;当给STOP一个低电平脉冲时,节拍脉冲发生器停止输出节拍脉冲;当给STEP一个低电平脉冲时,节拍脉冲发生器输出一组节拍脉冲。
图29-3所示的是一个无控制量的连续节拍发生器。
三、实验连线
START、STEP、STOP、CLR信号分别接按键开关,CLK接时钟信号,输出信号P0、P1、P2、P3分别接发光二极管或示波器。
实验三十带RC的TTL环形振荡器
一、实验目的
了解数字门电路在脉冲电路方面的应用,掌握脉冲电路的分析方法,了解TTL环形振荡器的工作原理。
并学习如何在电路中接入R、C等器件的方法。
二、实验内容
实验电路图见图30-1。
图30-1实验电路原理图
图30-2拆分后的电路图
图30-3
1、按照图30-1,先将原理图拆分为图30-2所示的电路图,b节点分为b1输入节点和b2输出节点;f节点分为f1输入节点和f2输出节点。
在实验仪器的下载芯片上只需实现图30-3所示的功能电路即可,电阻R1、R2,电容C1在实验仪器上找到合适参数的接入芯片即可,若实验仪器上无所需参数的阻容,也可将外部的阻容插在实验仪器的扩展模块上后接入芯片,连接时只要按照图30-2的连线关系去连线。
图中,R1取180Ω,R2取100Ω,C1取820P。
2、用示波器观察a、b、c、d、e、sc各点波形并记录下来,并算出振荡频率。
3、取R1为560Ω,C为3uF,观察各点波形并算出振荡频率。
4、用10K电位器取代R1,R2用一级射随器代替,调节电位器,观察波形,算出频率范围。
三、实验结论
振荡器与R、C值的关系如何?
为何R值不能取太大?
实验三十一巴克码发生器
一、实验要求
参考实验说明中的实例来设计并实现一个巴克码(01110010代码)发生器。
波形图见图31-3。
实验源程序是backer_code.vhd。
二、实验说明
下面我们通过一个11000100代码发生器来介绍如何设计一个通信系统的巴克码发生器。
N位触发器构成的计数器可产生M个(M≤2N)代码。
图31-1是代码11000100发生器电路原理图,当计数脉冲不断进入由Q3Q2Q1组成的三位二进制异步计数器时,3-8译码器的8个输出经反向器后(W0~W7)顺序输出高电平,图中将W2、W3、W4、W6、W7五路信号经“或非”后再和W0、W1、W5相“或”,在Y端便可顺序产生11000100代码序列。
仿真波形图如图31-2所示。
图31-1
图31-2
图31-3巴克码(01110010代码)发生器仿真波形图
三、实验连线
输入信号有CLK接时钟信号,RESET复位信号接拨码开关,工作时拨高电平;输出信号DOUT接发光二极管或示波器观察。
实验三十二巴克码检测器
一、实验要求
参考实验说明中的001代码检测的设计方法,设计一个七位巴克码(X1110010)代码检测器,当识别到一组代码时,输出一个高电平脉冲。
波形图见图32-3。
实验001代码检测程序是chk_001.gdf。
实验巴克码检测器程序是barker_chk.vhd。
二、实验说明
代码序列检测器是一种同步时序电路,用于搜索、检测输入的二进制代码串中是否出现指定的代码序列。
下面我们设计一个001代码检测器。
图32-1是001序列检测器的原理波形图。
图32-1是001序列检测器的原理波形图
001序列检测器设计基本步骤如下:
1、建立控制函数、输出函数真值表
根据表32-1给出的次态和现态的真值关系并借助D触发器特征方程,便可列出输入X、现态Q2Q1、次态Q2’Q1’,及其对应的控制函数D2D1、输出函数Y的真值表,见表32-2。
现态
输入
次态
控制函数
输出
Q2Q1
X
Q2’Q1’
D2D1
Y
00
0
10
10
0
10
0
11
11
0
11
0
11
11
0
00
1
00
00
0
10
1
00
00
0
11
1
00
00
1
01
0
φφ
φφ
φ
01
1
φφ
φφ
φ
表32-1表32-2
X
Q2Q1
0
1
00
100
000
10
110
000
11
110
001
2、写控制函数和输出函数表达式
根据表32-2,便可写出如下表达式。
3、画逻辑图
根据2得到的表达式,可画出001代码检测器逻辑图见图32-2所示。
图中D触发器的接数脉冲X用负脉冲,它的后沿使D触发器接数,另外,用X倒相去同步输出,X端连续输入001时,Y输出这个正脉冲。
图32-2001代码检测器逻辑图
图32-3001代码检测器仿真波形图
仿真波形图见图32-3。
使用中发现,当CLK时钟信号的频率是X端输入的代码信号频率的4位时,其输出Y是时间间隔相等的正脉冲信号。
图32-4巴克码检测器仿真波形图
三、实验连线
做001代码检测实验时,输入信号CLK接一时钟输出,X也接一时钟输出,但需使fX≥4fCLK。
输出Y接一个发光二极管。
做巴克码检测实验时,输入信号RESET复位信号接拨码开关,CLK接数字信号源的时钟信号,DATA接一外部信号源,可以提供巴克码;输出信号DOUT接LED灯。
实验三十三触发器功能的模拟实现
一、实验目的:
1.掌握触发器功能的测试方法。
2.掌握基本RS触发器的组成及工作原理。
3.掌握集成JK触发器和D触发器的逻辑功能及触发方式。
4.掌握几种主要触发器之间相互转换的方法。
通过实验,体会EPLD芯片的高集成度和多I/O口。
实验源程序是t33.gdf。
二、实验说明
将基本RS触发器,同步RS触发器,集成J-K触发器,D触发器同时集成一个EPLD
芯片中模拟其功能,并研究其相互转化的方法。
实验的具体实现要连线测试。
实验原理如图33-1:
图33-1
电路中各个触发器的仿真波形图如下:
图33-2RS触发器仿真波形图
图33-3RS锁存器仿真波形图
图33-4JK触发器仿真波形图
图33-5D触发器仿真波形图
三、实验连线:
输入信号Sd、Rd对应的管脚接按键开关,CLK接时钟源(频率在1Hz左右);输入信号J,K,D,R,S对应的管脚分别接拨码开关;输出信号QRS,NQRS,QRSC,NQRSC,QJK,NQJK,QD,NQD对应管脚分别接LED灯。
另外准备几根连线,在改变为T‘触发’器时,短接相应管脚,或连接“0”“1”电平。
四、实验报告:
填下述表格表一,表二,表三,表四。
表一:
RS寄存器
RdSd
Q
NQ
说明
01
10
11
00
表二:
RS锁存器
R
S
CLK
Rd
Sd
Qn
Qn+1
Qn-1
说明
X
X
X
1
0
X
X
X
0
1
X
X
X
0
0
X
X
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
表三:
JK触发器
J
K
CLK
Rd
Sd
Qn
Qn+1
NQn+1
X
X
X
0
1
X
X
X
1
0
X
X
X
0
0
X
X
0
1
1
X
X
1
1
1
0
0
※
1
1
0
1
※
1
1
1
0
1
1
1
1
1
1
表四:
D触发器
INPUTS
OUTPUTS
D
CLK
Rd
Sd
Q
NQ
X
X
X
X
X
0
1
X
X
X
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
分别将JK触发器和D触发器接成T触发器,模拟其工作状态,并画出其波形。
实验三十四扫描显示电路的驱动
一、实验目的:
了解教学系统中8位八段数码管显示模块的工作原理,设计标准扫描驱动电路模
块,以备后面实验调用。
二、实验内容:
1.用拨码开关产生8421BCD码
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Eda 课程 实习 指导