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

Subversion Repositories ao486

[/] [ao486/] [trunk/] [sim/] [verilator/] [ao486/] [main.v] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 alfik
module main(
2
    input               clk,
3
    input               rst_n,
4
 
5
    //--------------------------------------------------------------------------
6
    input               interrupt_do,
7
    input   [7:0]       interrupt_vector,
8
    output              interrupt_done,
9
 
10
    //-------------------------------------------------------------------------- Altera Avalon io bus
11
    output  [15:0]      avalon_io_address,
12
    output  [3:0]       avalon_io_byteenable,
13
 
14
    output              avalon_io_read,
15
    input               avalon_io_readdatavalid,
16
    input   [31:0]      avalon_io_readdata,
17
 
18
    output              avalon_io_write,
19
    output  [31:0]      avalon_io_writedata,
20
 
21
    input               avalon_io_waitrequest,
22
 
23
    //memory master
24
    output      [31:0]  sdram_address,
25
    output      [3:0]   sdram_byteenable,
26
    output              sdram_read,
27
    input       [31:0]  sdram_readdata,
28
    output              sdram_write,
29
    output      [31:0]  sdram_writedata,
30
    input               sdram_waitrequest,
31
    input               sdram_readdatavalid,
32
    output      [2:0]   sdram_burstcount,
33
 
34
    //vga master
35
    output      [31:0]  vga_address,
36
    output      [3:0]   vga_byteenable,
37
    output              vga_read,
38
    input       [31:0]  vga_readdata,
39
    output              vga_write,
40
    output      [31:0]  vga_writedata,
41
    input               vga_waitrequest,
42
    input               vga_readdatavalid,
43
    output      [2:0]   vga_burstcount,
44
 
45
    //----------------------- debug
46
    output              tb_finish_instr,
47
    //SW
48
 
49
    output  [15:0]      dbg_io_address,
50
    output  [3:0]       dbg_io_byteenable,
51
    output              dbg_io_write,
52
    output              dbg_io_read,
53
    output  [31:0]      dbg_io_data,
54
 
55
    output  [7:0]       dbg_int_vector,
56
    output              dbg_int,
57
 
58
    output  [7:0]       dbg_exc_vector,
59
    output              dbg_exc,
60
 
61
    output  [31:0]      dbg_mem_address,
62
    output  [3:0]       dbg_mem_byteenable,
63
    output              dbg_mem_write,
64
    output              dbg_mem_read,
65
    output  [31:0]      dbg_mem_data
66
);
67
 
68
//------------------------------------------------------------------------------
69
 
70
wire [31:0] avm_address;
71
wire [31:0] avm_writedata;
72
wire [3:0]  avm_byteenable;
73
wire [2:0]  avm_burstcount;
74
wire        avm_write;
75
wire        avm_read;
76
 
77
wire        avm_waitrequest     = mem_waitrequest;
78
wire        avm_readdatavalid   = mem_readdatavalid;
79
wire [31:0] avm_readdata        = mem_readdata;
80
 
81
 
82
wire [31:0] mem_readdata;
83
wire        mem_waitrequest;
84
wire        mem_readdatavalid;
85
 
86
wire [29:0] mem_address         = avm_address[31:2];
87
wire [3:0]  mem_byteenable      = avm_byteenable;
88
wire        mem_read            = avm_read;
89
wire        mem_write           = avm_write;
90
wire [31:0] mem_writedata       = avm_writedata;
91
wire [2:0]  mem_burstcount      = avm_burstcount;
92
 
93
//------------------------------------------------------------------------------
94
 
95
wire [17:0] SW = 18'h0007F;
96
 
