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

Subversion Repositories opengfx430

[/] [opengfx430/] [trunk/] [core/] [rtl/] [verilog/] [openGFX430.v] - Blame information for rev 3

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 olivier.gi
//----------------------------------------------------------------------------
2
// Copyright (C) 2016 Authors
3
//
4
// This source file may be used and distributed without restriction provided
5
// that this copyright statement is not removed from the file and that any
6
// derivative work contains the original copyright notice and the associated
7
// disclaimer.
8
//
9
// This source file is free software; you can redistribute it and/or modify
10
// it under the terms of the GNU Lesser General Public License as published
11
// by the Free Software Foundation; either version 2.1 of the License, or
12
// (at your option) any later version.
13
//
14
// This source is distributed in the hope that it will be useful, but WITHOUT
15
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
17
// License for more details.
18
//
19
// You should have received a copy of the GNU Lesser General Public License
20
// along with this source; if not, write to the Free Software Foundation,
21
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
22
//
23
//----------------------------------------------------------------------------
24
//
25
// *File Name: openGFX430.v
26
//
27
// *Module Description:
28
//                      This is a basic video controller for the openMSP430.
29
//
30
//                      It is currently supporting the LT24 LCD Board but
31
//                      can be extended to anything.
32
//
33
// *Author(s):
34
//              - Olivier Girard,    olgirard@gmail.com
35
//
36
//----------------------------------------------------------------------------
37
// $Rev$
38
// $LastChangedBy$
39
// $LastChangedDate$
40
//----------------------------------------------------------------------------
41
`ifdef OGFX_NO_INCLUDE
42
`else
43
`include "openGFX430_defines.v"
44
`endif
45
 
46
module  openGFX430 (
47
 
48
// OUTPUTs
49
    irq_gfx_o,                            // Graphic Controller interrupt
50
 
51
    lt24_cs_n_o,                          // LT24 Chip select (Active low)
52
    lt24_rd_n_o,                          // LT24 Read strobe (Active low)
53
    lt24_wr_n_o,                          // LT24 Write strobe (Active low)
54
    lt24_rs_o,                            // LT24 Command/Param selection (Cmd=0/Param=1)
55
    lt24_d_o,                             // LT24 Data output
56
    lt24_d_en_o,                          // LT24 Data output enable
57
    lt24_reset_n_o,                       // LT24 Reset (Active Low)
58
    lt24_on_o,                            // LT24 on/off
59
 
60
    per_dout_o,                           // Peripheral data output
61
 
62
`ifdef WITH_PROGRAMMABLE_LUT
63
    lut_ram_addr_o,                       // LUT-RAM address
64
    lut_ram_wen_o,                        // LUT-RAM write enable (active low)
65
    lut_ram_cen_o,                        // LUT-RAM enable (active low)
66
    lut_ram_din_o,                        // LUT-RAM data input
67
`endif
68
 
69
    vid_ram_addr_o,                       // Video-RAM address
70
    vid_ram_wen_o,                        // Video-RAM write enable (active low)
71
    vid_ram_cen_o,                        // Video-RAM enable (active low)
72
    vid_ram_din_o,                        // Video-RAM data input
73
 
74
// INPUTs
75
    dbg_freeze_i,                         // Freeze address auto-incr on read
76
    mclk,                                 // Main system clock
77
    per_addr_i,                           // Peripheral address
78
    per_din_i,                            // Peripheral data input
79
    per_en_i,                             // Peripheral enable (high active)
80
    per_we_i,                             // Peripheral write enable (high active)
81
    puc_rst,                              // Main system reset
82
 
83
    lt24_d_i,                             // LT24 Data input
84
 
85
`ifdef WITH_PROGRAMMABLE_LUT
86
    lut_ram_dout_i,                       // LUT-RAM data output
87
`endif
88
    vid_ram_dout_i                        // Video-RAM data output
89
);
90
 
91
// OUTPUTs
92
//=========
93
output               irq_gfx_o;           // Graphic Controller interrupt
94
 
