Line 1... |
Line 1... |
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
-- TITLE: Controller / Opcode Decoder
|
-- TITLE: Controller / Opcode Decoder
|
-- AUTHOR: Steve Rhoads (rhoadss@yahoo.com)
|
-- AUTHOR: Steve Rhoads (rhoadss@yahoo.com)
|
-- DATE CREATED: 2/8/01
|
-- DATE CREATED: 2/8/01
|
-- FILENAME: control.vhd
|
-- FILENAME: control.vhd
|
-- PROJECT: MIPS CPU core
|
-- PROJECT: M-lite CPU core
|
-- COPYRIGHT: Software placed into the public domain by the author.
|
-- COPYRIGHT: Software placed into the public domain by the author.
|
-- Software 'as is' without warranty. Author liable for nothing.
|
-- Software 'as is' without warranty. Author liable for nothing.
|
|
-- NOTE: MIPS(tm) is a registered trademark of MIPS Technologies.
|
|
-- MIPS Technologies does not endorse and is not associated with
|
|
-- this project.
|
-- DESCRIPTION:
|
-- DESCRIPTION:
|
-- Controls the CPU by decoding the opcode and generating control
|
-- Controls the CPU by decoding the opcode and generating control
|
-- signals to the rest of the CPU.
|
-- signals to the rest of the CPU.
|
-- This entity decodes the MIPS opcode into a Very-Long-Word-Instruction.
|
-- This entity decodes the MIPS(tm) opcode into a
|
|
-- Very-Long-Word-Instruction.
|
-- The 32-bit opcode is converted to a
|
-- The 32-bit opcode is converted to a
|
-- 6+6+6+16+5+2+3+3+2+2+3+2+4 = 60 bit VLWI opcode.
|
-- 6+6+6+16+5+2+3+3+2+2+3+2+4 = 60 bit VLWI opcode.
|
-- Based on information found in:
|
-- Based on information found in:
|
-- "MIPS RISC Architecture" by Gerry Kane and Joe Heinrich
|
-- "MIPS RISC Architecture" by Gerry Kane and Joe Heinrich
|
-- and "The Designer's Guide to VHDL" by Peter J. Ashenden
|
-- and "The Designer's Guide to VHDL" by Peter J. Ashenden
|
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
library ieee;
|
library ieee;
|
use ieee.std_logic_1164.all;
|
use ieee.std_logic_1164.all;
|
use work.mips_pack.all;
|
use work.mlite_pack.all;
|
|
|
entity control is
|
entity control is
|
port(opcode : in std_logic_vector(31 downto 0);
|
port(opcode : in std_logic_vector(31 downto 0);
|
intr_signal : in std_logic;
|
intr_signal : in std_logic;
|
pause_in : in std_logic;
|
pause_in : in std_logic;
|