(16位通用移位电路.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(16位通用移位电路

姓名 学号 报告人联系方式 电话: Email 设计题目要求 已知一个16-bit循环移位(右移)电路的功能表如右。信号S是移位数,A是移位前的并行输入,Y是移位后的并行输出。(1)完成该电路的硬件设计。要求估算电路占用的资源大小及电路的速度。(2)以该移位电路为核心,扩展设计一个能完成算术左移、算术右移、逻辑左移、逻辑右移、循环左移、循环右移。 设计工具及版本 Quartus II 13.0 64-bit 和 Modelsim-Altera 10.1d 设计原理及结构方案 本次设计主要使用74157(二输入四路复用器)为基本单元,通过四个74157组成16位数据选择器,然后在选择端口改变输入数据位,形成移动1位,移动2位,移动4位,移动8位的循环右移模块,再将四个模块组合起来形成1到16位的循环右移模块;由于循环左移n位数据,可以看成循环右移8-n位数据,所以循环左移模块可以通过循环右移模块与一个实现8-n的减法器组合来实现。逻辑左移与算术左移的移位方法一样,对于移动n位的数据,可以通过将前n个高位数据转为0然后循环左移,形成最低位补0的循环移位;算术右移n位,可以通过将低n位数据转为最高位数据再循环右移形成;逻辑右移n位数据,可以通过将低n位数据转为1再循环右移形成。 具体电路方案:首先设计出循环右移模块,再扩展成循环左右移模块;然后分别设计出逻辑移位数据转换模块,算术移位数据转换模块,通过数据选择器选择相应功能的16位数据,再与循环左右移模块组合形成具有不同功能的通用移位模块。 电路设计具体描述 据VLSI课程的知识,设计出循环右移电路实现如下: 图1 循环右移1位模块 图2 循环右移1位原理图 根据右移1位模块,原理同上,可以设计出右移1到16位电路: 图3 循环右移1到16位模块图 根据老师上课讲的知识,可以知道此模块节省器件,延迟稍大。 图4 循环右移一位symbol 图5 1到16位循环右移电路 如上图所示,shift1,shift2,shift3,shift4分别为1位,2位,4位,8位移位电路的symbol,组合起来形成16位循环右移电路。 循环左移电路实现: 循环左移n位数据可以看做循环右移8-n位数据;首先设计出8-n位减法器电路: 图6 8-n减法器 图7 8-n减法器symbol 将移位数据选择端S0,S1,S2,S3连接到8-n数据口d0,d1,d2,d3,其中减法器中sel端口是用来选择数据8-n和数据n(S3S2S1S0),即可以用来选择循环左移和右移;将减法器输出数据端口连接到循环右移电路的移位数据选择端实现循环左右移电路。 逻辑移位电路实现: 逻辑移位要求:逻辑左移时,低位移向高位,最低位补“0”;逻辑右移时,高位移向低位,最高位移入“1”。 逻辑左移n位时,可以将高n位的数据转为0,再通过循环左移电路实现最低位补0; 逻辑右移n位时,可以将低n为的数据转为1,再通过循环右移电路实现最高位移入1; 算术移位电路实现: 算术移位要求:算术左移时,低位移向高位,最低位补“0”,与逻辑左移相同;算术右移时,高位移向低位,最高位维持原值不变。 算术左移n位时,可以采用逻辑移位的方法; 算术右移n位时,可以将低n位的数据转为最高位A15的值,这个可以通过两位数据选择器实现,再通过循环右移电路实现最高位保持原值。 图8 数据转换电路 上图中,输入数据n(IN4 IN3 IN2 IN1),则输出16位数据,其中低n位全为0,高n位数据全为1,例如,输入0010,则输出1111 1111 1111 1100,这个电路可以用来实现逻辑移位和算术移位时的数据转换。 图9 数据转换电路symbol 图10 逻辑/算术左移数据转换电路 图10中,输入数据A15~A0和移位数据选择端S3S2S1S0(n位移位),则输出高n位数据为0,其他位保持不变,如输入A15~A0,0010(S3S2S1S0),将输出位连到循环左移电路端口即实现逻辑左移。 同理,可以得到逻辑右移数据转换电路和算术右移数据转换电路。 图11 逻辑右移数据转换电路symbol 图12 算术右移数据转换电路symbol 图13 算术/逻辑左移数据转换电路symbol 整体电路原理图: 在上图中,首先通过扩展后的16位数据选择器选择转换后的逻辑右移数据和转换后的算术右移数据,sel1控制数据选择,sel1=0时选择逻辑右移数据,sel1=1选择逻辑算术右移数据,输出的16位数据连接到下一个16位数据选择器b端口,a端口接转换后的逻辑/算术左移数据,sel0控制数据选择,sel0=0时选择逻辑/算术左移移数据,sel0=1选择上一级数据选择器输出数据,

文档评论(0)

64348377 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档