95
output               lt24_cs_n_o;         // LT24 Chip select (Active low)
96
output               lt24_rd_n_o;         // LT24 Read strobe (Active low)
97
output               lt24_wr_n_o;         // LT24 Write strobe (Active low)
98
output               lt24_rs_o;           // LT24 Command/Param selection (Cmd=0/Param=1)
99
output        [15:0] lt24_d_o;            // LT24 Data output
100
output               lt24_d_en_o;         // LT24 Data output enable
101
output               lt24_reset_n_o;      // LT24 Reset (Active Low)
102
output               lt24_on_o;           // LT24 on/off
103
 
104
output        [15:0] per_dout_o;          // Peripheral data output
105
 
106
`ifdef WITH_PROGRAMMABLE_LUT
107
output [`LRAM_MSB:0] lut_ram_addr_o;      // LUT-RAM address
108
output               lut_ram_wen_o;       // LUT-RAM write enable (active low)
109
output               lut_ram_cen_o;       // LUT-RAM enable (active low)
110
output        [15:0] lut_ram_din_o;       // LUT-RAM data input
111
`endif
112
 
113
output [`VRAM_MSB:0] vid_ram_addr_o;      // Video-RAM address
114
output               vid_ram_wen_o;       // Video-RAM write enable (active low)
115
output               vid_ram_cen_o;       // Video-RAM enable (active low)
116
output        [15:0] vid_ram_din_o;       // Video-RAM data input
117
 
118
// INPUTs
119
//=========
120
input                dbg_freeze_i;        // Freeze address auto-incr on read
121
input                mclk;                // Main system clock
122
input         [13:0] per_addr_i;          // Peripheral address
123
input         [15:0] per_din_i;           // Peripheral data input
124
input                per_en_i;            // Peripheral enable (high active)
125
input          [1:0] per_we_i;            // Peripheral write enable (high active)
126
input                puc_rst;             // Main system reset
127
 
128
input         [15:0] lt24_d_i;            // LT24 Data input
129
 
130
`ifdef WITH_PROGRAMMABLE_LUT
131
input         [15:0] lut_ram_dout_i;      // LUT-RAM data output
132
`endif
133
input         [15:0] vid_ram_dout_i;      // Video-RAM data output
134
 
135
 
136
//=============================================================================
137
// 1)  WIRE & PARAMETER DECLARATION
138
//=============================================================================
139
 
140
wire         [2:0] lt24_cfg_clk;
141
wire        [11:0] lt24_cfg_refr;
142
wire               lt24_cfg_refr_sync_en;
143
wire         [9:0] lt24_cfg_refr_sync_val;
144
wire               lt24_cmd_refr;
145
wire         [7:0] lt24_cmd_val;
146
wire               lt24_cmd_has_param;
147
wire        [15:0] lt24_cmd_param;
148
wire               lt24_cmd_param_rdy;
149
wire        [15:0] lt24_cmd_dfill;
150
wire               lt24_cmd_dfill_wr;
151
 
152
wire [`LPIX_MSB:0] display_width;
153
wire [`LPIX_MSB:0] display_height;
154
wire [`SPIX_MSB:0] display_size;
155
wire               display_y_swap;
156
wire               display_x_swap;
157
wire               display_cl_swap;
158
wire         [2:0] gfx_mode;
159
 
160
wire         [4:0] lt24_status;
161
wire               lt24_done_evt;
162
wire               lt24_start_evt;
163
 
164
`ifdef WITH_PROGRAMMABLE_LUT
165
wire [`LRAM_MSB:0] lut_ram_sw_addr;
166
wire        [15:0] lut_ram_sw_din;
167
wire               lut_ram_sw_wen;
168
wire               lut_ram_sw_cen;
169
wire        [15:0] lut_ram_sw_dout;
170
wire [`LRAM_MSB:0] lut_ram_refr_addr;
171
wire               lut_ram_refr_cen;
172
wire        [15:0] lut_ram_refr_dout;
173
wire               lut_ram_refr_dout_rdy_nxt;
174
`endif
175
wire [`VRAM_MSB:0] vid_ram_sw_addr;
176
wire        [15:0] vid_ram_sw_din;
177
wire               vid_ram_sw_wen;
178
wire               vid_ram_sw_cen;
179
wire        [15:0] vid_ram_sw_dout;
180
wire [`VRAM_MSB:0] vid_ram_gpu_addr;
181
wire        [15:0] vid_ram_gpu_din;
182
wire               vid_ram_gpu_wen;
183
wire               vid_ram_gpu_cen;
184
wire        [15:0] vid_ram_gpu_dout;
185
wire               vid_ram_gpu_dout_rdy_nxt;
186
wire [`VRAM_MSB:0] vid_ram_refr_addr;
187
wire               vid_ram_refr_cen;
188
wire        [15:0] vid_ram_refr_dout;
189
wire               vid_ram_refr_dout_rdy_nxt;
190
 
