vhdl的变速器设计

在这方面 VHDL项目 ,具有换档和旋转数据的能力的换档器,其主要用于密码和换位的换向,将在VHDL中实现。 VHDL移位器是即将到来的关键组件 共处理器 的加工单位。快速转换和旋转功能对于加密应用至关重要。

VHDL 移位器的代码将与其TestBench VHDL码一起呈现,用于功能模拟。

 VHDL代码为移位器

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

  • shift_ctrl =“1000”:ShiftOut<= Rotate SHIFTINPUT >>8
  • shift_ctrl =“1001”:ShiftOut<= Rotate SHIFTINPUT >>4
  • shift_ctrl =“1010”:ShiftOut<=左移逻辑ShiftIndupput<< 8

vhdl代码为shifter:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
-- fpga4student.com: FPGA projects, Verilog projects,  VHDL项目 
-- VHDL project:  VHDL代码为移位器 
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 VHDL代码为换档器:

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
-- fpga4student.com: FPGA projects, Verilog projects, VHDL projects
-- VHDL project:  VHDL代码为移位器 
-- VHDL 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示意图:

 vhdl的变速器设计

仿真波形为移位器:

 vhdl的变速器设计


推荐的 VHDL项目 :
1. 什么是FPGA? VHDL如何在FPGA上使用
2. FIFO内存的VHDL代码
3. FIR筛选器的VHDL代码
4. 8位微控制器的VHDL代码
5. 矩阵乘法的VHDL代码
6. 用于开关尾圈计数器的VHDL代码
7. FPGA上数字闹钟的VHDL代码
8. 8位比较器的VHDL代码
9. 如何使用VHDL将文本文件加载到FPGA中
10. D触发器的VHDL代码
11. 完整加法器的VHDL代码
12. VHDL. 中的PWM发生器,具有可变占空比
13. ALU的VHDL代码
14. VHDL. 代码用于测试台的计数器
15. 16位ALU的VHDL代码
16. vhdl的变速器设计
17. VHDL. 中的非线性查找表实现
18. VHDL. 中的加密协处理器设计

19。   Verilog vs vhdl. :通过示例解释
20。  FPGA时钟分频器的VHDL代码
 FPGA Verilog VHDL课程

没意见:

发表评论

趋势FPGA项目