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