191
wire               refresh_active;
192
wire        [15:0] refresh_data;
193
wire               refresh_data_ready;
194
wire               refresh_data_request;
195
wire [`APIX_MSB:0] refresh_frame_addr;
196
wire         [1:0] refresh_lut_select;
197
 
198
wire               gpu_cmd_done_evt;
199
wire               gpu_cmd_error_evt;
200
wire               gpu_get_data;
201
wire        [15:0] gpu_data;
202
wire               gpu_data_avail;
203
wire               gpu_enable;
204
 
205
 
206
//============================================================================
207
// 2)  REGISTERS
208
//============================================================================
209
 
210
ogfx_reg  ogfx_reg_inst (
211
 
212
// OUTPUTs
213
    .irq_gfx_o                     ( irq_gfx_o                ),       // Graphic Controller interrupt
214
 
215
    .gpu_data_o                    ( gpu_data                 ),       // GPU data
216
    .gpu_data_avail_o              ( gpu_data_avail           ),       // GPU data available
217
    .gpu_enable_o                  ( gpu_enable               ),       // GPU enable
218
 
219
    .lt24_reset_n_o                ( lt24_reset_n_o           ),       // LT24 Reset (Active Low)
220
    .lt24_on_o                     ( lt24_on_o                ),       // LT24 on/off
221
    .lt24_cfg_clk_o                ( lt24_cfg_clk             ),       // LT24 Interface clock configuration
222
    .lt24_cfg_refr_o               ( lt24_cfg_refr            ),       // LT24 Interface refresh configuration
223
    .lt24_cfg_refr_sync_en_o       ( lt24_cfg_refr_sync_en    ),       // LT24 Interface refresh sync enable configuration
224
    .lt24_cfg_refr_sync_val_o      ( lt24_cfg_refr_sync_val   ),       // LT24 Interface refresh sync value configuration
225
    .lt24_cmd_refr_o               ( lt24_cmd_refr            ),       // LT24 Interface refresh command
226
    .lt24_cmd_val_o                ( lt24_cmd_val             ),       // LT24 Generic command value
227
    .lt24_cmd_has_param_o          ( lt24_cmd_has_param       ),       // LT24 Generic command has parameters
228
    .lt24_cmd_param_o              ( lt24_cmd_param           ),       // LT24 Generic command parameter value
229
    .lt24_cmd_param_rdy_o          ( lt24_cmd_param_rdy       ),       // LT24 Generic command trigger
230
    .lt24_cmd_dfill_o              ( lt24_cmd_dfill           ),       // LT24 Data fill value
231
    .lt24_cmd_dfill_wr_o           ( lt24_cmd_dfill_wr        ),       // LT24 Data fill trigger
232
 
233
    .display_width_o               ( display_width            ),       // Display width
234
    .display_height_o              ( display_height           ),       // Display height
235
    .display_size_o                ( display_size             ),       // Display size (number of pixels)
236
    .display_y_swap_o              ( display_y_swap           ),       // Display configuration: swap Y axis (horizontal symmetry)
237
    .display_x_swap_o              ( display_x_swap           ),       // Display configuration: swap X axis (vertical symmetry)
238
    .display_cl_swap_o             ( display_cl_swap          ),       // Display configuration: swap column/lines
239
 
240
    .gfx_mode_o                    ( gfx_mode                 ),       // Video mode (1xx:16bpp / 011:8bpp / 010:4bpp / 001:2bpp / 000:1bpp)
241
 
242
    .per_dout_o                    ( per_dout_o               ),       // Peripheral data output
243
 
244
    .refresh_frame_addr_o          ( refresh_frame_addr       ),       // Refresh frame base address
245
    .refresh_lut_select_o          ( refresh_lut_select       ),       // Refresh LUT bank selection
246
 
247
`ifdef WITH_PROGRAMMABLE_LUT
248
    .lut_ram_addr_o                ( lut_ram_sw_addr          ),       // LUT-RAM address
249
    .lut_ram_din_o                 ( lut_ram_sw_din           ),       // LUT-RAM data
250
    .lut_ram_wen_o                 ( lut_ram_sw_wen           ),       // LUT-RAM write strobe (active low)
251
    .lut_ram_cen_o                 ( lut_ram_sw_cen           ),       // LUT-RAM chip enable (active low)
252
`endif
253
 
254
    .vid_ram_addr_o                ( vid_ram_sw_addr          ),       // Video-RAM address
255
    .vid_ram_din_o                 ( vid_ram_sw_din           ),       // Video-RAM data
256
    .vid_ram_wen_o                 ( vid_ram_sw_wen           ),       // Video-RAM write strobe (active low)
257
    .vid_ram_cen_o                 ( vid_ram_sw_cen           ),       // Video-RAM chip enable (active low)
258
 
259
// INPUTs
260
    .dbg_freeze_i                  ( dbg_freeze_i             ),       // Freeze address auto-incr on read
261
    .gpu_cmd_done_evt_i            ( gpu_cmd_done_evt         ),       // GPU command done event
262
    .gpu_cmd_error_evt_i           ( gpu_cmd_error_evt        ),       // GPU command error event
263
    .gpu_get_data_i                ( gpu_get_data             ),       // GPU get next data
264
    .lt24_status_i                 ( lt24_status              ),       // LT24 FSM Status
265
    .lt24_start_evt_i              ( lt24_start_evt           ),       // LT24 FSM start event
266
    .lt24_done_evt_i               ( lt24_done_evt            ),       // LT24 FSM done event
267
    .mclk                          ( mclk                     ),       // Main system clock
268
    .per_addr_i                    ( per_addr_i               ),       // Peripheral address
269
    .per_din_i                     ( per_din_i                ),       // Peripheral data input
270
    .per_en_i                      ( per_en_i                 ),       // Peripheral enable (high active)
271
    .per_we_i                      ( per_we_i                 ),       // Peripheral write enable (high active)
272
    .puc_rst                       ( puc_rst                  ),       // Main system reset
273
 
274
`ifdef WITH_PROGRAMMABLE_LUT
275
    .lut_ram_dout_i                ( lut_ram_sw_dout          ),       // LUT-RAM data input
276
`endif
277
    .vid_ram_dout_i                ( vid_ram_sw_dout          )        // Video-RAM data input
278
);
279
 
280
 
281
//============================================================================
282
// 3)  GPU
283
//============================================================================
284
 
285
ogfx_gpu  ogfx_gpu_inst (
286
 
287
// OUTPUTs
288
    .gpu_cmd_done_evt_o            ( gpu_cmd_done_evt         ),       // GPU command done event
289
    .gpu_cmd_error_evt_o           ( gpu_cmd_error_evt        ),       // GPU command error event
290
    .gpu_get_data_o                ( gpu_get_data             ),       // GPU get next data
291
 
292
    .vid_ram_addr_o                ( vid_ram_gpu_addr         ),       // Video-RAM address
293
    .vid_ram_din_o                 ( vid_ram_gpu_din          ),       // Video-RAM data
294
    .vid_ram_wen_o                 ( vid_ram_gpu_wen          ),       // Video-RAM write strobe (active low)
295
    .vid_ram_cen_o                 ( vid_ram_gpu_cen          ),       // Video-RAM chip enable (active low)
296
 
297
// INPUTs
298
    .mclk                          ( mclk                     ),       // Main system clock
299
    .puc_rst                       ( puc_rst                  ),       // Main system reset
300
 
301
    .display_width_i               ( display_width            ),       // Display width
302
 
303
    .gfx_mode_i                    ( gfx_mode                 ),       // Video mode (1xx:16bpp / 011:8bpp / 010:4bpp / 001:2bpp / 000:1bpp)
304
 
305
    .gpu_data_i                    ( gpu_data                 ),       // GPU data
306
    .gpu_data_avail_i              ( gpu_data_avail           ),       // GPU data available
307
    .gpu_enable_i                  ( gpu_enable               ),       // GPU enable
308
 
309
    .vid_ram_dout_i                ( vid_ram_gpu_dout         ),       // Video-RAM data input
310
    .vid_ram_dout_rdy_nxt_i        ( vid_ram_gpu_dout_rdy_nxt )        // Video-RAM data output ready during next cycle
311
);
312
 
313
 
314
//============================================================================
315
// 4) LT24 INTERFACE
316
//============================================================================
317
 
318
ogfx_if_lt24  ogfx_if_lt24_inst (
319
 
320
// OUTPUTs
321
    .event_fsm_done_o              ( lt24_done_evt          ),    // LT24 FSM done event
322
    .event_fsm_start_o             ( lt24_start_evt         ),    // LT24 FSM start event
323
 
324
    .lt24_cs_n_o                   ( lt24_cs_n_o            ),    // LT24 Chip select (Active low)
325
    .lt24_d_o                      ( lt24_d_o               ),    // LT24 Data output
326
    .lt24_d_en_o                   ( lt24_d_en_o            ),    // LT24 Data output enable
327
    .lt24_rd_n_o                   ( lt24_rd_n_o            ),    // LT24 Read strobe (Active low)
328
    .lt24_rs_o                     ( lt24_rs_o              ),    // LT24 Command/Param selection (Cmd=0/Param=1)
329
    .lt24_wr_n_o                   ( lt24_wr_n_o            ),    // LT24 Write strobe (Active low)
330
 
331
    .refresh_active_o              ( refresh_active         ),    // Display refresh on going
332
    .refresh_data_request_o        ( refresh_data_request   ),    // Display refresh new data request
333
 
334
    .status_o                      ( lt24_status            ),    // LT24 FSM Status
335
 
336
// INPUTs
337
    .mclk                          ( mclk                   ),    // Main system clock
338
    .puc_rst                       ( puc_rst                ),    // Main system reset
339
 
340
    .cfg_lt24_clk_div_i            ( lt24_cfg_clk           ),    // Clock Divider configuration for LT24 interface
341
    .cfg_lt24_display_size_i       ( display_size           ),    // Display size (number of pixels)
342
    .cfg_lt24_refresh_i            ( lt24_cfg_refr          ),    // Refresh rate configuration for LT24 interface
343
    .cfg_lt24_refresh_sync_en_i    ( lt24_cfg_refr_sync_en  ),    // Refresh sync enable configuration for LT24 interface
344
    .cfg_lt24_refresh_sync_val_i   ( lt24_cfg_refr_sync_val ),    // Refresh sync value configuration for LT24 interface
345
 
346
    .cmd_dfill_i                   ( lt24_cmd_dfill         ),    // Display data fill
347
    .cmd_dfill_trig_i              ( lt24_cmd_dfill_wr      ),    // Trigger a full display data fill
348
 
349
    .cmd_generic_cmd_val_i         ( lt24_cmd_val           ),    // Generic command value
350
    .cmd_generic_has_param_i       ( lt24_cmd_has_param     ),    // Generic command to be sent has parameter(s)
351
    .cmd_generic_param_val_i       ( lt24_cmd_param         ),    // Generic command parameter value
352
    .cmd_generic_trig_i            ( lt24_cmd_param_rdy     ),    // Trigger generic command transmit (or new parameter available)
353
 
354
    .cmd_refresh_i                 ( lt24_cmd_refr          ),    // Display refresh command
355
 
356
    .lt24_d_i                      ( lt24_d_i               ),    // LT24 Data input
357
 
358
    .refresh_data_i                ( refresh_data           ),    // Display refresh data
359
    .refresh_data_ready_i          ( refresh_data_ready     )     // Display refresh new data is ready
360
);
361
 
362
//============================================================================
363
// 5) VIDEO BACKEND
364
//============================================================================
365
 
366
// Video Backend
367
ogfx_backend  ogfx_backend_inst (
368
 
369
// OUTPUTs
370
    .refresh_data_o                ( refresh_data               ),    // Display refresh data
371
    .refresh_data_ready_o          ( refresh_data_ready         ),    // Display refresh new data is ready
372
 
373
    .vid_ram_addr_o                ( vid_ram_refr_addr          ),    // Video-RAM address
374
    .vid_ram_cen_o                 ( vid_ram_refr_cen           ),    // Video-RAM enable (active low)
375
 
376
`ifdef WITH_PROGRAMMABLE_LUT
377
    .lut_ram_addr_o                ( lut_ram_refr_addr          ),    // LUT-RAM address
378
    .lut_ram_cen_o                 ( lut_ram_refr_cen           ),    // LUT-RAM enable (active low)
379
`endif
380
 
381
// INPUTs
382
    .mclk                          ( mclk                       ),    // Main system clock
383
    .puc_rst                       ( puc_rst                    ),    // Main system reset
384
 
385
    .display_width_i               ( display_width              ),    // Display width
386
    .display_height_i              ( display_height             ),    // Display height
387
    .display_size_i                ( display_size               ),    // Display size (number of pixels)
388
    .display_y_swap_i              ( display_y_swap             ),    // Display configuration: swap Y axis (horizontal symmetry)
389
    .display_x_swap_i              ( display_x_swap             ),    // Display configuration: swap X axis (vertical symmetry)
390
    .display_cl_swap_i             ( display_cl_swap            ),    // Display configuration: swap column/lines
391
 
392
    .gfx_mode_i                    ( gfx_mode                   ),    // Video mode (1xx:16bpp / 011:8bpp / 010:4bpp / 001:2bpp / 000:1bpp)
393
 
394
`ifdef WITH_PROGRAMMABLE_LUT
395
    .lut_ram_dout_i                ( lut_ram_refr_dout          ),    // LUT-RAM data output
396
    .lut_ram_dout_rdy_nxt_i        ( lut_ram_refr_dout_rdy_nxt  ),    // LUT-RAM data output ready during next cycle
397
`endif
398
 
399
    .vid_ram_dout_i                ( vid_ram_refr_dout          ),    // Video-RAM data output
400
    .vid_ram_dout_rdy_nxt_i        ( vid_ram_refr_dout_rdy_nxt  ),    // Video-RAM data output ready during next cycle
401
 
402
    .refresh_active_i              ( refresh_active             ),    // Display refresh on going
403
    .refresh_data_request_i        ( refresh_data_request       ),    // Display refresh new data request
404
    .refresh_frame_base_addr_i     ( refresh_frame_addr         ),    // Refresh frame base address
405
    .refresh_lut_select_i          ( refresh_lut_select         )     // Refresh LUT bank selection
406
);
407
 
408
//============================================================================
409
// 6) ARBITER FOR VIDEO AND LUT MEMORIES
410
//============================================================================
411
 
412
ogfx_ram_arbiter  ogfx_ram_arbiter_inst (
413
 
414
    .mclk                          ( mclk                       ),    // Main system clock
415
    .puc_rst                       ( puc_rst                    ),    // Main system reset
416
 
417
   //------------------------------------------------------------
418
 
419
   // SW interface, fixed highest priority
420
    .lut_ram_sw_addr_i             ( lut_ram_sw_addr            ),    // LUT-RAM Software address
421
    .lut_ram_sw_din_i              ( lut_ram_sw_din             ),    // LUT-RAM Software data
422
    .lut_ram_sw_wen_i              ( lut_ram_sw_wen             ),    // LUT-RAM Software write strobe (active low)
423
    .lut_ram_sw_cen_i              ( lut_ram_sw_cen             ),    // LUT-RAM Software chip enable (active low)
424
    .lut_ram_sw_dout_o             ( lut_ram_sw_dout            ),    // LUT-RAM Software data input
425
 
426
   // Refresh-backend, fixed lowest priority
427
    .lut_ram_refr_addr_i           ( lut_ram_refr_addr          ),    // LUT-RAM Refresh address
428
    .lut_ram_refr_din_i            ( 16'h0000                   ),    // LUT-RAM Refresh data
429
    .lut_ram_refr_wen_i            ( 1'h1                       ),    // LUT-RAM Refresh write strobe (active low)
430
    .lut_ram_refr_cen_i            ( lut_ram_refr_cen           ),    // LUT-RAM Refresh enable (active low)
431
    .lut_ram_refr_dout_o           ( lut_ram_refr_dout          ),    // LUT-RAM Refresh data output
432
    .lut_ram_refr_dout_rdy_nxt_o   ( lut_ram_refr_dout_rdy_nxt  ),    // LUT-RAM Refresh data output ready during next cycle
433
 
434
   // LUT Memory interface
435
    .lut_ram_addr_o                ( lut_ram_addr_o             ),    // LUT-RAM address
436
    .lut_ram_din_o                 ( lut_ram_din_o              ),    // LUT-RAM data
437
    .lut_ram_wen_o                 ( lut_ram_wen_o              ),    // LUT-RAM write strobe (active low)
438
    .lut_ram_cen_o                 ( lut_ram_cen_o              ),    // LUT-RAM chip enable (active low)
439
    .lut_ram_dout_i                ( lut_ram_dout_i             ),    // LUT-RAM data input
440
 
441
   //------------------------------------------------------------
442
 
443
   // SW interface, fixed highest priority
444
    .vid_ram_sw_addr_i             ( vid_ram_sw_addr            ),    // Video-RAM Software address
445
    .vid_ram_sw_din_i              ( vid_ram_sw_din             ),    // Video-RAM Software data
446
    .vid_ram_sw_wen_i              ( vid_ram_sw_wen             ),    // Video-RAM Software write strobe (active low)
447
    .vid_ram_sw_cen_i              ( vid_ram_sw_cen             ),    // Video-RAM Software chip enable (active low)
448
    .vid_ram_sw_dout_o             ( vid_ram_sw_dout            ),    // Video-RAM Software data input
449
 
450
   // GPU interface (round-robin with refresh-backend)
451
    .vid_ram_gpu_addr_i            ( vid_ram_gpu_addr           ),    // Video-RAM GPU address
452
    .vid_ram_gpu_din_i             ( vid_ram_gpu_din            ),    // Video-RAM GPU data
453
    .vid_ram_gpu_wen_i             ( vid_ram_gpu_wen            ),    // Video-RAM GPU write strobe (active low)
454
    .vid_ram_gpu_cen_i             ( vid_ram_gpu_cen            ),    // Video-RAM GPU chip enable (active low)
455
    .vid_ram_gpu_dout_o            ( vid_ram_gpu_dout           ),    // Video-RAM GPU data input
456
    .vid_ram_gpu_dout_rdy_nxt_o    ( vid_ram_gpu_dout_rdy_nxt   ),    // Video-RAM GPU data output ready during next cycle
457
 
458
   // Refresh-backend (round-robin with GPU interface)
459
    .vid_ram_refr_addr_i           ( vid_ram_refr_addr          ),    // Video-RAM Refresh address
460
    .vid_ram_refr_din_i            ( 16'h0000                   ),    // Video-RAM Refresh data
461
    .vid_ram_refr_wen_i            ( 1'h1                       ),    // Video-RAM Refresh write strobe (active low)
462
    .vid_ram_refr_cen_i            ( vid_ram_refr_cen           ),    // Video-RAM Refresh enable (active low)
463
    .vid_ram_refr_dout_o           ( vid_ram_refr_dout          ),    // Video-RAM Refresh data output
464
    .vid_ram_refr_dout_rdy_nxt_o   ( vid_ram_refr_dout_rdy_nxt  ),    // Video-RAM Refresh data output ready during next cycle
465
 
466
   // Video Memory interface
467
    .vid_ram_addr_o                ( vid_ram_addr_o             ),    // Video-RAM address
468
    .vid_ram_din_o                 ( vid_ram_din_o              ),    // Video-RAM data
469
    .vid_ram_wen_o                 ( vid_ram_wen_o              ),    // Video-RAM write strobe (active low)
470
    .vid_ram_cen_o                 ( vid_ram_cen_o              ),    // Video-RAM chip enable (active low)
471
    .vid_ram_dout_i                ( vid_ram_dout_i             )     // Video-RAM data input
472
 
473
   //------------------------------------------------------------
474
);
475
 
476
 
477
endmodule // openGFX430
478
 
479
`ifdef OGFX_NO_INCLUDE
480
`else
481
`include "openGFX430_undefines.v"
482
`endif

powered by: WebSVN 2.1.0

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