97
ao486 ao486_inst(
98
    .clk                        (clk),                      //input
99
    .rst_n                      (rst_n),                    //input
100
 
101
    .rst_internal_n             (rst_n),                    //input
102
 
103
    //--------------------------------------------------------------------------
104
    .interrupt_do               (interrupt_do),             //input
105
    .interrupt_vector           (interrupt_vector),         //input [7:0]
106
    .interrupt_done             (interrupt_done),           //output
107
 
108
    //-------------------------------------------------------------------------- Altera Avalon memory bus
109
    .avm_address                (avm_address),              //output [31:0]
110
    .avm_writedata              (avm_writedata),            //output [31:0]
111
    .avm_byteenable             (avm_byteenable),           //output [3:0]
112
    .avm_burstcount             (avm_burstcount),           //output [2:0]
113
    .avm_write                  (avm_write),                //output
114
    .avm_read                   (avm_read),                 //output
115
 
116
    .avm_waitrequest            (avm_waitrequest),          //input
117
    .avm_readdatavalid          (avm_readdatavalid),        //input
118
    .avm_readdata               (avm_readdata),             //input [31:0]
119
 
120
    //-------------------------------------------------------------------------- Altera Avalon io bus
121
    .avalon_io_address          (avalon_io_address),        //output [15:0]
122
    .avalon_io_byteenable       (avalon_io_byteenable),     //output [3:0]
123
 
124
    .avalon_io_read             (avalon_io_read),           //output
125
    .avalon_io_readdatavalid    (avalon_io_readdatavalid),  //input
126
    .avalon_io_readdata         (avalon_io_readdata),       //input [31:0]
127
 
128
    .avalon_io_write            (avalon_io_write),          //output
129
    .avalon_io_writedata        (avalon_io_writedata),      //output [31:0]
130
 
131
    .avalon_io_waitrequest      (avalon_io_waitrequest),    //input
132
 
133
    //-------------------------------------------------------------------------- debug
134
    .SW                         (SW),                       //input [17:0]
135
    .tb_finish_instr (tb_finish_instr),
136
 
137
    .dbg_io_address     (dbg_io_address),
138
    .dbg_io_byteenable  (dbg_io_byteenable),
139
    .dbg_io_write       (dbg_io_write),
140
    .dbg_io_read        (dbg_io_read),
141
    .dbg_io_data        (dbg_io_data),
142
 
143
    .dbg_int_vector     (dbg_int_vector),
144
    .dbg_int            (dbg_int),
145
 
146
    .dbg_exc_vector     (dbg_exc_vector),
147
    .dbg_exc            (dbg_exc),
148
 
149
    .dbg_mem_address    (dbg_mem_address),
150
    .dbg_mem_byteenable (dbg_mem_byteenable),
151
    .dbg_mem_write      (dbg_mem_write),
152
    .dbg_mem_read       (dbg_mem_read),
153
    .dbg_mem_data       (dbg_mem_data)
154
);
155
 
156
//------------------------------------------------------------------------------
157
 
158
wire [1:0]  ctrl_address    = 2'd0;
159
wire        ctrl_write      = 1'b0;
160
wire [31:0] ctrl_writedata  = 32'd0;
161
 
162
pc_bus pc_bus_inst(
163
    .clk                (clk),                  //input
164
    .rst_n              (rst_n),                //input
165
 
166
    //control slave
167
    .ctrl_address       (ctrl_address),         //input [1:0]
168
    .ctrl_write         (ctrl_write),           //input
169
    .ctrl_writedata     (ctrl_writedata),       //input [31:0]
170
 
171
    //memory slave
172
    .mem_address        (mem_address),          //input [29:0]
173
    .mem_byteenable     (mem_byteenable),       //input [3:0]
174
    .mem_read           (mem_read),             //input
175
    .mem_readdata       (mem_readdata),         //output [31:0]
176
    .mem_write          (mem_write),            //input
177
    .mem_writedata      (mem_writedata),        //input [31:0]
178
    .mem_waitrequest    (mem_waitrequest),      //output
179
    .mem_readdatavalid  (mem_readdatavalid),    //output
180
    .mem_burstcount     (mem_burstcount),       //input [2:0]
181
 
182
    //memory master
183
    .sdram_address      (sdram_address),        //output [31:0]
184
    .sdram_byteenable   (sdram_byteenable),     //output [3:0]
185
    .sdram_read         (sdram_read),           //output
186
    .sdram_readdata     (sdram_readdata),       //input [31:0]
187
    .sdram_write        (sdram_write),          //output
188
    .sdram_writedata    (sdram_writedata),      //output [31:0]
189
    .sdram_waitrequest  (sdram_waitrequest),    //input
190
    .sdram_readdatavalid(sdram_readdatavalid),  //input
191
    .sdram_burstcount   (sdram_burstcount),     //output [2:0]
192
 
193
    //vga master
194
    .vga_address        (vga_address),          //output [31:0]
195
    .vga_byteenable     (vga_byteenable),       //output [3:0]
196
    .vga_read           (vga_read),             //output
197
    .vga_readdata       (vga_readdata),         //input [31:0]
198
    .vga_write          (vga_write),            //output
199
    .vga_writedata      (vga_writedata),        //output [31:0]
200
    .vga_waitrequest    (vga_waitrequest),      //input
201
    .vga_readdatavalid  (vga_readdatavalid),    //input
202
    .vga_burstcount     (vga_burstcount)        //output [2:0]
203
);
204
 
205
//------------------------------------------------------------------------------
206
 
207
wire _unused_ok = &{ 1'b0, avm_address[1:0], 1'b0 };
208
 
209
//------------------------------------------------------------------------------
210
 
211
endmodule

powered by: WebSVN 2.1.0

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