1,shifter小集合

(1) simple shift

左移或右移补0

(2) arthmetic shift

左移补0,右移补符号位

(3) barrel shifter

桶型,顾名思义,应该头尾衔接,但实际应用时也有左移补0的例子

可以把barrel shifter想象成一个圆形转钮

按逆时针方向转动

(4) funnel shifter

漏斗,运算结果是从一个长集合里取出一个短集合

2,barrel shifter

(1) 优点

相对于使用触发器的移位寄存器,barrel shifter的延时几乎是固定的,因为它使用的是组合逻辑。

理论上,barrel shifter的延时是固定的一级传输门,与移位级数无关;当然实际上随着级数增加,传输电容也会增大。

(2) 实现

一般有两种实现方法。

a) 在cross-bar上用CMOS实现

(图片来自维基百科;X是输入,Y是输出)

b) 对于硬件描述语言,可以用多个2选1 MUX实现

说明可看:https://tams.informatik.uni-hamburg.de/applets/hades/webdemos/10-gates/60-barrel/shifter8.html

以8-bit barrel shifter为例,连线规则是:

 int1  = IN       , if S[2] == 0
= IN << 4, if S[2] == 1
int2 = int1 , if S[1] == 0
= int1 << 2, if S[1] == 1
OUT = int2 , if S[0] == 0
= int2 << 1, if S[0] == 1
S[0]是第一级,S[n]是最后一级。
上述例子只有左移补0,没有头尾衔接的循环。想改进也很简单:第一级把b[7]连到b[0],依此类推即可。
(3) 资源消耗
n-bit barrel shifter消耗的MUX数量为: nlog2(n).
(4) 应用
barrel shifter常在硬件实现浮点运算时用到。
3,logarthmic shifter
逻辑数学运算,实际上是移位运算的特殊应用。
4, funnel shifter
funnel shifter可以实现上述所有的shifter。
根据A与B的关系,funnel shifter可实现的不同功能:
funnel shifter的两种实现方法:
(1) 
(2) 

最新文章

  1. Notepad++编写Markdown
  2. java 中 ArrayList LinkedList Vector 三者的异同点
  3. IE8下获取iframe document EVENT对象的问题
  4. Dijkstra(变形) POJ 1797 Heavy Transportation
  5. aspx后缀映射成html
  6. MySQL explain key_len 大小的计算
  7. [原]sdut2624 Contest Print Server (大水+大坑)山东省第四届ACM省赛
  8. http://blogs.msdn.com/b/pranavwagh/archive/2007/03/03/word-2007-file-seems-to-be-deleted-when-you-open-and-save-it-using-dsoframer.aspx
  9. .Net 平台下的互联网架构新思考
  10. android recover 系统代码分析 -- 选择进入
  11. 浅谈C++中指针和引用的区别
  12. html5结合flash实现视频文件在所有主流浏览器兼容播放
  13. make: Nothing to be done for `all&#39;
  14. jquery 循环数组输出显示在html页面
  15. JavaScript 数值Number类型详解
  16. oracle的卸载
  17. SQL Sever 2008 R2版本添加Northwin数据库错误解决
  18. 屌炸天,Oracle 发布了一个全栈虚拟机 GraalVM,支持 Python!
  19. jquery的设计亮点
  20. Errors running builder &#39;Faceted Project Validation Builder&#39; on project

热门文章

  1. 在WinDBG中查看函数的反汇编代码的命令
  2. Java-Class-@I:org.junit.Test
  3. Date转换为LocalDateTime
  4. k8s 映射 外部服务
  5. jquery实现视频滚动
  6. 常用sign算法
  7. Restoring Road Network Floyd
  8. _IRP struct
  9. 百度开平台BAE搭建网站
  10. Java 局部变量