@@ -42,12 +42,12 @@ module testbench_top;
42
42
43
43
// core parameters
44
44
parameter XLEN = 64 ;
45
- parameter PHYS_ADDR_SIZE = 32 ; // 32bit address bus. Also sets non-cacheable range
45
+ parameter PLEN = XLEN ; // 32bit address bus
46
46
parameter PC_INIT = 'h8000_0000 ; // Start here after reset
47
47
parameter BASE = PC_INIT ; // offset where to load program in memory
48
48
parameter INIT_FILE = " test.hex" ;
49
49
parameter MEM_LATENCY = 1 ;
50
- parameter WRITEBUFFER_SIZE = 8 ;
50
+ parameter WRITEBUFFER_SIZE = 4 ;
51
51
parameter HAS_U = 1 ;
52
52
parameter HAS_S = 1 ;
53
53
parameter HAS_H = 0 ;
@@ -81,66 +81,66 @@ localparam MULLAT = MULT_LATENCY > 4 ? 4 : MULT_LATENCY;
81
81
//
82
82
// Variables
83
83
//
84
- logic HCLK , HRESETn;
84
+ logic HCLK , HRESETn;
85
85
86
86
// Instruction interface
87
- logic ins_HSEL;
88
- logic [PHYS_ADDR_SIZE - 1 : 0 ] ins_HADDR;
89
- logic [XLEN - 1 : 0 ] ins_HRDATA;
90
- logic [XLEN - 1 : 0 ] ins_HWDATA; // always 0
91
- logic ins_HWRITE; // always 0
92
- logic [ 2 : 0 ] ins_HSIZE;
93
- logic [ 2 : 0 ] ins_HBURST;
94
- logic [ 3 : 0 ] ins_HPROT;
95
- logic [ 1 : 0 ] ins_HTRANS;
96
- logic ins_HMASTLOCK;
97
- logic ins_HREADY;
98
- logic ins_HRESP;
87
+ logic ins_HSEL;
88
+ logic [PLEN - 1 : 0 ] ins_HADDR;
89
+ logic [XLEN - 1 : 0 ] ins_HRDATA;
90
+ logic [XLEN - 1 : 0 ] ins_HWDATA; // always 0
91
+ logic ins_HWRITE; // always 0
92
+ logic [ 2 : 0 ] ins_HSIZE;
93
+ logic [ 2 : 0 ] ins_HBURST;
94
+ logic [ 3 : 0 ] ins_HPROT;
95
+ logic [ 1 : 0 ] ins_HTRANS;
96
+ logic ins_HMASTLOCK;
97
+ logic ins_HREADY;
98
+ logic ins_HRESP;
99
99
100
100
// Data interface
101
- logic dat_HSEL;
102
- logic [PHYS_ADDR_SIZE - 1 : 0 ] dat_HADDR;
103
- logic [XLEN - 1 : 0 ] dat_HWDATA;
104
- logic [XLEN - 1 : 0 ] dat_HRDATA;
105
- logic dat_HWRITE;
106
- logic [ 2 : 0 ] dat_HSIZE;
107
- logic [ 2 : 0 ] dat_HBURST;
108
- logic [ 3 : 0 ] dat_HPROT;
109
- logic [ 1 : 0 ] dat_HTRANS;
110
- logic dat_HMASTLOCK;
111
- logic dat_HREADY;
112
- logic dat_HRESP;
101
+ logic dat_HSEL;
102
+ logic [PLEN - 1 : 0 ] dat_HADDR;
103
+ logic [XLEN - 1 : 0 ] dat_HWDATA;
104
+ logic [XLEN - 1 : 0 ] dat_HRDATA;
105
+ logic dat_HWRITE;
106
+ logic [ 2 : 0 ] dat_HSIZE;
107
+ logic [ 2 : 0 ] dat_HBURST;
108
+ logic [ 3 : 0 ] dat_HPROT;
109
+ logic [ 1 : 0 ] dat_HTRANS;
110
+ logic dat_HMASTLOCK;
111
+ logic dat_HREADY;
112
+ logic dat_HRESP;
113
113
114
114
// Debug Interface
115
- logic dbp_bp,
116
- dbg_stall,
117
- dbg_strb,
118
- dbg_ack,
119
- dbg_we;
120
- logic [ 15 : 0 ] dbg_addr;
121
- logic [XLEN - 1 : 0 ] dbg_dati,
122
- dbg_dato;
115
+ logic dbp_bp,
116
+ dbg_stall,
117
+ dbg_strb,
118
+ dbg_ack,
119
+ dbg_we;
120
+ logic [ 15 : 0 ] dbg_addr;
121
+ logic [XLEN - 1 : 0 ] dbg_dati,
122
+ dbg_dato;
123
123
124
124
125
125
126
126
// Host Interface
127
- logic host_csr_req,
128
- host_csr_ack,
129
- host_csr_we;
130
- logic [XLEN - 1 : 0 ] host_csr_tohost,
131
- host_csr_fromhost;
127
+ logic host_csr_req,
128
+ host_csr_ack,
129
+ host_csr_we;
130
+ logic [XLEN - 1 : 0 ] host_csr_tohost,
131
+ host_csr_fromhost;
132
132
133
133
134
134
// Unified memory interface
135
- logic [ 1 : 0 ] mem_htrans[2 ];
136
- logic [ 3 : 0 ] mem_hburst[2 ];
137
- logic mem_hready[2 ],
138
- mem_hresp[2 ];
139
- logic [PHYS_ADDR_SIZE - 1 : 0 ] mem_haddr[2 ];
140
- logic [XLEN - 1 : 0 ] mem_hwdata[2 ],
141
- mem_hrdata[2 ];
142
- logic [ 2 : 0 ] mem_hsize[2 ];
143
- logic mem_hwrite[2 ];
135
+ logic [ 1 : 0 ] mem_htrans[2 ];
136
+ logic [ 3 : 0 ] mem_hburst[2 ];
137
+ logic mem_hready[2 ],
138
+ mem_hresp[2 ];
139
+ logic [PLEN - 1 : 0 ] mem_haddr[2 ];
140
+ logic [XLEN - 1 : 0 ] mem_hwdata[2 ],
141
+ mem_hrdata[2 ];
142
+ logic [ 2 : 0 ] mem_hsize[2 ];
143
+ logic mem_hwrite[2 ];
144
144
145
145
146
146
// //////////////////////////////////////////////////////////////
@@ -152,7 +152,7 @@ logic mem_hwrite[2];
152
152
153
153
riscv_top_ahb3lite # (
154
154
.XLEN ( XLEN ),
155
- .PHYS_ADDR_SIZE ( PHYS_ADDR_SIZE ), // 31bit address bus
155
+ .PLEN ( PLEN ), // 31bit address bus
156
156
.PC_INIT ( PC_INIT ),
157
157
.HAS_USER ( HAS_U ),
158
158
.HAS_SUPER ( HAS_S ),
@@ -221,11 +221,11 @@ assign dat_HRESP = mem_hresp[1];
221
221
222
222
// hookup memory model
223
223
memory_model_ahb3lite # (
224
- .DATA_WIDTH ( XLEN ),
225
- .ADDR_WIDTH ( PHYS_ADDR_SIZE ),
226
- .BASE ( BASE ),
227
- .PORTS ( 2 ),
228
- .LATENCY ( MEM_LATENCY ) )
224
+ .DATA_WIDTH ( XLEN ),
225
+ .ADDR_WIDTH ( PLEN ),
226
+ .BASE ( BASE ),
227
+ .PORTS ( 2 ),
228
+ .LATENCY ( MEM_LATENCY ) )
229
229
unified_memory (
230
230
.HRESETn ( HRESETn ),
231
231
.HCLK ( HCLK ),
@@ -258,7 +258,7 @@ generate
258
258
else
259
259
begin
260
260
// New MMIO interface
261
- mmio_if # (XLEN , PHYS_ADDR_SIZE , TOHOST , UART_TX )
261
+ mmio_if # (XLEN , PLEN , TOHOST , UART_TX )
262
262
mmio_if_inst (
263
263
.HRESETn ( HRESETn ),
264
264
.HCLK ( HCLK ),
0 commit comments