实验报告
实验名称: 双向循环移位电路
电路设计: 王小松 2902502025
实验报告: 刘庆 2902502023
1、设计的基本思想
循环左移和右移输出都是从八个输入中选择输出的,所以可以用多路复用器(数据选择器)来设计。选择用74151来设计。
基本思路
循环左移:低位移向高位,最高位的值移入最低位
循环右移:高位移向低位,最低位的值移入最高位。
设:S[2..0] 选择信号、 Y[7..0] 输出信号、 output[7..0] 输入信号
循环右移表格
S2 | S1 | S0 | Y7* | Y6* | Y5* | Y4* | Y3* | Y2* | Y1* | Y0* |
0 | 0 | 0 | Y7 | Y6 | Y5 | Y4 | Y3 | Y2 | Y1 | Y0 |
0 | 0 | 1 | Y6 | Y5 | Y4 | Y3 | Y2 | Y1 | Y0 | Y7 |
0 | 1 | 0 | Y5 | Y4 | Y3 | Y2 | Y1 | Y0 | Y7 | Y6 |
0 | 1 | 1 | Y4 | Y3 | Y2 | Y1 | Y0 | Y7 | Y6 | Y5 |
1 | 0 | 0 | Y3 | Y2 | Y1 | Y0 | Y7 | Y6 | Y5 | Y4 |
1 | 0 | 1 | Y2 | Y1 | Y0 | Y7 | Y6 | Y5 | Y4 | Y3 |
1 | 1 | 0 | Y1 | Y0 | Y7 | Y6 | Y5 | Y4 | Y3 | Y2 |
1 | 1 | 1 | Y0 | Y7 | Y6 | Y5 | Y4 | Y3 | Y2 | Y1 |
如上表格 当S=100 时,输出为 Y3 Y2 Y1 Y0 Y7 Y6 Y5 Y4
此电路是八输入,八输出短路,所以用八片 74151 即可实现
用已经做好的左移电路为模版再用控制输入端的连接做一个右移的电路,然后通过使能端控制导通左移电路或右移电路,这样即可到达双向循环移位电路。 左移和右移模块各需要八片 74151 所以一共需要十六片 74151 也可以采用向左移1位即是向右移7位 向左移 n 位即是向右移 8— n 位,满足减法,可用使能控制一个减法器来导通是左移还是右移,拟采用做两个向左移和向右移的电路来实现双向循环移位。
2、具体电路的表达
电路原理图
3、电路仿真的输出图形,以及对输出图形的解释
电路仿真的输出图形
对输出图形的解释
假设输入为D0=1 D1=0 D2=0 D3=0
D4=0 D5=0 D6=0 D7=0
由上面输出波形知 在S3=0 时 电路循环左移 S3=1 时 电路循
环右移
在S3=0 时
S[2:0]=000 Y0=1 即电路左移0位
S[2:0]=001 Y7=1 即电路左移1位
S[2:0]=010 Y6=1 即电路左移2位
S[2:0]=011 Y5=1 即电路左移3位
S[2:0]=100 Y4=1 即电路左移4位
S[2:0]=101 Y3=1 即电路左移5位
S[2:0]=110 Y2=1 即电路左移6位
S[2:0]=111 Y1=1 即电路左移7位
完成左移循环
S3=1 时
S[2:0]=000 Y0=1 向右移0位
S[2:0]=001 Y1=1 向右移1位
S[2:0]=010 Y2=1 向右移2位
S[2:0]=011 Y3=1 向右移3位
S[2:0]=100 Y4=1 向右移4位
S[2:0]=101 Y5=1 向右移5位
S[2:0]=110 Y6=1 向右移6位
S[2:0]=111 Y7=1 向右移7位
完成右移循环
该波形图像两个阶梯 台阶一边向左,一边向右 。台阶向左的即是
向左移位,台阶向右的即是向右移位。
4、电路设计总结
(1)第一次模拟,模拟结果中出现右移循环错误
(右移两位和三位时,结果与右移一位相同):
S[2:0]=010 Y1=1 向右移2位
S[2:0]=011 Y1=1 向右移3位。
经检查,错误区域为在循环右移这个电路模块中,将第二片数据选择器74*151的输入端D0和D7连在了一起,改正后,结果可行。
(2)实验电路处理过程中,需考虑毛刺问题,对此设计成为左右移俩大模块的形式,即采用互补电路消除了毛刺。
(3)在使用软件EDA时,遇到诸如如何接地或接电源;器件连接时不能虚连;器件的接口不能直接相连,需要用线连接等一系列细节问题,后来通过查阅资料成功解决。
5、实验结论:设计电路正确、满足设计要求,且能实现双向循环的移位功能。