甚高密度脂蛋白 中的移位器设计

在这个 甚高密度脂蛋白 项目 ,具有移位和旋转数据能力的移位器(主要用于密码的排列和转置)将在澳门在线中实现。 甚高密度脂蛋白 移位器是即将到来的关键组件 协处理器 的处理单元。快速移位和旋转功能对于密码应用至关重要。

甚高密度脂蛋白 移位器的代码将与用于功能仿真的测试台澳门在线代码一起提供。

 移位器的澳门在线代码

移位器的输入/输出接口如上图所示。移位器指令集如下:

  • SHIFT_Ctrl =“ 1000”:SHIFTOUT<= Rotate SHIFTINPUT >>8
  • SHIFT_Ctrl =“ 1001”:SHIFTOUT<= Rotate SHIFTINPUT >>4
  • SHIFT_Ctrl =“ 1010”:SHIFTOUT<=左移逻辑SHIFTINPUT<< 8

变速杆的澳门在线代码:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
-- fpga4student.com: FPGA projects, Verilog projects,   甚高密度脂蛋白 项目 
--   甚高密度脂蛋白 项目 :  移位器的澳门在线代码 
entity shifter is
  generic ( N: integer:=16
  );
    Port ( SHIFTINPUT : in  STD_LOGIC_VECTOR(N-1 downto 0);
   SHIFT_Ctrl : in  STD_LOGIC_VECTOR(3 downto 0); 
   SHIFTOUT: out  STD_LOGIC_VECTOR(N-1 downto 0)
  );
end shifter;

architecture Behavioral of shifter is

begin
process(SHIFTINPUT,SHIFT_Ctrl)
begin
case(SHIFT_Ctrl) is
when "1000" => SHIFTOUT <= SHIFTINPUT(7 downto 0)&SHIFTINPUT(15 downto 8);-- ROR8
when "1001" => SHIFTOUT <= SHIFTINPUT(3 downto 0)&SHIFTINPUT(15 downto 4);-- ROR4
when "1010" => SHIFTOUT <= SHIFTINPUT(7 downto 0) & "00000000"; -- SLL8
when others => SHIFTOUT <= x"0000";
end case;
end process;

end Behavioral;

移位器的Testbench 甚高密度脂蛋白 代码:

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
-- fpga4student.com: FPGA projects, Verilog projects,   甚高密度脂蛋白 项目 
--   甚高密度脂蛋白 项目 :  移位器的澳门在线代码 
--  甚高密度脂蛋白  testbench code for Shifter
ENTITY tb_shifter IS
END tb_shifter;
 
ARCHITECTURE behavior OF tb_shifter IS 
 
    -- Component Declaration for Shifter
    COMPONENT shifter
    PORT(
         SHIFTINPUT : IN  std_logic_vector(15 downto 0);
         SHIFT_Ctrl : IN  std_logic_vector(3 downto 0);
         SHIFTOUT : OUT  std_logic_vector(15 downto 0)
        );
    END COMPONENT;
   
   --Inputs
   signal SHIFTINPUT : std_logic_vector(15 downto 0) := (others => '0');
   signal SHIFT_Ctrl : std_logic_vector(3 downto 0) := (others => '0');
  --Outputs
   signal SHIFTOUT : std_logic_vector(15 downto 0);
 
BEGIN
 
 -- Instantiate the Shifter
   uut: shifter PORT MAP (
          SHIFTINPUT => SHIFTINPUT,
          SHIFT_Ctrl => SHIFT_Ctrl,
          SHIFTOUT => SHIFTOUT
        );

   -- Stimulus process for shifter
   stim_proc: process
   begin  
      SHIFTINPUT <= x"0044";
      wait for 100 ns; 
  SHIFT_Ctrl <= "1000";-- ROR8
  wait for 100 ns; 
  SHIFT_Ctrl <= "1001";-- ROR4
  wait for 100 ns; 
  SHIFT_Ctrl <= "1010";-- SLL8
      wait;
   end process;

END;

移位器的综合RTL原理图:

  甚高密度脂蛋白 中的移位器设计

移位器的仿真波形:

  甚高密度脂蛋白 中的移位器设计


推荐的 甚高密度脂蛋白 项目 :
1. 什么是FPGA? 甚高密度脂蛋白 如何在FPGA上工作
2. FIFO存储器的澳门在线代码
3. FIR滤波器的澳门在线代码
4. 8位微控制器的澳门在线代码
5. 矩阵乘法的澳门在线代码
6. 开关尾环计数器的澳门在线代码
7. FPGA上数字闹钟的澳门在线代码
8. 8位比较器的澳门在线代码
9. 如何使用澳门在线将文本文件加载到FPGA中
10. D触发器的澳门在线代码
11. 完整加法器的澳门在线代码
12. 具有可变占空比的澳门在线中的PWM发生器
13. ALU的澳门在线代码
14. 带测试平台的计数器的澳门在线代码
15. 16位ALU的澳门在线代码
16. 甚高密度脂蛋白 中的移位器设计
17. 甚高密度脂蛋白 中的非线性查找表实现
18. 甚高密度脂蛋白 中的密码协处理器设计

19   Verilog和澳门在线 :通过示例解释
20  FPGA上时钟分频器的澳门在线代码
 FPGA Verilog  甚高密度脂蛋白 课程

没意见:

发表评论

热门FPGA项目