信号与信息处理研究生实验4桶形移位器.doc_第1页
信号与信息处理研究生实验4桶形移位器.doc_第2页
信号与信息处理研究生实验4桶形移位器.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

桶形移位器 一、题目要求:实现8位二进制数左循环、右循环、左逻辑、右逻辑、左算术、右算术这六种功能。二、分析与实现:利用:Y(i+n)=X(i) (i+n16)来实现移位(左)。逻辑和算术,则对没移位的位的补0(或1);循环(左),则再利用公式Y(i+n-16)=X(i),即可把没移位的位进行桶形移位。按以上分析,其VHDL代码如下:entity barral_shift_16 isport(x:in std_logic_vector(15 downto 0); -输入数据 l_cycle,l_logic,l_arithmetic:in std_logic; -分别为左循环,左移位,左算术 r_cycle,r_logic,r_arithmetic:in std_logic; -分别为右循环,右移位,右算术 n:in std_logic_vector(3 downto 0); -移的位数 y:out std_logic_vector(15 downto 0); -结果end barral_shift_16;architecture Behavioral of barral_shift_16 isbeginprocess(x,l_cycle,l_logic,l_arithmetic,r_cycle,r_logic,r_arithmetic,n)variable temp_y:std_logic_vector(15 downto 0);variable m:integer;beginm:=conv_integer(n);-左循环-if(l_cycle=1)then for i in 0 to 15 loop if(i+m=15)then temp_y(i+m):=x(i); else temp_y(i+m-16):=x(i); end if; end loop;-左逻辑- elsif(l_logic=1)thenfor i in 0 to 15 loop if(i+m0);-左算术- elsif(l_arithmetic=1)thenfor i in 0 to 15 loop if(i+mx(0);-右循环- elsif(r_cycle=1)then for i in 15 downto 0 loop if(i-m=0)then temp_y(i-m):=x(i); else temp_y(16+i-m):=x(i); end if; end loop; -右逻辑- elsif(r_logic=1)then for i in 15 downto 0 loop if(i-m=0)then temp_y(i-m):=x(i); end if;end loop; temp_y(15 downto 16-m):=(others=0); -右算术- elsif(r_arithmetic=1)then for i in 15 downto 0 loop if(i-m=0)then temp_y(i-m):=x(i); end if;end loop; temp_y(15 downto 16-m):=(others=x(15);- end if; y=temp_y;end process;end Behavioral;三、仿真结果 对1000111000101011进行上述功能仿真,移位为3位,得如下结果:左右循环01110001010111000111000111000101逻辑0111000101011000000100011

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论