Advertisement
rommik

clk_dvb_s2x.vhd

Dec 14th, 2019
524
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VHDL 3.14 KB | None | 0 0
  1. library IEEE;
  2. use IEEE.STD_LOGIC_1164.ALL;
  3. use ieee.numeric_std.all;
  4.  
  5. entity clk_dvb_s2x is
  6.     Port(
  7.         i_clk             :  in  std_logic;                              -- тактирование
  8.         i_res             :  in  std_logic;                              -- сброс
  9.         i_enb             :  in  std_logic;                              -- разрешение работы
  10.         i_QAM_select      :  in  std_logic_vector (2 downto 0);          -- выбор модуляции
  11.         i_frame_select    :  in  std_logic_vector (0 downto 0);          -- выбор фрейма
  12.         i_data            :  in  std_logic_vector (0 downto 0);          -- входные данные
  13.         o_data            :  out std_logic_vector (0 downto 0));         -- выходные данные
  14. end entity;
  15.  
  16. architecture Behavioral of clk_dvb_s2x is
  17.  
  18.     signal res_0          :   std_logic;
  19.     signal res_1          :   std_logic;
  20.     signal enb_0          :   std_logic;
  21.     signal enb_1          :   std_logic;
  22.     signal QAM_select_0   :   std_logic_vector (2 downto 0);
  23.     signal QAM_select_1   :   std_logic_vector (2 downto 0);
  24.     signal frame_select_0 :   std_logic_vector (0 downto 0);
  25.     signal frame_select_1 :   std_logic_vector (0 downto 0);
  26.     signal i_data_0       :   std_logic_vector (0 downto 0);
  27.     signal i_data_1       :   std_logic_vector (0 downto 0);
  28.  
  29.     signal o_data_0       :   std_logic_vector (0 downto 0);
  30.     signal o_data_1       :   std_logic_vector (0 downto 0);
  31.     signal o_data_2       :   std_logic_vector (0 downto 0);
  32.    
  33.     component DVB_S2X_interleaver
  34.         Port(
  35.             i_clk           : in  std_logic;                              
  36.             i_res           : in  std_logic;                              
  37.             i_enb           : in  std_logic;                              
  38.             i_QAM_select    : in  std_logic_vector (2 downto 0);          
  39.             i_frame_select  : in  std_logic_vector (0 downto 0);          
  40.             i_data          : in  std_logic_vector (0 downto 0);                              
  41.             o_data          : out std_logic_vector (0 downto 0));
  42.     end component;
  43.  
  44. begin
  45.  
  46. dut: DVB_S2X_interleaver
  47.     port map(
  48.         i_clk          => i_clk,
  49.         i_res          => res_1,
  50.         i_enb          => enb_1,
  51.         i_QAM_select   => QAM_select_1,
  52.         i_frame_select => frame_select_1,
  53.         i_data         => i_data_1,
  54.         o_data         => o_data_0);
  55.          
  56. process(i_clk) begin
  57.     if(rising_edge(i_clk)) then
  58.    
  59.         res_0 <= i_res;
  60.         res_1 <= res_0;
  61.    
  62.         enb_0 <= i_enb;
  63.         enb_1 <= enb_0;
  64.    
  65.         QAM_select_0 <= i_QAM_select;
  66.         QAM_select_1 <= QAM_select_0;
  67.        
  68.         frame_select_0 <= i_frame_select;
  69.         frame_select_1 <= frame_select_0;
  70.    
  71.         i_data_0 <= i_data;
  72.         i_data_1 <= i_data_0;
  73.    
  74.     end if;
  75. end process;
  76.  
  77.  
  78. process(i_clk) begin
  79.     if(rising_edge(i_clk)) then
  80.    
  81.         o_data_1 <= o_data_0;
  82.         o_data_2 <= o_data_1;
  83.         o_data   <= o_data_2;
  84.    
  85.     end if;
  86. end process;
  87.  
  88. end Behavioral;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement