Chapter 5
テキストは下のようにメモリーマップしている。
- 0~16383番地: RAM
- 16384~24575番地: Screen
- 24576番地: Keyboard
ここではひとまず下のように割り当てておく。
- 0~7番地: RAM
- 8~15番地: Screen
- 16番地: Keyboard
library ieee; use ieee.std_logic_1164.all; entity memory is port ( inp: in std_logic_vector(15 downto 0); clk: in std_logic; address: in std_logic_vector(14 downto 0); load: in std_logic; dip_sw: in std_logic_vector(15 downto 0); outp: out std_logic_vector(15 downto 0) ); end entity; architecture behavior of memory is signal outp_ram8, outp_screen, outp_keyboard: std_logic_vector(15 downto 0); begin ram: entity work.ram8 port map ( inp => inp, clk => clk, load => load, address => address(2 downto 0), outp => outp_ram8 ); screen: entity work.ram8 port map ( inp => inp, clk => clk, load => load, address => address(2 downto 0), outp => outp_screen ); keyboard: entity work.register_16_bit port map ( clk => clk, load => '1', d => dip_sw, q => outp_keyboard ); mux: entity work.mux4way16 port map ( a => outp_ram8, b => outp_screen, c => outp_keyboard, d => x"0000", sel => address(4 downto 3), outp => outp ); end architecture;
動作未確認