1、桶形移位器一、题目要求:实现 8 位二进制数左循环、右循环、左逻辑、右逻辑、左算术、右算术这六种功能。二、分析与实现:利用:Y(i+n)=X(i) (i+n0);-左算术-elsif(l_arithmetic=1)thenfor i in 0 to 15 loopif(i+mx(0);-右循环-elsif(r_cycle=1)thenfor i in 15 downto 0 loopif(i-m=0)thentemp_y(i-m):=x(i);elsetemp_y(16+i-m):=x(i);end if;end loop; -右逻辑-elsif(r_logic=1)thenfor i in
2、15 downto 0 loopif(i-m=0)thentemp_y(i-m):=x(i);end if;end loop;temp_y(15 downto 16-m):=(others=0); -右算术-elsif(r_arithmetic=1)thenfor i in 15 downto 0 loopif(i-m=0)thentemp_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 位,得如下结果:左 右循环 0111000101011100 0111000111000101逻辑 0111000101011000 0001000111000101算术 0111000101011111 1111000111000101与期望值一致,结果正确。左循环 右循环左逻辑 右逻辑左算术 右算术