barrel shifter, logarthmic shifter and funnel shifter
2024-10-07 19:38:09
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)
最新文章
- Notepad++编写Markdown
- java 中 ArrayList LinkedList Vector 三者的异同点
- IE8下获取iframe document EVENT对象的问题
- Dijkstra(变形) POJ 1797 Heavy Transportation
- aspx后缀映射成html
- MySQL explain key_len 大小的计算
- [原]sdut2624 Contest Print Server (大水+大坑)山东省第四届ACM省赛
- 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
- .Net 平台下的互联网架构新思考
- android recover 系统代码分析 -- 选择进入
- 浅谈C++中指针和引用的区别
- html5结合flash实现视频文件在所有主流浏览器兼容播放
- make: Nothing to be done for `all&#39;
- jquery 循环数组输出显示在html页面
- JavaScript 数值Number类型详解
- oracle的卸载
- SQL Sever 2008 R2版本添加Northwin数据库错误解决
- 屌炸天,Oracle 发布了一个全栈虚拟机 GraalVM,支持 Python!
- jquery的设计亮点
- Errors running builder &#39;Faceted Project Validation Builder&#39; on project