1、寄存器组的设计与实现
一、 实验目的
1、 学习掌握Quartusⅱ软件的基本操作;
2、 理解寄存器组的工作原理和过程;
3、 设计出寄存器组并对设计的正确性进行验证。
二、 实验内容
能移位的暂存器实验。具体要求:
1、 用图形方式设计能移位的暂存器电路原理图,分别实现左移、逻辑右移和算术右移;
2、 测试波形时要用时序仿真实现,测试数据不要全为0或者全为1,算术右移的测试数据要求为负数(即符号位为1);
3、 将设计文件封装成器件符号;
4、 数据宽度最好为16位。
三、 实验装置
2、
安装有Quartusⅱ软件的PC机一台
四、 实验提示
1、74198:8位双向移位寄存器
74198芯片如图。CLRN为清零端,S1S0为模式选择端,选择移位方式;输入端口A~H为并行输入端,用于为移位寄存器置数;SLSI、SRSI为串行输入端,表示移位后的补充值;CLK为移位时钟;QA~QH为输出端。
功能表:
输入
输出
模式
时钟
串行
并行
CLRN
S1
S2
CLK
SLSI
SRSI
A..H
QA
QB..QG
QH
0
X
X
X
X
X
X
0
0..0
0
1
X
X
0
X
X
X
3、
QA0
QB0..QG0
QH0
1
1
1
↑
X
X
a..h
a
b..g
h
1
0
1
↑
X
1
X
1
QAn..QFn
QGn
1
0
1
↑
X
0
X
0
QAn..QFn
QGn
1
1
0
↑
1
X
X
QBn
QCn..QHn
1
1
1
0
↑
0
X
X
QBn
QCn..QHn
0
1
0
0
↑
X
X
X
QA0
QB0..QG0
QH0
74244:三态
2、 设计原理
提供的74198芯片具有移位暂存
4、功能,选择合适芯片通过数据位扩展,设计16位移位暂存器。
1)设计思路:将16位数据分别输入到两个8位的移位寄存器,然后将数据经过三态门输出。在左移时,整体左移,末位添0,:将低8位寄存器的最高位输出作为高8位寄存器左移的补位,低8位寄存器末位添0;逻辑右移时,首位添0:将高8位寄存器输出的最低位作为低8寄存器最高位的补位,高8位首位补0;算术右移时:高8位寄存器首位不变,低8位寄存器首位为高8位寄存器的末位输出。
2)设计电路图如下:
波形仿真:
5、
波形分析:输入为1100110011001100,第一个时钟信号的时候,s1,s0都为1,将16位数存到寄存器中,然后控制s1,s0的值,当为s1、s0为10且SLSI为低电平时,控制左移,在两个时钟内左移两位;当s1、s0为01且SRSI为低电平时,进行逻辑右移,每过一个时钟右移一位;当SRSI为高电平时,进行算术右移。上图只验证了首位是0的算术右移。
该图是首位为1的算术右移波形仿真。输入的数是1111000000001111算术右移,补位和首位一致。最后一次右移由于延时在后面显示。
器件封装:
总结:该实验总体上来说比较简单,但是在设计实验的时候由于对补位的设计不是很准确,出过多次毛病,在不断的尝试下最终还是解决,主要是在设计时容易考虑过多而忽略了一些细节。总之,在做这个实验的过程中收获一些经验,对以后学习中的实验都有帮助。