OpenCores
URL https://opencores.org/ocsvn/mips_enhanced/mips_enhanced/trunk

Subversion Repositories mips_enhanced

[/] [mips_enhanced/] [trunk/] [grlib-gpl-1.0.19-b3188/] [lib/] [gaisler/] [leon3/] [top.vhd] - Rev 2

Compare with Previous | Blame | View Log

----------------------------------------------------------------------------------
-- Company: 
-- Engineer: 
-- 
-- Create Date:    19:13:40 05/26/2009 
-- Design Name: 
-- Module Name:    top - Behavioral 
-- Project Name: 
-- Target Devices: 
-- Tool versions: 
-- Description: 
--
-- Dependencies: 
--
-- Revision: 
-- Revision 0.01 - File Created
-- Additional Comments: 
--
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
library gaisler;
use gaisler.libiu.all;
 
 
---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
 
entity top is
    Port ( din :in cdatatype;
			  zz_ins_i :in cdatatype;
           clk : in  STD_LOGIC;
           rst : in  STD_LOGIC;
			  qa: in  STD_LOGIC_VECTOR (31 downto 0);
			  qb: in  STD_LOGIC_VECTOR (31 downto 0);
			  alu_ur: out std_logic_vector(31 downto 0);
			  iset:in std_logic_vector(1 downto 0);
			  dset:in std_logic_vector(1 downto 0);
			  dmem_data_ur : out std_logic_vector(31 downto 0);
			  dmem_ctl_ur:out std_logic_vector (4 downto 0);
           zz_pc_o1 : out  STD_LOGIC_VECTOR (31 downto 0);
			--  zz_pc_o2 : out  STD_LOGIC_VECTOR (31 downto 0);
			  iack_o:out STD_LOGIC;
			  size:out std_logic_vector (1 downto 0);
			  rdaddra_o:out STD_LOGIC_VECTOR (4 downto 0);
			  rdaddrb_o:out STD_LOGIC_VECTOR (4 downto 0);
			  wb_we_o1:out STD_LOGIC;
			  wb_addr_o1:out STD_LOGIC_VECTOR (4 downto 0);
			  wb_din_o:out STD_LOGIC_VECTOR (31 downto 0);
			  iflush: out std_ulogic;
			  iflushl: out std_ulogic;
           ifline: out std_logic_vector(31 downto 3);
			  dflush: out std_ulogic;
			  dflushl: out std_ulogic;
			  read1:out STD_LOGIC;
			  read2:out STD_LOGIC;
			  hold:in std_ulogic;	
			  inull:out std_ulogic;
			  asi:out STD_LOGIC_VECTOR (7 downto 0);
			  nullify:out std_ulogic;
			  esu:out std_ulogic;
			  msu:out std_ulogic;
			  intack:out std_ulogic;
			  fbranch:out std_logic;
			  rbranch:out std_logic;
			  eenaddr:out std_logic;
			  dmds : in  STD_LOGIC;
			  imds : in  STD_LOGIC;
			  eaddr:out std_logic_vector(31 downto 0);
			  pc_next:out std_logic_vector(31 downto 0);
			  asi_code:out std_logic_vector(4 downto 0)
			  );
end top;
 
architecture Behavioral of top is
 
signal idata:std_logic_vector (31 downto 0);
signal ddata:std_logic_vector (31 downto 0);
signal fbranch1:std_logic;
signal zz_pc:std_logic_vector (31 downto 0);
signal dmem_ctl_ur1:std_logic_vector (4 downto 0);
signal address1:std_logic_vector (4 downto 0);
signal data2:std_logic;
 
component my_mux
Port ( a : in  STD_LOGIC_VECTOR (31 downto 0);
       b : in  STD_LOGIC_VECTOR (31 downto 0);
       c : in  STD_LOGIC_VECTOR (31 downto 0);
       d : in  STD_LOGIC_VECTOR (31 downto 0);
       sel : in  STD_LOGIC_VECTOR (1 downto 0);
       res : out  STD_LOGIC_VECTOR (31 downto 0));
end component;
 
 
component mips_core
port(
 clk,rst,hold,imds,dmds:in std_logic;
 size:out std_logic_vector(1 downto 0);
 zz_ins_i,dout: in std_logic_vector (31 downto 0);
 iack_o : out std_logic;
 zz_pc_o,alu_ur_o,dmem_data_ur_o,wb_din_o :out std_logic_vector (31 downto 0) ; 
 dmem_ctl_ur_o:out std_logic_vector (4 downto 0);
 rdaddra_o:out STD_LOGIC_VECTOR (4 downto 0);
 rdaddrb_o:out STD_LOGIC_VECTOR (4 downto 0);
 wb_we_o:out STD_LOGIC;
 wb_addr_o:out STD_LOGIC_VECTOR (4 downto 0);
 branch :out STD_LOGIC;
 qa: in  STD_LOGIC_VECTOR (31 downto 0);
 qb: in  STD_LOGIC_VECTOR (31 downto 0);
 pc_next : out STD_LOGIC_VECTOR(31 downto 0);
 asi_pass2:out std_logic_vector(4 downto 0)
 );
 end component;
 
 component reg_zero is 
Port(
      address:in std_logic_vector(4 downto 0);
      we_o:   in std_logic;
      address_o: out std_logic_vector(4 downto 0);
      we_o1:  out std_logic
) ;
end component ;
 
begin
eenaddr<=dmem_ctl_ur1(2);
dmem_ctl_ur<=dmem_ctl_ur1;
fbranch<=fbranch1;
rbranch<=fbranch1;
--zz_pc_o1<=zz_pc;
--zz_pc_o2<=zz_pc;
read1<='1';
read2<='1';
iflush<='0';
iflushl<= '0';
ifline<="00000000000000000000000000000";
dflush<='0';
dflushl<= '0';
eaddr<="00000000000000000000000000000000";
inull<='0';
nullify<='0';
esu<='0';
msu<='0';
intack<='0';
 
 
ifzero:reg_zero port map(address => address1,we_o => data2 ,address_o => wb_addr_o1,we_o1 => wb_we_o1);
mux1: my_mux port map (din(0),din(1),din(2),din(3),dset,ddata);
mux2: my_mux port map (zz_ins_i(0),zz_ins_i(1),zz_ins_i(2),zz_ins_i(3),iset,idata);
E1 : mips_core port map (clk =>clk,rst => rst,dout=>ddata,zz_ins_i=>idata,iack_o =>iack_o,zz_pc_o =>zz_pc_o1,alu_ur_o=> alu_ur,hold=>hold,
							dmem_data_ur_o => dmem_data_ur,dmem_ctl_ur_o => dmem_ctl_ur1,qa=>qa,qb=>qb,rdaddra_o=>rdaddra_o,
							rdaddrb_o=>rdaddrb_o,wb_addr_o=>address1,wb_we_o=>data2,wb_din_o=>wb_din_o,size=>size,branch=>fbranch1,imds=>imds,dmds=>dmds,asi_pass2=>asi_code,pc_next=>pc_next);
 
end Behavioral;
 
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.