Advertisement
Guest User

Untitled

a guest
Dec 11th, 2018
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VHDL 2.12 KB | None | 0 0
  1. -- cpu.vhd: Simple 8-bit CPU (BrainF*ck interpreter)
  2. -- Copyright (C) 2018 Brno University of Technology,
  3. --                    Faculty of Information Technology
  4. -- Author(s): Jakub Sadílek
  5. --  Login: xsadil07
  6.  
  7. library ieee;
  8. use ieee.std_logic_1164.all;
  9. use ieee.std_logic_arith.all;
  10. use ieee.std_logic_unsigned.all;
  11.  
  12. -- ----------------------------------------------------------------------------
  13. --                        Entity declaration
  14. -- ----------------------------------------------------------------------------
  15. entity cpu is
  16.  port (
  17.    CLK   : in std_logic;  -- hodinovy signal
  18.    RESET : in std_logic;  -- asynchronni reset procesoru
  19.    EN    : in std_logic;  -- povoleni cinnosti procesoru
  20.  
  21.    -- synchronni pamet ROM
  22.    CODE_ADDR : out std_logic_vector(11 downto 0); -- adresa do pameti
  23.    CODE_DATA : in std_logic_vector(7 downto 0);   -- CODE_DATA <- rom[CODE_ADDR] pokud CODE_EN='1'
  24.    CODE_EN   : out std_logic;                     -- povoleni cinnosti
  25.    
  26.    -- synchronni pamet RAM
  27.    DATA_ADDR  : out std_logic_vector(9 downto 0); -- adresa do pameti
  28.    DATA_WDATA : out std_logic_vector(7 downto 0); -- mem[DATA_ADDR] <- DATA_WDATA pokud DATA_EN='1'
  29.    DATA_RDATA : in std_logic_vector(7 downto 0);  -- DATA_RDATA <- ram[DATA_ADDR] pokud DATA_EN='1'
  30.    DATA_RDWR  : out std_logic;                    -- cteni z pameti (DATA_RDWR='1') / zapis do pameti (DATA_RDWR='0')
  31.    DATA_EN    : out std_logic;                    -- povoleni cinnosti
  32.    
  33.    -- vstupni port
  34.    IN_DATA   : in std_logic_vector(7 downto 0);   -- IN_DATA obsahuje stisknuty znak klavesnice pokud IN_VLD='1' a IN_REQ='1'
  35.    IN_VLD    : in std_logic;                      -- data platna pokud IN_VLD='1'
  36.    IN_REQ    : out std_logic;                     -- pozadavek na vstup dat z klavesnice
  37.    
  38.    -- vystupni port
  39.    OUT_DATA : out  std_logic_vector(7 downto 0);  -- zapisovana data
  40.    OUT_BUSY : in std_logic;                       -- pokud OUT_BUSY='1', LCD je zaneprazdnen, nelze zapisovat,  OUT_WE musi byt '0'
  41.    OUT_WE   : out std_logic                       -- LCD <- OUT_DATA pokud OUT_WE='1' a OUT_BUSY='0'
  42.  );
  43. end cpu;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement