Hardware Design: SIE
Sign in or create your account | Project List | Help
Hardware Design: SIE Commit Details
Date: | 2010-10-12 17:23:50 (12 years 11 months ago) |
---|---|
Author: | César Pedraza |
Commit: | ece832aa3a3866378a14232abb21e6adc498f9ab |
Message: | logic fixed |
Files: |
Examples/ehw4/logic/ehw.v (8 diffs) |
Change Details
Examples/ehw4/logic/ehw.v | ||
---|---|---|
1 | ||
2 | // REG OFFSET 1000h | |
3 | //reg0(32bit)W 0h | |
4 | //reg1(32bit)W 4h | |
5 | //reg2(32bit)W 8h | |
6 | //reg3(32bit)W Ch | |
7 | //reg4(32bit)W 10h | |
8 | //error(16bit)R 14h | |
9 | //status(16bit)R 16h | |
10 | //mt_rnd(32bit)R 18h | |
11 | //max_lev(8bit)W 1Ch | |
12 | //control(8bit)W 1Dh | |
13 | //max_com(16bit)W 1Eh | |
14 | ||
15 | ||
1 | 16 | `timescale 1ns / 1ps |
2 | 17 | module ehw(clk, sram_data, addr, nwe, ncs, noe, reset, led, |
3 | 18 | irq_pin); |
... | ... | |
12 | 27 | // synchronize signals |
13 | 28 | reg sncs, snwe; |
14 | 29 | reg [12:0] buffer_addr; |
15 | reg [B:0] buffer_data; | |
30 | reg [B:0] buffer_data; | |
31 | wire led; | |
16 | 32 | |
17 | 33 | // bram-cpu interfaz |
18 | 34 | reg we; |
19 | 35 | reg w_st=0; |
20 | 36 | reg [B:0] wdBus; |
21 | wire [B:0] rdBus; | |
37 | reg [B:0] rdBus; | |
22 | 38 | wire [12:0] addr; |
23 | 39 | reg [7:0] bae; |
24 | 40 | |
... | ... | |
27 | 43 | wire we_eval, en_ev; |
28 | 44 | wire [63:0] ev_do; |
29 | 45 | wire [63:0] ev_di; |
30 | ||
46 | wire [63:0] ev_do_aux; | |
47 | wire [63:0] ev_di_aux; | |
48 | ||
31 | 49 | // Interconnection |
32 | 50 | wire [31:0] mt_rnd; |
33 | 51 | wire [31:0] reg0; |
... | ... | |
35 | 53 | wire [31:0] reg2; |
36 | 54 | wire [31:0] reg3; |
37 | 55 | wire [31:0] reg4; |
38 | wire [7:0] status; | |
56 | wire [15:0] status; | |
57 | wire [15:0] status_aux; | |
39 | 58 | wire [15:0] error; |
40 | 59 | wire [8:0] evalfit_addr; |
41 | 60 | |
... | ... | |
44 | 63 | wire [3:0] max_lev; |
45 | 64 | wire [7:0] control; |
46 | 65 | |
47 | // Test : LED blinking | |
66 | reg [7:0] reg_bank [31:0]; | |
67 | wire enReg; | |
68 | wire [4:0] address; | |
69 | ||
70 | // Test : LED blinking | |
48 | 71 | reg [25:0] counter; |
49 | 72 | always @(posedge clk) begin |
50 | 73 | if (~reset) |
... | ... | |
54 | 77 | end |
55 | 78 | assign led = counter[24]; |
56 | 79 | |
57 | // Data Bus direction control | |
80 | // Data Bus direction control | |
58 | 81 | wire T = ~noe | ncs; |
59 | 82 | assign sram_data = T?8'bZ:rdBus; |
60 | 83 | |
61 | // synchronize assignment | |
84 | // synchronize assignment | |
62 | 85 | always @(negedge clk) |
63 | 86 | begin |
64 | 87 | sncs <= ncs; |
... | ... | |
67 | 90 | buffer_addr <= addr; |
68 | 91 | end |
69 | 92 | |
70 | // write access cpu to bram | |
93 | // write access cpu to bram | |
71 | 94 | always @(posedge clk) |
72 | 95 | if(~reset) {w_st, we, wdBus} <= 0; |
73 | 96 | else begin |
... | ... | |
110 | 133 | else |
111 | 134 | bae <= 8'h00; |
112 | 135 | end |
136 | wire en1, en2; // enable memory signals | |
137 | assign en0 = bae[0] | bae[1] | bae[2] | bae[3]; | |
138 | assign en1 = bae[4] | bae[5] | bae[6] | bae[7]; | |
113 | 139 | |
140 | reg[31:0] DIA_Aux; | |
141 | always @ (posedge clk) begin | |
142 | if (bae[0]) DIA_Aux[7:0] = wdBus[7:0]; | |
143 | if (bae[1]) DIA_Aux[15:8] = wdBus[7:0]; | |
144 | if (bae[2]) DIA_Aux[23:16] = wdBus[7:0]; | |
145 | if (bae[3]) DIA_Aux[31:24] = wdBus[7:0]; | |
146 | if (bae[4]) DIA_Aux[7:0] = wdBus[7:0]; | |
147 | if (bae[5]) DIA_Aux[15:8] = wdBus[7:0]; | |
148 | if (bae[6]) DIA_Aux[23:16] = wdBus[7:0]; | |
149 | if (bae[7]) DIA_Aux[31:24] = wdBus[7:0]; | |
150 | end | |
114 | 151 | |
115 | // Memories | |
116 | ||
117 | RAMB16_S4_S4 ba0( .CLKA(~clk), .ENA(bae[0]), .SSRA(1'b0), .ADDRA(buffer_addr[12:3]), .WEA(we), .DIA(wdBus[3:0]), | |
118 | .CLKB(~clk), .ENB(en_ev), .SSRB(1'b0), .ADDRB(evalfit_addr), .WEB(we_eval),.DIB(ev_do[3:0]), .DOB(ev_di[3:0])); //D3-D0 | |
119 | RAMB16_S4_S4 ba1( .CLKA(~clk), .ENA(bae[0]), .SSRA(1'b0), .ADDRA(buffer_addr[12:3]), .WEA(we), .DIA(wdBus[7:4]), | |
120 | .CLKB(~clk), .ENB(en_ev), .SSRB(1'b0), .ADDRB(evalfit_addr), .WEB(we_eval),.DIB(ev_do[7:4]), .DOB(ev_di[7:4])); //D7-D4 | |
121 | ||
122 | RAMB16_S4_S4 ba2( .CLKA(~clk), .ENA(bae[1]), .SSRA(1'b0), .ADDRA(buffer_addr[12:3]), .WEA(we), .DIA(wdBus[3:0]), | |
123 | .CLKB(~clk), .ENB(en_ev), .SSRB(1'b0), .ADDRB(evalfit_addr), .WEB(we_eval),.DIB(ev_do[11:8]), .DOB(ev_di[11:8])); //D11-D8 | |
124 | RAMB16_S4_S4 ba3( .CLKA(~clk), .ENA(bae[1]), .SSRA(1'b0), .ADDRA(buffer_addr[12:3]), .WEA(we), .DIA(wdBus[7:4]), | |
125 | .CLKB(~clk), .ENB(en_ev), .SSRB(1'b0), .ADDRB(evalfit_addr), .WEB(we_eval),.DIB(ev_do[15:12]), .DOB(ev_di[15:12]));//D15-D12 | |
152 | reg [2:0] state, nextstate; //FSM for write in 32bit mode to memory | |
153 | wire we0, we1; | |
154 | wire nreset; | |
155 | assign nreset = ~reset; | |
156 | parameter S0 = 3'b000; | |
157 | parameter S1 = 3'b001; | |
158 | parameter S2 = 3'b010; | |
159 | ||
160 | always @ (posedge clk, posedge nreset) | |
161 | if (nreset) state <= S0; | |
162 | else state <= nextstate; | |
163 | // next state logic | |
164 | always@(*) | |
165 | case (state) | |
166 | S0:if (bae[3]&we) nextstate = S1; | |
167 | else | |
168 | if (bae[7]&we) nextstate = S2; | |
169 | else nextstate = S0; | |
170 | S1: nextstate = S0; | |
171 | S2: nextstate = S0; | |
172 | default: nextstate = S0; | |
173 | endcase | |
174 | // output logic | |
175 | assign we0 = (state == S1); | |
176 | assign we1 = (state == S2); | |
126 | 177 | |
127 | RAMB16_S4_S4 ba4( .CLKA(~clk), .ENA(bae[2]), .SSRA(1'b0), .ADDRA(buffer_addr[12:3]), .WEA(we), .DIA(wdBus[3:0]), | |
128 | .CLKB(~clk), .ENB(en_ev), .SSRB(1'b0), .ADDRB(evalfit_addr), .WEB(we_eval),.DIB(ev_do[19:16]), .DOB(ev_di[19:16])); //D19-D16 | |
129 | RAMB16_S4_S4 ba5( .CLKA(~clk), .ENA(bae[2]), .SSRA(1'b0), .ADDRA(buffer_addr[12:3]), .WEA(we), .DIA(wdBus[7:4]), | |
130 | .CLKB(~clk), .ENB(en_ev), .SSRB(1'b0), .ADDRB(evalfit_addr), .WEB(we_eval),.DIB(ev_do[23:20]), .DOB(ev_di[23:20])); //D23-D20 | |
131 | ||
132 | RAMB16_S4_S4 ba6( .CLKA(~clk), .ENA(bae[3]), .SSRA(1'b0), .ADDRA(buffer_addr[12:3]), .WEA(we), .DIA(wdBus[3:0]), | |
133 | .CLKB(~clk), .ENB(en_ev), .SSRB(1'b0), .ADDRB(evalfit_addr), .WEB(we_eval),.DIB(ev_do[27:24]), .DOB(ev_di[27:24])); //D27-D24 | |
134 | RAMB16_S4_S4 ba7( .CLKA(~clk), .ENA(bae[3]), .SSRA(1'b0), .ADDRA(buffer_addr[12:3]), .WEA(we), .DIA(wdBus[7:4]), | |
135 | .CLKB(~clk), .ENB(en_ev), .SSRB(1'b0), .ADDRB(evalfit_addr), .WEB(we_eval),.DIB(ev_do[31:28]), .DOB(ev_di[31:28])); //D31-D28 | |
178 | // Read control | |
179 | reg [7:0] MemDOA; | |
180 | wire [63:0] DOA_Aux; | |
181 | ||
182 | always @(posedge clk) | |
183 | if(~reset)begin | |
184 | rdBus = 8'h00; | |
185 | end | |
186 | else begin | |
187 | if(enReg) | |
188 | rdBus = reg_bank[address]; | |
189 | else | |
190 | rdBus = MemDOA[7:0]; | |
191 | end | |
192 | // memory output mux | |
193 | always @(buffer_addr[2:0]) | |
194 | case (buffer_addr[2:0]) | |
195 | 0 : MemDOA = DOA_Aux[7:0]; | |
196 | 1 : MemDOA = DOA_Aux[15:8]; | |
197 | 2 : MemDOA = DOA_Aux[23:16]; | |
198 | 3 : MemDOA = DOA_Aux[31:24]; | |
199 | 4 : MemDOA = DOA_Aux[39:32]; | |
200 | 5 : MemDOA = DOA_Aux[47:40]; | |
201 | 6 : MemDOA = DOA_Aux[55:48]; | |
202 | 7 : MemDOA = DOA_Aux[63:56]; | |
203 | default: MemDOA = 8'h00; | |
204 | endcase | |
205 | ||
206 | // Store Inputs | |
207 | always @(posedge clk) | |
208 | begin | |
209 | if(enReg) begin | |
210 | reg_bank[0] = reg0[7:0]; | |
211 | reg_bank[1] = reg0[15:8]; | |
212 | reg_bank[2] = reg0[23:16]; | |
213 | reg_bank[3] = reg0[31:24]; | |
214 | reg_bank[4] = reg1[7:0]; | |
215 | reg_bank[5] = reg1[15:8]; | |
216 | reg_bank[6] = reg1[23:16]; | |
217 | reg_bank[7] = reg1[31:24]; | |
218 | reg_bank[8] = reg2[7:0]; | |
219 | reg_bank[9] = reg2[15:8]; | |
220 | reg_bank[10] = reg2[23:16]; | |
221 | reg_bank[11] = reg2[31:24]; | |
222 | reg_bank[12] = reg3[7:0]; | |
223 | reg_bank[13] = reg3[15:8]; | |
224 | reg_bank[14] = reg3[23:16]; | |
225 | reg_bank[15] = reg3[31:24]; | |
226 | reg_bank[16] = reg4[7:0]; | |
227 | reg_bank[17] = reg4[15:8]; | |
228 | reg_bank[18] = reg4[23:16]; | |
229 | reg_bank[19] = reg4[31:24]; | |
230 | reg_bank[20] = error[7:0]; | |
231 | reg_bank[21] = error[15:8]; | |
232 | reg_bank[22] = status[7:0]; | |
233 | reg_bank[23] = status[15:8]; | |
234 | reg_bank[24] = mt_rnd[7:0]; | |
235 | reg_bank[25] = mt_rnd[15:8]; | |
236 | reg_bank[26] = mt_rnd[23:16]; | |
237 | reg_bank[27] = mt_rnd[31:24]; | |
238 | end | |
239 | end | |
136 | 240 | |
137 | RAMB16_S4_S4 ba8( .CLKA(~clk), .ENA(bae[4]), .SSRA(1'b0), .ADDRA(buffer_addr[12:3]), .WEA(we), .DIA(wdBus[3:0]), | |
138 | .CLKB(~clk), .ENB(en_ev), .SSRB(1'b0), .ADDRB(evalfit_addr), .WEB(we_eval),.DIB(ev_do[35:32]), .DOB(ev_di[35:32])); //D35-D32 | |
139 | RAMB16_S4_S4 ba9( .CLKA(~clk), .ENA(bae[4]), .SSRA(1'b0), .ADDRA(buffer_addr[12:3]), .WEA(we), .DIA(wdBus[7:4]), | |
140 | .CLKB(~clk), .ENB(en_ev), .SSRB(1'b0), .ADDRB(evalfit_addr), .WEB(we_eval),.DIB(ev_do[39:36]), .DOB(ev_di[39:36])); //D39-D36 | |
241 | assign address[4:0] = buffer_addr[4:0]; | |
242 | assign enReg = buffer_addr[12]; | |
243 | // assign reg0[7:0] = reg_bank[0]; | |
244 | // assign reg0[15:8] = reg_bank[1]; | |
245 | // assign reg0[23:16] = reg_bank[2]; | |
246 | // assign reg0[31:24] = reg_bank[3]; | |
247 | // assign reg1[7:0] = reg_bank[4]; | |
248 | // assign reg1[15:8] = reg_bank[5]; | |
249 | // assign reg1[23:16] = reg_bank[6]; | |
250 | // assign reg1[31:24] = reg_bank[7]; | |
251 | // assign reg2[7:0] = reg_bank[8]; | |
252 | // assign reg2[15:8] = reg_bank[9]; | |
253 | // assign reg2[23:16] = reg_bank[10]; | |
254 | // assign reg2[31:24] = reg_bank[11]; | |
255 | // assign reg3[7:0] = reg_bank[12]; | |
256 | // assign reg3[15:8] = reg_bank[13]; | |
257 | // assign reg3[23:16] = reg_bank[14]; | |
258 | // assign reg3[31:24] = reg_bank[15]; | |
259 | // assign reg4[7:0] = reg_bank[16]; | |
260 | // assign reg4[15:8] = reg_bank[17]; | |
261 | // assign reg4[23:16] = reg_bank[18]; | |
262 | // assign reg4[31:24] = reg_bank[19]; | |
263 | assign max_lev[3:0] = reg_bank[28][3:0]; | |
264 | assign control[7:0] = reg_bank[29]; | |
265 | assign max_com[7:0] = reg_bank[30]; | |
266 | assign max_com[15:8] = reg_bank[31]; | |
267 | // Write control | |
268 | always @(negedge clk) | |
269 | if(we & enReg) begin | |
270 | case (address) | |
271 | // 0: reg_bank[0] = wdBus; | |
272 | // 1: reg_bank[1] = wdBus; | |
273 | // 2: reg_bank[2] = wdBus; | |
274 | // 3: reg_bank[3] = wdBus; | |
275 | // 4: reg_bank[4] = wdBus; | |
276 | // 5: reg_bank[5] = wdBus; | |
277 | // 6: reg_bank[6] = wdBus; | |
278 | // 7: reg_bank[7] = wdBus; | |
279 | // 8: reg_bank[8] = wdBus; | |
280 | // 9: reg_bank[9] = wdBus; | |
281 | // 10: reg_bank[10] = wdBus; | |
282 | // 11: reg_bank[11] = wdBus; | |
283 | // 12: reg_bank[12] = wdBus; | |
284 | // 13: reg_bank[13] = wdBus; | |
285 | // 14: reg_bank[14] = wdBus; | |
286 | // 15: reg_bank[15] = wdBus; | |
287 | // 16: reg_bank[16] = wdBus; | |
288 | // 17: reg_bank[17] = wdBus; | |
289 | // 18: reg_bank[18] = wdBus; | |
290 | // 19: reg_bank[19] = wdBus; | |
291 | 28: reg_bank[28] = wdBus; | |
292 | 29: reg_bank[29] = wdBus; | |
293 | 30: reg_bank[30] = wdBus; | |
294 | 31: reg_bank[31] = wdBus; | |
295 | endcase | |
296 | end | |
297 | assign irq_pin = 0; | |
298 | //assign ev_do_aux = {ev_do[7:0], ev_do[15:8], ev_do[23:16], ev_do[31:24], ev_do[39:32], ev_do[47:40], ev_do[55:48], ev_do[63:56]}; | |
299 | //assign ev_di = {ev_di_aux[7:0], ev_di_aux[15:8], ev_di_aux[23:16], ev_di_aux[31:24], ev_di_aux[39:32], ev_di_aux[47:40], ev_di_aux[55:48], ev_di_aux[63:56]}; | |
300 | assign ev_do_aux[63:32] = ev_do[31:0]; | |
301 | assign ev_do_aux[31:16] = ev_do[47:32]; | |
302 | assign ev_do_aux[15:0] = ev_do[63:48]; | |
141 | 303 | |
142 | RAMB16_S4_S4 ba10(.CLKA(~clk), .ENA(bae[5]), .SSRA(1'b0), .ADDRA(buffer_addr[12:3]), .WEA(we), .DIA(wdBus[3:0]), | |
143 | .CLKB(~clk), .ENB(en_ev), .SSRB(1'b0), .ADDRB(evalfit_addr), .WEB(we_eval),.DIB(ev_do[43:40]), .DOB(ev_di[43:40])); //D43-D40 | |
144 | RAMB16_S4_S4 ba11(.CLKA(~clk), .ENA(bae[5]), .SSRA(1'b0), .ADDRA(buffer_addr[12:3]), .WEA(we), .DIA(wdBus[7:4]), | |
145 | .CLKB(~clk), .ENB(en_ev), .SSRB(1'b0), .ADDRB(evalfit_addr), .WEB(we_eval),.DIB(ev_do[47:44]), .DOB(ev_di[47:44])); //D47-D44 | |
304 | assign ev_di[63:32] = ev_di_aux[31:0]; //Endianess adjust for 32-bit level data | |
305 | assign ev_di[31:16] = ev_di_aux[47:32]; //endianess adjust for 16-bit LUT | |
306 | assign ev_di[7:0] = ev_di_aux[63:56]; //endianess adjust for 8-bit VARS | |
307 | assign ev_di[15:8] = ev_di_aux[55:48]; //endianess adjust for 8-bit VARS | |
146 | 308 | |
147 | RAMB16_S4_S4 ba12(.CLKA(~clk), .ENA(bae[6]), .SSRA(1'b0), .ADDRA(buffer_addr[12:3]), .WEA(we), .DIA(wdBus[3:0]), | |
148 | .CLKB(~clk), .ENB(en_ev), .SSRB(1'b0), .ADDRB(evalfit_addr), .WEB(we_eval),.DIB(ev_do[51:48]), .DOB(ev_di[51:48])); //D51-D48 | |
149 | RAMB16_S4_S4 ba13(.CLKA(~clk), .ENA(bae[6]), .SSRA(1'b0), .ADDRA(buffer_addr[12:3]), .WEA(we), .DIA(wdBus[7:4]), | |
150 | .CLKB(~clk), .ENB(en_ev), .SSRB(1'b0), .ADDRB(evalfit_addr), .WEB(we_eval),.DIB(ev_do[55:52]), .DOB(ev_di[55:52])); //D55-D52 | |
151 | 309 | |
152 | RAMB16_S4_S4 ba14(.CLKA(~clk), .ENA(bae[7]), .SSRA(1'b0), .ADDRA(buffer_addr[12:3]), .WEA(we), .DIA(wdBus[3:0]), | |
153 | .CLKB(~clk), .ENB(en_ev), .SSRB(1'b0), .ADDRB(evalfit_addr), .WEB(we_eval),.DIB(ev_do[59:56]), .DOB(ev_di[59:56])); //D59-D56 | |
154 | RAMB16_S4_S4 ba15(.CLKA(~clk), .ENA(bae[7]), .SSRA(1'b0), .ADDRA(buffer_addr[12:3]), .WEA(we), .DIA(wdBus[7:4]), | |
155 | .CLKB(~clk), .ENB(en_ev), .SSRB(1'b0), .ADDRB(evalfit_addr), .WEB(we_eval),.DIB(ev_do[63:60]), .DOB(ev_di[63:60])); //D63-D60 | |
310 | assign status[14:0] = status_aux[14:0]; | |
156 | 311 | |
157 | // evalfit_peripheral | |
158 | evalfit_peripheral evalfit( .clk(clk), .reset(reset), .habilita(control[0]), .maxcombs(max_com), .nivel_max(max_lev), | |
159 | .peripheral_mem_in(ev_di), .peripheral_mem_en(en_eval), .peripheral_mem_out(ev_do), .peripheral_mem_we(we_eval), | |
160 | .peripheral_mem_addr(evalfit_addr), .evalfit3_estado(status), .errores(error), | |
161 | .fin_ack(irq_pin), .reg0_s(reg0), .reg1_s(reg1), .reg2_s(reg2), .reg3_s(reg3), .reg4_s(reg4)); | |
312 | RAMB16_S36_S36 #(.INIT_00(256'hABCDEF00_00000000_00000000_00000000_00000000_00000000_00000000_76543210) ) | |
313 | mem0 ( .CLKA(clk), .ENA(en0), .SSRA(1'b0), .ADDRA(buffer_addr[11:3]), .WEA(we0), .DIA(DIA_Aux[31:0]), .DIPA(1'b0), .DOA(DOA_Aux[31:0]), | |
314 | .CLKB(clk), .ENB(en_ev), .SSRB(1'b0), .ADDRB(evalfit_addr), .WEB(we_eval), .DIB(ev_do_aux[31:0]), .DIPB(1'b0), .DOB(ev_di_aux[31:0])); | |
315 | ||
316 | RAMB16_S36_S36 #(.INIT_00(256'hCE5A4000_00000000_00000000_00000000_00000000_00000000_00000000_78111300) ) | |
317 | mem1( .CLKA(clk), .ENA(en1), .SSRA(1'b0), .ADDRA(buffer_addr[11:3]), .WEA(we1), .DIA(DIA_Aux[31:0]), .DIPA(0'b0), .DOA(DOA_Aux[63:32]), | |
318 | .CLKB(clk), .ENB(en_ev), .SSRB(1'b0), .ADDRB(evalfit_addr), .WEB(we_eval), .DIB(ev_do_aux[63:32]), .DIPB(0'b0), .DOB(ev_di_aux[63:32])); | |
162 | 319 | |
163 | reg_bank RegBank( .clk(clk), .reset(reset), .en(buffer_addr[12]), .we(we), .wdBus(wdBus), .rdBus(rdBus), .address(buffer_addr[4:0]), | |
164 | .reg0(reg0), .reg1(reg1), .reg2(reg2), .reg3(reg3), .reg4(reg4), .error(error), .status(status), | |
165 | .max_com(max_com), .max_lev(max_lev), .control(control)); | |
320 | // evalfit_peripheral | |
321 | evalfit_peripheral evalfit( .clk(clk), .reset(control[7]), .habilita(control[6]), .maxcombs(max_com), .nivel_max(max_lev), | |
322 | .peripheral_mem_in(ev_di), .peripheral_mem_en(en_ev), .peripheral_mem_out(ev_do), .peripheral_mem_we(we_eval), | |
323 | .peripheral_mem_addr(evalfit_addr), .evalfit3_estado(status_aux[15:0]), .errores(error), | |
324 | .fin_ack(status[15]), .reg0_s(reg0), .reg1_s(reg1), .reg2_s(reg2), .reg3_s(reg3), .reg4_s(reg4)); | |
166 | 325 | |
167 | // mt_mem | |
168 | mt_mem random( .clk(clk), .ena(1'b1), .resetn(~reset), .random(mt_rnd)); | |
326 | // MersenneTwister | |
327 | mt_mem random( .clk(clk), .ena(1'b1), .resetn(reset), .random(mt_rnd)); | |
169 | 328 | |
170 | ||
171 | 329 | endmodule |
172 | 330 |
Branches:
master