adolf01

Untitled

Jun 11th, 2020
1,786
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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;
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×