-
Notifications
You must be signed in to change notification settings - Fork 36
/
mfp_ahb_lite_matrix_config.vh
150 lines (127 loc) · 3.98 KB
/
mfp_ahb_lite_matrix_config.vh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
//
// Simulation and synthesis
//
`ifdef SYNTHESIS
`undef SIMULATION
`endif
`ifndef SIMULATION
`ifdef MODEL_TECH
`define SIMULATION
`elsif XILINX_ISIM
`define SIMULATION
`endif
`endif
//
// Common configuration parameters
//
`define MFP_USE_UART_PROGRAM_LOADER
`define MFP_USE_DUPLEX_UART
`define MFP_USE_MPSSE_DEBUGGER
// `define MFP_INITIALIZE_MEMORY_FROM_TXT_FILE
// `define MFP_USE_SLOW_CLOCK_AND_CLOCK_MUX
// `define MFP_DEMO_LIGHT_SENSOR
// `define MFP_DEMO_CACHE_MISSES
// `define MFP_DEMO_PIPE_BYPASS
//
// Memory type (choose one)
//
//`define MFP_USE_BYTE_MEMORY
`define MFP_USE_WORD_MEMORY
//`define MFP_USE_BUSY_MEMORY
//`define MFP_USE_SDRAM_MEMORY
//
// Enable external interrupt controller
// see additional settings in mfp_eic_core.vh
//
//`define MFP_USE_IRQ_EIC
//
// global SDRAM bus params
//
`ifdef MFP_USE_SDRAM_MEMORY
`undef MFP_USE_SLOW_CLOCK_AND_CLOCK_MUX
`ifdef SIMULATION
//only x16 supported
`define x16
`define den64Mb
`define sg75
//these values should be relevant to sdr_parameters.vh
`ifdef den64Mb
`define SDRAM_ADDR_BITS 12
`define SDRAM_ROW_BITS 12
`define SDRAM_COL_BITS 8
`elsif den128Mb
`define SDRAM_ADDR_BITS 12
`define SDRAM_ROW_BITS 12
`define SDRAM_COL_BITS 9
`elsif den256Mb
`define SDRAM_ADDR_BITS 13
`define SDRAM_ROW_BITS 13
`define SDRAM_COL_BITS 9
`else
`define den512Mb
`define SDRAM_ADDR_BITS 13
`define SDRAM_ROW_BITS 13
`define SDRAM_COL_BITS 10
`endif
`define SDRAM_DQ_BITS 16
`define SDRAM_DM_BITS 2
`define SDRAM_BA_BITS 2
`define SDRAM_DELAY_nCKE 20
`define SDRAM_MEM_CLK_PHASE_SHIFT 12
`define MFP_RAM_ADDR_WIDTH (`SDRAM_ROW_BITS + `SDRAM_COL_BITS + `SDRAM_BA_BITS)
`else
`include "board_config.vh"
`endif
`endif
//not all types of memory can work with HSIZE_1
`ifdef MFP_USE_UART_PROGRAM_LOADER
`ifndef MFP_USE_BYTE_MEMORY
`define MFP_USE_UART_PROGRAM_LOADER_WORD_ALIGN
`endif
`endif
// mpsse debug cant be enabled on Simulation
`ifdef SIMULATION
`undef MFP_USE_MPSSE_DEBUGGER
`endif
//
// Memory-mapped I/O addresses
//
`define MFP_N_RED_LEDS 18
`define MFP_N_GREEN_LEDS 16
`define MFP_N_SWITCHES 18
`define MFP_N_BUTTONS 5
`define MFP_7_SEGMENT_HEX_WIDTH 32
`define MFP_RED_LEDS_ADDR 32'h1f800000
`define MFP_GREEN_LEDS_ADDR 32'h1f800004
`define MFP_SWITCHES_ADDR 32'h1f800008
`define MFP_BUTTONS_ADDR 32'h1f80000C
`define MFP_7_SEGMENT_HEX_ADDR 32'h1f800010
`ifdef MFP_DEMO_LIGHT_SENSOR
`define MFP_LIGHT_SENSOR_ADDR 32'h1f800014
`endif
`define MFP_RED_LEDS_IONUM 4'h0
`define MFP_GREEN_LEDS_IONUM 4'h1
`define MFP_SWITCHES_IONUM 4'h2
`define MFP_BUTTONS_IONUM 4'h3
`define MFP_7_SEGMENT_HEX_IONUM 4'h4
`ifdef MFP_DEMO_LIGHT_SENSOR
`define MFP_LIGHT_SENSOR_IONUM 4'h5
`endif
//
// RAM addresses
//
`define MFP_RESET_RAM_ADDR 32'h1fc?????
`define MFP_RAM_ADDR 32'h0???????
`define MFP_RESET_RAM_ADDR_WIDTH 10 // The boot sequence is the same for everything
`ifndef MFP_RAM_ADDR_WIDTH
`ifdef SIMULATION
`define MFP_RAM_ADDR_WIDTH 16
`else
`define MFP_RAM_ADDR_WIDTH 15 // DE1: 10, DE0-Nano: 13, DE0-CV or Basys3: 14, Nexys 4 or DE2-115: 16, DE10-Lite: 15
`endif
`endif
`define MFP_RESET_RAM_ADDR_MATCH 7'h7f
`define MFP_RAM_ADDR_MATCH 3'b0
`define MFP_GPIO_ADDR_MATCH 7'h7e
`define MFP_UART_ADDR_MATCH 17'h10401
`define MFP_EIC_ADDR_MATCH 17'h10402