Current "control" VHDL Code
Current "control" VHDL Code
Current "control" VHDL Code
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
--- <strong>Current</strong> "control" <strong>VHDL</strong> <strong>Code</strong><br />
--- <strong>Current</strong> file name: control.vhd<br />
--- Last Revised: 12/3/2008; 7:15 p.m.<br />
--- Author: WDR<br />
--- Copyright: William D. Richard, Ph.D., 2008<br />
LIBRARY IEEE ;<br />
USE IEEE.STD_LOGIC_1164.ALL ;<br />
use IEEE.STD_LOGIC_UNSIGNED.ALL ;<br />
use IEEE.STD_LOGIC_ARITH.ALL ;<br />
ENTITY control IS<br />
PORT (clk : IN STD_LOGIC ;<br />
opcode : IN STD_LOGIC_VECTOR(4 DOWNTO 0) ;<br />
n_eq_zero : IN STD_LOGIC ;<br />
con : IN STD_LOGIC ;<br />
done : IN STD_LOGIC ;<br />
reset_l : IN STD_LOGIC ;<br />
a_in : OUT STD_LOGIC ;<br />
c_in : OUT STD_LOGIC ;<br />
c_out : OUT STD_LOGIC ;<br />
pc_in : OUT STD_LOGIC ;<br />
pc_out : OUT STD_LOGIC ;<br />
con_in : OUT STD_LOGIC ;<br />
decr : OUT STD_LOGIC ;<br />
ld : OUT STD_LOGIC ;<br />
c1_out : OUT STD_LOGIC ;<br />
c2_out : OUT STD_LOGIC ;<br />
ir_in : OUT STD_LOGIC ;<br />
gra : OUT STD_LOGIC ;<br />
grb : OUT STD_LOGIC ;<br />
grc : OUT STD_LOGIC ;<br />
r_in : OUT STD_LOGIC ;<br />
r_out : OUT STD_LOGIC ;<br />
ba_out : OUT STD_LOGIC ;<br />
md_bus : OUT STD_LOGIC ;<br />
md_rd : OUT STD_LOGIC ;<br />
md_wr : OUT STD_LOGIC ;<br />
md_out : OUT STD_LOGIC ;<br />
ma_in : OUT STD_LOGIC ;<br />
read : OUT STD_LOGIC ;<br />
write : OUT STD_LOGIC ;<br />
add : OUT STD_LOGIC ;<br />
sub : OUT STD_LOGIC ;<br />
andx : OUT STD_LOGIC ;<br />
orx : OUT STD_LOGIC ;<br />
notx : OUT STD_LOGIC ;<br />
neg : OUT STD_LOGIC ;<br />
c_eq_b : OUT STD_LOGIC ;<br />
inc4 : OUT STD_LOGIC ;<br />
shr : OUT STD_LOGIC ;<br />
shra : OUT STD_LOGIC ;<br />
shl : OUT STD_LOGIC ;<br />
shc : OUT STD_LOGIC) ;<br />
END control ;<br />
ARCHITECTURE behavioral of control IS<br />
COMPONENT controlstore
BEGIN<br />
PORT (d : OUT STD_LOGIC_VECTOR(47 DOWNTO 0) ;<br />
address : IN STD_LOGIC_VECTOR(8 DOWNTO 0)) ;<br />
END COMPONENT ;<br />
SIGNAL upc : STD_LOGIC_VECTOR(8 DOWNTO 0) ;<br />
SIGNAL d : STD_LOGIC_VECTOR(47 DOWNTO 0) ;<br />
SIGNAL brcondition : STD_LOGIC_VECTOR(2 DOWNTO 0) ;<br />
SIGNAL braddress : STD_LOGIC_VECTOR(8 DOWNTO 0) ;<br />
clkd:PROCESS(clk)<br />
BEGIN<br />
IF (clk'EVENT AND clk='1') THEN<br />
IF (reset_l = '0') THEN<br />
upc
a_out