Advertisement
adolf01

Untitled

Jun 11th, 2020
2,139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VHDL 2.63 KB | None | 0 0
  1. library ieee;
  2. use ieee.std_logic_1164.all;
  3. use ieee.numeric_std.all;
  4.  
  5. entity SIMPLE_SRAM_CONTROLLER is
  6.  
  7.     port
  8.     (
  9.             CLK     :   in  std_logic;
  10.             RESET       :   in  std_logic:='1';
  11.             RnW     :   in std_logic:='1';
  12.             ADDR    :   in unsigned(15 downto 0);
  13.             DATA_IN :   in std_logic_vector(7 downto 0):="00000000";
  14.             DATA_OUT    :   OUT std_logic_vector(7 downto 0) := "ZZZZZZZZ";
  15.             DATA_BUS    :   INOUT   std_logic_vector(7 downto 0) :="ZZZZZZZZ";
  16.             SRAM_ADDR:  OUT std_logic_vector(16 downto 0) := "00000000000000000";
  17.             SRAM_DATA:  INOUT   std_logic_vector(7 downto 0) :="ZZZZZZZZ";
  18.             SRAM_REGISTER   :   BUFFER std_logic_vector(7 downto 0):="00000000";
  19.             SRAM_CS :   BUFFER std_logic:='1'
  20.     );
  21.  
  22. end entity;
  23.  
  24. architecture behavioral of SIMPLE_SRAM_CONTROLLER is
  25. signal CACHE    :   std_logic_vector(7 downto 0);
  26.  
  27. begin
  28. SRAM_ADDR(13 downto 0) <= std_logic_vector(ADDR(13 downto 0));
  29. SRAM_ADDR(16 downto 14) <= SRAM_REGISTER(2 downto 0);
  30.  
  31.  
  32. --      manage_cache:process(CLK)
  33. --      begin
  34. --      DATA_BUS <= "ZZZZZZZZ";
  35. --      if RnW = '0' then
  36. --          CACHE <= DATA_BUS;
  37. --      else
  38. --          DATA_BUS <= CACHE;
  39. --      end if;
  40. --      end process;
  41. --     
  42. --     
  43. --      register_setup:process(RESET,ADDR,RnW)
  44. --      begin
  45. --      if RESET = '0' then
  46. --          SRAM_REGISTER <= "00000000";
  47. --      else
  48. --          if to_integer(ADDR(15 downto 0)) = 16#CE00# then
  49. --              if RnW = '0' then
  50. --                  SRAM_REGISTER <= CACHE;
  51. --              else
  52. --                  --SRAM_REGISTER <= "ZZZZZZZZ";
  53. --                  CACHE <= SRAM_REGISTER;
  54. --              end if;
  55. --          end if;
  56. --      end if;
  57. --      end process;
  58.  
  59.  
  60.  
  61.  
  62. decode:process(RESET,CLK)
  63. begin
  64.  
  65. --wait until CLK = '1';
  66. DATA_BUS <= "ZZZZZZZZ";
  67. if RESET = '0' then
  68.     SRAM_CS <= '1';
  69.     SRAM_REGISTER<="00000000";
  70. else
  71.     if to_integer(ADDR(15 downto 0)) = 16#CE00# then
  72.         if RnW = '0' then
  73.             --SRAM_REGISTER <= DATA_BUS;
  74.             SRAM_REGISTER <= DATA_BUS;
  75.         else
  76.             SRAM_REGISTER <= "ZZZZZZZZ";
  77.             DATA_BUS <= SRAM_REGISTER;
  78.         end if;
  79.     else
  80.         if to_integer(ADDR(15 downto 12)) >= 16#8# AND to_integer(ADDR(15 downto 12)) <= 16#B# then
  81.             SRAM_CS <= '0';
  82.            
  83.             if RnW = '0' then
  84.                 DATA_BUS <= "ZZZZZZZZ";
  85.                 SRAM_DATA <= DATA_BUS;
  86.             else
  87.                 SRAM_DATA <= "ZZZZZZZZ";
  88.                 DATA_BUS <= SRAM_DATA;
  89.             end if;
  90.         else
  91.             SRAM_CS <= '1';
  92.             SRAM_DATA <= "ZZZZZZZZ";
  93.         end if;
  94.     end if;
  95.     --wait until CLK = '1';
  96.     SRAM_CS <= '1';
  97.     DATA_BUS <= "ZZZZZZZZ";
  98.     --SRAM_REGISTER <= CACHE;
  99. end if;
  100.  
  101. end process;
  102. --     
  103. --      SRAM_TRANS:process(RESET,ADDR)
  104. --      begin
  105. --      if RESET = '0' then
  106. --          --CS <= '1';
  107. --      else
  108. --          if RnW = '1' then
  109. --              SRAM_DATA <= "ZZZZZZZZ";
  110. --              DATA_OUT <= SRAM_DATA;
  111. --          else
  112. --              SRAM_DATA <= DATA_IN;
  113. --          end if;
  114. --      end if;
  115. --      end process;
  116.  
  117. end behavioral;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement