实验五移位寄存器和实用寄存器.docx
《实验五移位寄存器和实用寄存器.docx》由会员分享,可在线阅读,更多相关《实验五移位寄存器和实用寄存器.docx(10页珍藏版)》请在冰点文库上搜索。
![实验五移位寄存器和实用寄存器.docx](https://file1.bingdoc.com/fileroot1/2023-8/4/0b26e275-44cc-4e20-add1-8563e9ee29a4/0b26e275-44cc-4e20-add1-8563e9ee29a41.gif)
实验五移位寄存器和实用寄存器
本科学生综合性实验报告
学号114090523姓名罗朝斌
学院物电学院专业、班级11光电子
实验课程名称电子设计自动化(EDA实验)
教师及职称罗永道副教授
开课学期2013至2014学年下学期
填报时间2014年5月16日
云南师范大学教务处编印
实验序号
五
实验名称
移位寄存器和实用寄存器
实验时间
2014年5月16
实验室
同析楼114
一.实验预习
1.实验目的:
1、熟练掌握qualtus软件的实用。
2、掌握组合逻辑电路的设计方法。
3、掌握中规模集成电路加法器的工作原理及其逻辑功能。
4、掌握移位寄存器的设计方法,熟悉和练习QuartusⅡ的应用。
2.实验原理、实验流程或装置示意图:
移位寄存器是由相同的寄存单元所组成。
一般说来,寄存单元的个数就是移位寄存器的位数。
为了完成不同的移位功能,每个寄存单元的输出与其相邻的下一个寄存单元的输入之间的连接方式也不同。
(2)所有寄存单元共用一个时钟。
在公共时钟的作用下,各个寄存单元的工作是同步的。
每输入一个时钟脉冲,寄存器的数据就顺序向左或向右移动一位。
通常可按数据传输方式的不同对CMOS移位寄存器进行分类。
移位寄存器的数据输入方式有串行输入和并行输入之分。
串行输入就是在时钟脉冲作用下,把要输入的数据从一个输入端依次一位一位地送入寄存器;并行输入就是把输入的数据从几个输入端同时送入寄存器。
译码是将具有特定含义的二进制代码变换(翻译)成一定的输出信号,以表示二进制代码的原意,这一过程称为译码。
译码是编码的逆过程,即将某个二进制代码翻译成电路的某种状态。
在CMOS移位寄存器中,有的品种只具有串行或并行中的一种输入方式,但也有些品种同时兼有串行和并行两种输入方式。
串行输入的数据加到第一个寄存单元的D端,在时钟脉冲的作用下输入,数据传送速度较慢;并行输入的数据一般由寄存单元的R、S端送入,传送速度较快。
移位寄存器的移位方向有右移和左移之分。
右移是指数据由左边最低位输入,依次由右边的最高位输出;左移时,右边的第一位为最低位,最左边的则为最高位,数据由低位的右边输入,由高位的左边输出。
移位寄存器的输出也有串行和并行之分。
串行输出就是在时钟脉冲作用下,寄存器最后一位输出端依次一位一位地输出寄存器的数据;并行输出则是寄存器的每个寄存单元均有输出。
CMOS移位寄存器有些品种只有一种输出方式,但也有些品种兼具两种输出方式。
实际上,并行输出方式也必然具有串行输出功能。
移位寄存器是用来寄存二进制数字信息并且能进行信息移位的时序逻辑电路。
根据移位寄存器存取信息的方式可分为串入串出、串入并出、并入串出、并入并出4种形式。
74194是一种典型的中规模集成移位寄存器,由4个RS触发器和一些门电路构成的4位双向移位寄存器。
该移位寄存器有左移,右移、并行输入数据,保持及异步清零等5种功能。
有如下功能表
CLRN
CLK
S1S0
××
××
11
01
10
00
工作状态
0
×
清零
1
0
保持
1
↑
并行置数,Q为ABCD
1
↑
串行右移,移入数据位为SRS1
1
↑
串行左移,移入数据位为SLS1
1
↑
保持
实用寄存器:
实用的D触发器除含有时钟端CLK外,还含有异步清零端CLR和时钟使能端ENA。
这里的异步并非时序逻辑的异步,而是指独立于时钟控制的复位控制端,在任何时候,只要CLR=’1’,此时D触发器的输出端即可清零,与时钟信号无关
3.实验设备及材料
电脑一台,QuartusII实验平台,EDA实验箱
4.实验方法步骤及注意事项
实验方法步骤
1、编写源代码。
打开QuartusII软件平台,点击file中的New建立一个工程文件。
编写的文件名与实体名一致,点击file/save以.vhd位扩展名存盘文件。
2、编译与调试。
确定源代码文件为当前工程文件,进行编译。
编译文件有错误或警告,则要将调试修改直至文件编译成功。
3、波形仿真及验证。
在编译成功后,点击Waveform开始设计波形。
点击”insertthenode”,按照程序所述插入节点(具体则根据实验的变量而定)。
点击保存。
4、结果分析。
对所得的波形文件进行逻辑功能的分析,分析是否满足预先的结果,直至试验成功为止。
注意事项
1、在编写程序时,一定要按照步骤进行,文件名和实体名要保持一致,否则将编译错误。
2、在进行波形仿真时,一定要将时序仿真改变成功能仿真。
3、在进行波形仿真时,一定要生成功能仿真网表,否则将不能得到正确的功能仿真波形。
二.实验内容
移位寄存器VHDL程序如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYSHFTIS
PORT(CLK,LOAD:
INSTD_LOGIC;
DIN:
INSTD_LOGIC_VECTOR(7DOWNTO0);
DOUT:
OUTSTD_LOGIC_VECTOR(7DOWNTO0);
QB:
OUTSTD_LOGIC);
ENDSHFT;
ARCHITECTUREbehavOFSHFTIS
SIGNALREG8:
STD_LOGIC_VECTOR(7DOWNTO0);
BEGIN
PROCESS(CLK,LOAD)
BEGIN
IFCLK'EVENTANDCLK='1'THEN
IFLOAD='1'THENREG8<=DIN;
ELSEREG8(6DOWNTO0)<=REG8(7DOWNTO1);ENDIF;
ENDIF;
ENDPROCESS;
QB<=REG8(0);DOUT<=REG8;
ENDbehav;
移位寄存器输入波形如下所示:
移位寄存器输入展开波形如下所示:
移位寄存器输出波形如下所示:
移位寄存器输出展开波形如下所示:
移位寄存器RTLViewer
移位寄存器
移位寄存器Symbol
实用寄存器如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCHT10IS
PORT(CLK,RST,EN,LOAD:
INSTD_LOGIC;
DATA:
INSTD_LOGIC_VECTOR(3DOWNTO0);
DOUT:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
COUT:
OUTSTD_LOGIC);
ENDCHT10;
ARCHITECTUREbehavOFCHT10IS
BEGIN
PROCESS(CLK,RsT,EN,LOAD)
VARIABLEQ:
STD_LOGIC_VECTOR(3DOWNTO0);
IF(LOAD='0')THENQ:
=DATA;ELSE
IFQ<9THENQ:
=Q+1;
ELSEQ:
=(OTHERS=>'0');
ENDIF;
ENDIF;
ENDIF;
ENDIF;
IFQ="1001"THENCOUT<='1';
ELSECOUT<='0';ENDIF;
DOUT<=Q;
ENDPROCESS;
ENDbehav;
实用寄存器输入波形如下所示:
实用寄存器输入展开波形如下所示:
实用寄存器输出波形如下所示:
实用寄存器输出展开波形如下所示:
实用寄存器RTLViewer
2.对实验现象、实验结果的分析及其结论
1、在程序写好这后,编译,编译通过,在波形仿真中,设置好输入波形的各个值,点击运行波形文件之后显示successful。
2、分别分析移位寄存器的波形输出文件,结果与预期设想结果一致。
3、由以上结果分析得知,本次移位寄存器的设计实验是成功的。
教师评语及评分:
签名:
年月日