FPGA的教材上面有一个题是实现一个32位的桶形移位器,要求可以在一个时钟周期内对32位数进行逻辑左移、逻辑右移、算术左移、算术右移、循环左移、循环右移。
我当时看到这道题一脸懵逼,什么是桶形移位器?和桶有什么关系?
然后我上百度搜索,看到百度百科里面是这样解释的:
果然看完还是一脸懵逼。
然后我继续在网络上搜索和找好友求助,最后发现了这样一个网站:https://tams.informatik.uni-hamburg.de/applets/hades/webdemos/10-gates/60-barrel/shifter8.html
网站里面有一篇解释barrel shifter
如何实现的文章,看完后依然似懂非懂。但是这个网站有个非常给力的地方,它把电路的仿真做成了一个Java程序可以下载使用,这里提供了一个8位的barrel shifter
逻辑右移仿真程序,于是我把它下载了下来。
启动之后,我按照网页上的说明实际操作了一下这个仿真程序,实现了从0~7位的逻辑右移,上图片: