Portmap Code

 

Lower Level Portmap

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_arith.ALL;

ENTITY scoreboard IS
	PORT(
		rst, clk, cds:	IN		STD_LOGic;
		dswitches: 	IN		std_logic_vector(13 downto 0);
		lights : OUT	STD_LOGIC_VECTOR(3 downto 0));
END scoreboard;

ARCHITECTURE scoreboard_behavior OF scoreboard IS
	component program_memory
		port(memory: in	std_logic_vector(3 downto 0);
			 q: out	std_logic_vector(13 downto 0));
	end component;
	component accumulator
		port(clk, rst: in std_logic;
			 data1: in std_logic_vector(3 downto 0);
			 data2: in std_logic_vector(3 downto 0);
 			 cont: in std_logic_vector(2 downto 0);
			 aquaman: out std_logic_vector(3 downto 0);
			 counter3: out std_logic);
	end component;
	component light_register
		port(clk, rst: in std_logic;
			 data1: in std_logic_vector(7 downto 4);
			 aquaman: in std_logic_vector(3 downto 0);
			 light_control: in std_logic_vector(9 downto 8);
			 data2: out std_logic_vector(3 downto 0);
			 lights: out std_logic_vector(3 downto 0));
	end component;
	component instruction_register
		port(clk, rst, cds: in std_logic;
			 q, dswitches: in std_logic_vector(13 downto 0);
			 counter1: out std_logic_vector(3 downto 0);
			 data1: out std_logic_vector(7 downto 4);
			 light_control: out std_logic_vector(9 downto 8);
			 cont: out std_logic_vector(12 downto 10);
			 counter2: out std_logic);
	end component;
	component program_counter
		port(counter2: in std_logic;
			 counter3: in std_logic;
			 counter1: in std_logic_vector(3 downto 0);
			 memory: out std_logic_vector(3 downto 0));
	end component;
signal memory, data2, aquaman, counter1: std_logic_vector(3 downto 0);
signal cont: std_logic_vector(12 downto 10);
signal data1: std_logic_vector(7 downto 4);
signal counter2, counter3: std_logic;
signal light_control: std_logic_vector(9 downto 8);
signal q: std_logic_vector(13 downto 0);
	   
BEGIN
	pm: program_memory port map(memory,q);
	pc: program_counter port map(counter2, counter3, counter1, memory);
	lr: light_register port map(clk, rst, data1, aquaman, light_control, data2, lights);
	ac: accumulator port map(clk, rst, data1, data2, cont, aquaman, counter3);
	ir: instruction_register port map(clk, rst, cds, q, dswitches, counter1, 
									  data1, light_control, cont, counter2);
END scoreboard_behavior;

 

 

Upper Level Portmap

 

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_arith.ALL;

ENTITY lab1 IS
	PORT(
		rst, clk, cds:	IN		STD_LOGic;
		dswitches:		IN		std_logic_vecToR(13 downto 0);
		lights : OUT	STD_LOGIC_VECTOR(3 downto 0));
		
END lab1;

ARCHITECTURE lab1_behavior OF lab1 IS
	component scoreboard
		port(rst, clk, cds: in	std_logic;
			 dswitches:		in std_logic_vecTOr(13 downto 0);
			 lights: out	std_logic_vector(3 downto 0));
	end component;
	component clockdivider
		port(rst, clk: in std_logic;
			 clockbits: out std_logic_vector(7 downto 0));
	end component;
	signal clockbits: std_logic_vector(7 downto 0);	   
	
BEGIN
		cd: clockdivider port map(rst, clk, clockbits);
		sb: scoreboard port map(rst, clockbits(7), cds, dswitches, lights);
				
END lab1_behavior;



Click here to return to the VHDL menu.