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] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 dimamali
----------------------------------------------------------------------------------
2
-- Company: 
3
-- Engineer: 
4
-- 
5
-- Create Date:    19:13:40 05/26/2009 
6
-- Design Name: 
7
-- Module Name:    top - Behavioral 
8
-- Project Name: 
9
-- Target Devices: 
10
-- Tool versions: 
11
-- Description: 
12
--
13
-- Dependencies: 
14
--
15
-- Revision: 
16
-- Revision 0.01 - File Created
17
-- Additional Comments: 
18
--
19
----------------------------------------------------------------------------------
20
library IEEE;
21
use IEEE.STD_LOGIC_1164.ALL;
22
use IEEE.STD_LOGIC_ARITH.ALL;
23
use IEEE.STD_LOGIC_UNSIGNED.ALL;
24
library gaisler;
25
use gaisler.libiu.all;
26
 
27
 
28
---- Uncomment the following library declaration if instantiating
29
---- any Xilinx primitives in this code.
30
--library UNISIM;
31
--use UNISIM.VComponents.all;
32
 
33
entity top is
34
    Port ( din :in cdatatype;
35
                          zz_ins_i :in cdatatype;
36
           clk : in  STD_LOGIC;
37
           rst : in  STD_LOGIC;
38
                          qa: in  STD_LOGIC_VECTOR (31 downto 0);
39
                          qb: in  STD_LOGIC_VECTOR (31 downto 0);
40
                          alu_ur: out std_logic_vector(31 downto 0);
41
                          iset:in std_logic_vector(1 downto 0);
42
                          dset:in std_logic_vector(1 downto 0);
43
                          dmem_data_ur : out std_logic_vector(31 downto 0);
44
                          dmem_ctl_ur:out std_logic_vector (4 downto 0);
45
           zz_pc_o1 : out  STD_LOGIC_VECTOR (31 downto 0);
46
                        --  zz_pc_o2 : out  STD_LOGIC_VECTOR (31 downto 0);
47
                          iack_o:out STD_LOGIC;
48
                          size:out std_logic_vector (1 downto 0);
49
                          rdaddra_o:out STD_LOGIC_VECTOR (4 downto 0);
50
                          rdaddrb_o:out STD_LOGIC_VECTOR (4 downto 0);
51
                          wb_we_o1:out STD_LOGIC;
52
                          wb_addr_o1:out STD_LOGIC_VECTOR (4 downto 0);
53
                          wb_din_o:out STD_LOGIC_VECTOR (31 downto 0);
54
                          iflush: out std_ulogic;
55
                          iflushl: out std_ulogic;
56
           ifline: out std_logic_vector(31 downto 3);
57
                          dflush: out std_ulogic;
58
                          dflushl: out std_ulogic;
59
                          read1:out STD_LOGIC;
60
                          read2:out STD_LOGIC;
61
                          hold:in std_ulogic;
62
                          inull:out std_ulogic;
63
                          asi:out STD_LOGIC_VECTOR (7 downto 0);
64
                          nullify:out std_ulogic;
65
                          esu:out std_ulogic;
66
                          msu:out std_ulogic;
67
                          intack:out std_ulogic;
68
                          fbranch:out std_logic;
69
                          rbranch:out std_logic;
70
                          eenaddr:out std_logic;
71
                          dmds : in  STD_LOGIC;
72
                          imds : in  STD_LOGIC;
73
                          eaddr:out std_logic_vector(31 downto 0);
74
                          pc_next:out std_logic_vector(31 downto 0);
75
                          asi_code:out std_logic_vector(4 downto 0)
76
                          );
77
end top;
78
 
79
architecture Behavioral of top is
80
 
81
signal idata:std_logic_vector (31 downto 0);
82
signal ddata:std_logic_vector (31 downto 0);
83
signal fbranch1:std_logic;
84
signal zz_pc:std_logic_vector (31 downto 0);
85
signal dmem_ctl_ur1:std_logic_vector (4 downto 0);
86
signal address1:std_logic_vector (4 downto 0);
87
signal data2:std_logic;
88
 
89
component my_mux
90
Port ( a : in  STD_LOGIC_VECTOR (31 downto 0);
91
       b : in  STD_LOGIC_VECTOR (31 downto 0);
92
       c : in  STD_LOGIC_VECTOR (31 downto 0);
93
       d : in  STD_LOGIC_VECTOR (31 downto 0);
94
       sel : in  STD_LOGIC_VECTOR (1 downto 0);
95
       res : out  STD_LOGIC_VECTOR (31 downto 0));
96
end component;
97
 
98
 
99
component mips_core
100
port(
101
 clk,rst,hold,imds,dmds:in std_logic;
102
 size:out std_logic_vector(1 downto 0);
103
 zz_ins_i,dout: in std_logic_vector (31 downto 0);
104
 iack_o : out std_logic;
105
 zz_pc_o,alu_ur_o,dmem_data_ur_o,wb_din_o :out std_logic_vector (31 downto 0) ;
106
 dmem_ctl_ur_o:out std_logic_vector (4 downto 0);
107
 rdaddra_o:out STD_LOGIC_VECTOR (4 downto 0);
108
 rdaddrb_o:out STD_LOGIC_VECTOR (4 downto 0);
109
 wb_we_o:out STD_LOGIC;
110
 wb_addr_o:out STD_LOGIC_VECTOR (4 downto 0);
111
 branch :out STD_LOGIC;
112
 qa: in  STD_LOGIC_VECTOR (31 downto 0);
113
 qb: in  STD_LOGIC_VECTOR (31 downto 0);
114
 pc_next : out STD_LOGIC_VECTOR(31 downto 0);
115
 asi_pass2:out std_logic_vector(4 downto 0)
116
 );
117
 end component;
118
 
119
 component reg_zero is
120
Port(
121
      address:in std_logic_vector(4 downto 0);
122
      we_o:   in std_logic;
123
      address_o: out std_logic_vector(4 downto 0);
124
      we_o1:  out std_logic
125
) ;
126
end component ;
127
 
128
begin
129
eenaddr<=dmem_ctl_ur1(2);
130
dmem_ctl_ur<=dmem_ctl_ur1;
131
fbranch<=fbranch1;
132
rbranch<=fbranch1;
133
--zz_pc_o1<=zz_pc;
134
--zz_pc_o2<=zz_pc;
135
read1<='1';
136
read2<='1';
137
iflush<='0';
138
iflushl<= '0';
139
ifline<="00000000000000000000000000000";
140
dflush<='0';
141
dflushl<= '0';
142
eaddr<="00000000000000000000000000000000";
143
inull<='0';
144
nullify<='0';
145
esu<='0';
146
msu<='0';
147
intack<='0';
148
 
149
 
150
ifzero:reg_zero port map(address => address1,we_o => data2 ,address_o => wb_addr_o1,we_o1 => wb_we_o1);
151
mux1: my_mux port map (din(0),din(1),din(2),din(3),dset,ddata);
152
mux2: my_mux port map (zz_ins_i(0),zz_ins_i(1),zz_ins_i(2),zz_ins_i(3),iset,idata);
153
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,
154
                                                        dmem_data_ur_o => dmem_data_ur,dmem_ctl_ur_o => dmem_ctl_ur1,qa=>qa,qb=>qb,rdaddra_o=>rdaddra_o,
155
                                                        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);
156
 
157
end Behavioral;
158
 

powered by: WebSVN 2.1.0

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