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

Subversion Repositories minsoc

[/] [minsoc/] [branches/] [verilator/] [bench/] [verilog/] [minsoc_bench_core.v] - Blame information for rev 131

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

Line No. Rev Author Line
1 2 rfajardo
`include "minsoc_bench_defines.v"
2
`include "minsoc_defines.v"
3 10 rfajardo
`include "or1200_defines.v"
4 2 rfajardo
 
5 71 rfajardo
`include "timescale.v"
6
 
7 131 rfajardo
module minsoc_bench_core(
8 128 rfajardo
    clock,
9
    reset,
10
    eth_tx_clk,
11
    eth_rx_clk
12
);
13 2 rfajardo
 
14 128 rfajardo
input clock, reset, eth_tx_clk, eth_rx_clk;
15 60 rfajardo
 
16 17 rfajardo
//Debug interface
17 2 rfajardo
wire dbg_tms_i;
18
wire dbg_tck_i;
19
wire dbg_tdi_i;
20
wire dbg_tdo_o;
21
wire jtag_vref;
22
wire jtag_gnd;
23
 
24 17 rfajardo
//SPI wires
25 2 rfajardo
wire spi_mosi;
26
reg spi_miso;
27
wire spi_sclk;
28
wire [1:0] spi_ss;
29
 
30 17 rfajardo
//UART wires
31 2 rfajardo
wire uart_stx;
32 9 rfajardo
reg uart_srx;
33 2 rfajardo
 
34 17 rfajardo
//ETH wires
35
reg eth_col;
36
reg eth_crs;
37 2 rfajardo
wire eth_trst;
38
wire eth_tx_en;
39
wire eth_tx_er;
40
wire [3:0] eth_txd;
41 17 rfajardo
reg eth_rx_dv;
42
reg eth_rx_er;
43
reg [3:0] eth_rxd;
44
reg eth_fds_mdint;
45 2 rfajardo
wire eth_mdc;
46
wire eth_mdio;
47
 
48
//
49
//      TASKS registers to communicate with interfaces
50
//
51 124 rfajardo
reg design_ready;
52
reg uart_echo;
53
`ifdef UART
54
reg [40*8-1:0] line;
55
reg [12*8-1:0] hello;
56
reg new_line;
57
reg new_char;
58
`endif
59 17 rfajardo
`ifdef ETHERNET
60 28 rfajardo
reg [7:0] eth_rx_data [0:1535];            //receive buffer ETH (max packet 1536)
61 17 rfajardo
reg [7:0] eth_tx_data [0:1535];     //send buffer ETH (max packet 1536)
62
localparam ETH_HDR = 14;
63
localparam ETH_PAYLOAD_MAX_LENGTH = 1518;//only able to send up to 1536 bytes with header (14 bytes) and CRC (4 bytes)
64
`endif
65 2 rfajardo
 
66
 
67
//
68
// Testbench mechanics
69
//
70 4 rfajardo
reg [7:0] program_mem[(1<<(`MEMORY_ADR_WIDTH+2))-1:0];
71 123 rfajardo
integer initialize, firmware_size, ptr;
72 2 rfajardo
reg [8*64:0] file_name;
73
reg load_file;
74 8 rfajardo
 
75 2 rfajardo
initial begin
76 124 rfajardo
    design_ready = 1'b0;
77
    uart_echo = 1'b1;
78 28 rfajardo
 
79
`ifndef NO_CLOCK_DIVISION
80
    minsoc_top_0.clk_adjust.clk_int = 1'b0;
81
    minsoc_top_0.clk_adjust.clock_divisor = 32'h0000_0000;
82
`endif
83 17 rfajardo
 
84 11 rfajardo
    uart_srx = 1'b1;
85 17 rfajardo
 
86
        eth_col = 1'b0;
87
        eth_crs = 1'b0;
88
        eth_fds_mdint = 1'b1;
89
        eth_rx_er = 1'b0;
90
        eth_rxd = 4'h0;
91
        eth_rx_dv = 1'b0;
92
 
93 8 rfajardo
 
94 17 rfajardo
//dual and two port rams from FPGA memory instances have to be initialized to 0
95 10 rfajardo
    init_fpga_memory();
96
 
97 2 rfajardo
        load_file = 1'b0;
98
`ifdef INITIALIZE_MEMORY_MODEL
99
        load_file = 1'b1;
100
`endif
101
`ifdef START_UP
102
        load_file = 1'b1;
103
`endif
104 8 rfajardo
 
105 2 rfajardo
        //get firmware hex file from command line input
106
        if ( load_file ) begin
107
                if ( ! $value$plusargs("file_name=%s", file_name) || file_name == 0 ) begin
108
                        $display("ERROR: please specify an input file to start.");
109
                        $finish;
110
                end
111
                $readmemh(file_name, program_mem);
112
                // First word comprehends size of program
113 123 rfajardo
                firmware_size = { program_mem[0] , program_mem[1] , program_mem[2] , program_mem[3] };
114 2 rfajardo
        end
115
 
116
`ifdef INITIALIZE_MEMORY_MODEL
117
        // Initialize memory with firmware
118
        initialize = 0;
119 123 rfajardo
        while ( initialize < firmware_size ) begin
120 2 rfajardo
                minsoc_top_0.onchip_ram_top.block_ram_3.mem[initialize/4] = program_mem[initialize];
121
                minsoc_top_0.onchip_ram_top.block_ram_2.mem[initialize/4] = program_mem[initialize+1];
122
                minsoc_top_0.onchip_ram_top.block_ram_1.mem[initialize/4] = program_mem[initialize+2];
123
                minsoc_top_0.onchip_ram_top.block_ram_0.mem[initialize/4] = program_mem[initialize+3];
124
        initialize = initialize + 4;
125
        end
126
        $display("Memory model initialized with firmware:");
127
        $display("%s", file_name);
128 123 rfajardo
        $display("%d Bytes loaded from %d ...", initialize , firmware_size);
129 2 rfajardo
`endif
130
 
131 129 rfajardo
`ifdef POSITIVE_RESET
132
    repeat(2) @ (negedge reset);
133
`elsif NEGATIVE_RESET
134
    repeat(2) @ (posedge reset);
135
`else
136
    repeat(2) @ (negedge reset);
137
`endif
138
 
139 2 rfajardo
`ifdef START_UP
140
        // Pass firmware over spi to or1k_startup
141
        ptr = 0;
142
        //read dummy
143
        send_spi(program_mem[ptr]);
144
        send_spi(program_mem[ptr]);
145
        send_spi(program_mem[ptr]);
146
        send_spi(program_mem[ptr]);
147
        //~read dummy
148 123 rfajardo
        while ( ptr < firmware_size ) begin
149 2 rfajardo
                send_spi(program_mem[ptr]);
150
                ptr = ptr + 1;
151
        end
152
        $display("Memory start-up completed...");
153
        $display("Loaded firmware:");
154
        $display("%s", file_name);
155
`endif
156 17 rfajardo
 
157
 
158 2 rfajardo
        //
159
    // Testbench START
160
        //
161 124 rfajardo
    design_ready = 1'b1;
162 125 rfajardo
    $display("Running simulation: if you want to stop it, type ctrl+c and type in finish afterwards.");
163 17 rfajardo
    fork
164
        begin
165 125 rfajardo
`ifdef UART
166 124 rfajardo
 
167 125 rfajardo
`ifdef ETHERNET
168
`ifdef TEST_ETHERNET
169 126 rfajardo
            $display("Testing Ethernet firmware, this takes long (~15 min. @ 2.53 GHz dual-core)...");
170 125 rfajardo
            $display("Ethernet firmware encloses UART firmware, testing UART firmware first...");
171
            test_uart();
172
            test_eth();
173 124 rfajardo
            $display("Stopping simulation.");
174
            $finish;
175 125 rfajardo
`endif
176
`endif
177
 
178
`ifdef TEST_UART
179
            $display("Testing UART firmware, this takes a while (~1 min. @ 2.53 GHz dual-core)...");
180
            test_uart();
181 124 rfajardo
            $display("Stopping simulation.");
182
            $finish;
183 125 rfajardo
`endif
184
 
185 124 rfajardo
`endif
186 17 rfajardo
        end
187 124 rfajardo
        begin
188 125 rfajardo
`ifdef ETHERNET
189 124 rfajardo
`ifdef TEST_ETHERNET
190
            get_mac();
191
            if ( { eth_rx_data[ETH_HDR] , eth_rx_data[ETH_HDR+1] , eth_rx_data[ETH_HDR+2] , eth_rx_data[ETH_HDR+3] } == 32'hFF2B4050 )
192
                $display("Ethernet firmware started correctly.");
193
`endif
194 125 rfajardo
`endif
195 124 rfajardo
        end
196 17 rfajardo
    join
197 2 rfajardo
 
198
end
199
 
200
 
201
//
202
// Modules instantiations
203
//
204
minsoc_top minsoc_top_0(
205
   .clk(clock),
206
   .reset(reset)
207
 
208
   //JTAG ports
209
`ifdef GENERIC_TAP
210
   , .jtag_tdi(dbg_tdi_i),
211
   .jtag_tms(dbg_tms_i),
212
   .jtag_tck(dbg_tck_i),
213
   .jtag_tdo(dbg_tdo_o),
214
   .jtag_vref(jtag_vref),
215
   .jtag_gnd(jtag_gnd)
216
`endif
217
 
218
   //SPI ports
219
`ifdef START_UP
220
   , .spi_flash_mosi(spi_mosi),
221
   .spi_flash_miso(spi_miso),
222
   .spi_flash_sclk(spi_sclk),
223
   .spi_flash_ss(spi_ss)
224
`endif
225
 
226
   //UART ports
227
`ifdef UART
228
   , .uart_stx(uart_stx),
229
   .uart_srx(uart_srx)
230
`endif // !UART
231
 
232
        // Ethernet ports
233
`ifdef ETHERNET
234
        , .eth_col(eth_col),
235
    .eth_crs(eth_crs),
236
    .eth_trste(eth_trst),
237
    .eth_tx_clk(eth_tx_clk),
238
        .eth_tx_en(eth_tx_en),
239
    .eth_tx_er(eth_tx_er),
240
    .eth_txd(eth_txd),
241
    .eth_rx_clk(eth_rx_clk),
242
        .eth_rx_dv(eth_rx_dv),
243
    .eth_rx_er(eth_rx_er),
244
    .eth_rxd(eth_rxd),
245
    .eth_fds_mdint(eth_fds_mdint),
246
        .eth_mdc(eth_mdc),
247
    .eth_mdio(eth_mdio)
248
`endif // !ETHERNET
249
);
250
 
251
`ifdef VPI_DEBUG
252
        dbg_comm_vpi dbg_if(
253
                .SYS_CLK(clock),
254
                .P_TMS(dbg_tms_i),
255
                .P_TCK(dbg_tck_i),
256
                .P_TRST(),
257
                .P_TDI(dbg_tdi_i),
258
                .P_TDO(dbg_tdo_o)
259
        );
260
`else
261
   assign dbg_tdi_i = 1;
262
   assign dbg_tck_i = 0;
263
   assign dbg_tms_i = 1;
264
`endif
265
 
266
 
267
//
268 125 rfajardo
// Firmware testers
269
//
270 131 rfajardo
`ifdef UART
271 125 rfajardo
task test_uart();
272
    begin
273
            @ (posedge new_line);
274
            $display("UART data received.");
275
            hello = line[12*8-1:0];
276
            //sending character A to UART, B expected
277
            $display("Testing UART interrupt...");
278
            uart_echo = 1'b0;
279
            uart_send(8'h41);       //Character A
280
            @ (posedge new_char);
281
            if ( line[7:0] == "B" )
282
                $display("UART interrupt working.");
283
            else
284
                $display("UART interrupt failed.");
285
            uart_echo = 1'b1;
286
 
287
            if ( hello == "Hello World." )
288 128 rfajardo
                $display("UART firmware test completed, behaving correctly.");
289 125 rfajardo
            else
290
                $display("UART firmware test completed, failed.");
291
    end
292
endtask
293 131 rfajardo
`endif
294 125 rfajardo
 
295 130 rfajardo
`ifdef ETHERNET
296 125 rfajardo
task test_eth();
297
    begin
298
                eth_tx_data[ETH_HDR+0] = 8'hBA;
299
                eth_tx_data[ETH_HDR+1] = 8'h87;
300
                eth_tx_data[ETH_HDR+2] = 8'hAA;
301
                eth_tx_data[ETH_HDR+3] = 8'hBB;
302
                eth_tx_data[ETH_HDR+4] = 8'hCC;
303
                eth_tx_data[ETH_HDR+5] = 8'hDD;
304
 
305
            $display("Sending an Ethernet package to the system and waiting for the data to be output through UART...");
306
                send_mac(6);
307
            repeat(3+40) @ (posedge new_line);
308
            $display("Ethernet test completed.");
309
    end
310
endtask
311 130 rfajardo
`endif
312 125 rfajardo
 
313
 
314 2 rfajardo
`ifdef VCD_OUTPUT
315
initial begin
316
        $dumpfile("../results/minsoc_wave.vcd");
317
        $dumpvars();
318
end
319
`endif
320
 
321
 
322
//
323
//      Functionalities tasks: SPI Startup and UART Monitor
324
//
325
//SPI START_UP
326
`ifdef START_UP
327 28 rfajardo
task send_spi;
328
    input [7:0] data_in;
329
    integer i;
330 2 rfajardo
    begin
331 28 rfajardo
        i = 7;
332
        for ( i = 7 ; i >= 0; i = i - 1 ) begin
333 2 rfajardo
                spi_miso = data_in[i];
334 28 rfajardo
                        @ (posedge spi_sclk);
335
            end
336
    end
337 2 rfajardo
endtask
338
`endif
339
//~SPI START_UP
340
 
341 17 rfajardo
//UART
342 2 rfajardo
`ifdef UART
343 124 rfajardo
localparam UART_TX_WAIT = (`FREQ / `UART_BAUDRATE);
344 2 rfajardo
 
345 17 rfajardo
task uart_send;
346
    input [7:0] data;
347
    integer i;
348
    begin
349
        uart_srx = 1'b0;
350 124 rfajardo
        repeat (UART_TX_WAIT) @ (posedge clock);
351 17 rfajardo
        for ( i = 0; i < 8 ; i = i + 1 ) begin
352
                    uart_srx = data[i];
353 124 rfajardo
            repeat (UART_TX_WAIT) @ (posedge clock);
354 17 rfajardo
            end
355
        uart_srx = 1'b0;
356 124 rfajardo
        repeat (UART_TX_WAIT) @ (posedge clock);
357 17 rfajardo
            uart_srx = 1'b1;
358
    end
359
endtask
360
 
361
//UART Monitor (prints uart output on the terminal)
362 2 rfajardo
// Something to trigger the task
363 124 rfajardo
initial
364
begin
365
    new_line = 1'b0;
366
    new_char = 1'b0;
367
end
368 2 rfajardo
 
369 124 rfajardo
always @ (posedge clock)
370
    if ( design_ready )
371
        uart_decoder;
372
 
373 2 rfajardo
task uart_decoder;
374
        integer i;
375
        reg [7:0] tx_byte;
376
        begin
377 124 rfajardo
        new_char = 1'b0;
378
        // Wait for start bit
379
        while (uart_stx == 1'b1)
380
        @(uart_stx);
381 2 rfajardo
 
382 124 rfajardo
        repeat (UART_TX_WAIT+(UART_TX_WAIT/2)) @ (posedge clock);
383 2 rfajardo
 
384 124 rfajardo
        for ( i = 0; i < 8 ; i = i + 1 ) begin
385
            tx_byte[i] = uart_stx;
386
            repeat (UART_TX_WAIT) @ (posedge clock);
387
        end
388 2 rfajardo
 
389 124 rfajardo
        //Check for stop bit
390
        if (uart_stx == 1'b0) begin
391
            //$display("* WARNING: user stop bit not received when expected at time %d__", $time);
392
            // Wait for return to idle
393
            while (uart_stx == 1'b0)
394
            @(uart_stx);
395
            //$display("* USER UART returned to idle at time %d",$time);
396
        end
397
        // display the char
398
        new_char = 1'b1;
399
        if ( uart_echo )
400
            $write("%c", tx_byte);
401
        if ( new_line )
402
            line = "";
403
        if ( tx_byte == "\n" )
404
            new_line = 1'b1;
405
        else begin
406
            line = { line[39*8-1:0], tx_byte};
407
            new_line = 1'b0;
408
        end
409
    end
410 2 rfajardo
endtask
411 17 rfajardo
//~UART Monitor
412 2 rfajardo
`endif // !UART
413 17 rfajardo
//~UART
414 2 rfajardo
 
415
 
416
//
417
//      TASKS to communicate with interfaces
418
//
419 28 rfajardo
//MAC_DATA
420 2 rfajardo
//
421 28 rfajardo
`ifdef ETHERNET
422 17 rfajardo
reg [31:0] crc32_result;
423 28 rfajardo
 
424
task get_mac;
425
    integer conta;
426
    reg LSB;
427
    begin
428
        conta = 0;
429
        LSB = 1;
430 17 rfajardo
        @ ( posedge eth_tx_en);
431
 
432
        repeat (16) @ (negedge eth_tx_clk);  //8 bytes, preamble (7 bytes) + start of frame (1 byte)
433 28 rfajardo
 
434
        while ( eth_tx_en == 1'b1 ) begin
435
            @ (negedge eth_tx_clk) begin
436
                if ( LSB == 1'b1 )
437
                    eth_rx_data[conta][3:0] = eth_txd;
438
                else begin
439
                    eth_rx_data[conta][7:4] = eth_txd;
440
                    conta = conta + 1;
441
                end
442
                LSB = ~LSB;
443
            end
444
        end
445
    end
446
endtask
447
 
448 17 rfajardo
task send_mac;              //only able to send up to 1536 bytes with header (14 bytes) and CRC (4 bytes)
449 28 rfajardo
    input [31:0] length;    //ETH_PAYLOAD_MAX_LENGTH 1518
450
    integer conta;
451 17 rfajardo
    begin
452 28 rfajardo
        if ( length <= ETH_PAYLOAD_MAX_LENGTH ) begin
453
            //DEST MAC
454
            eth_tx_data[0] = 8'h55;
455
            eth_tx_data[1] = 8'h47;
456
            eth_tx_data[2] = 8'h34;
457
            eth_tx_data[3] = 8'h22;
458
            eth_tx_data[4] = 8'h88;
459
            eth_tx_data[5] = 8'h92;
460
 
461
            //SOURCE MAC
462
            eth_tx_data[6] = 8'h3D;
463
            eth_tx_data[7] = 8'h4F;
464
            eth_tx_data[8] = 8'h1A;
465
            eth_tx_data[9] = 8'hBE;
466
            eth_tx_data[10] = 8'h68;
467
            eth_tx_data[11] = 8'h72;
468
 
469
            //LEN
470
            eth_tx_data[12] = length[7:4];
471
            eth_tx_data[13] = length[3:0];
472
 
473
            //DATA input by task caller
474
 
475
            //PAD
476
            for ( conta = length+14; conta < 60; conta = conta + 1 ) begin
477
                eth_tx_data[conta] = 8'h00;
478
            end
479
 
480
            gencrc32(conta);
481
 
482
            eth_tx_data[conta] = crc32_result[31:24];
483
            eth_tx_data[conta+1] = crc32_result[23:16];
484
            eth_tx_data[conta+2] = crc32_result[15:8];
485
            eth_tx_data[conta+3] = crc32_result[7:0];
486
 
487 17 rfajardo
            send_rx_packet( 64'h0055_5555_5555_5555, 4'h7, 8'hD5, 32'h0000_0000, conta+4, 1'b0 );
488
        end
489
        else
490 28 rfajardo
            $display("Warning: Ethernet packet is to big to be sent.");
491
    end
492 17 rfajardo
 
493 28 rfajardo
endtask
494
 
495 17 rfajardo
task send_rx_packet;
496
  input  [(8*8)-1:0] preamble_data; // preamble data to be sent - correct is 64'h0055_5555_5555_5555
497
  input   [3:0] preamble_len; // length of preamble in bytes - max is 4'h8, correct is 4'h7 
498
  input   [7:0] sfd_data; // SFD data to be sent - correct is 8'hD5
499
  input  [31:0] start_addr; // start address
500
  input  [31:0] len; // length of frame in Bytes (without preamble and SFD)
501
  input         plus_drible_nibble; // if length is longer for one nibble
502
  integer       rx_cnt;
503
  reg    [31:0] eth_tx_data_addr_in; // address for reading from RX memory       
504
  reg     [7:0] eth_tx_data_data_out; // data for reading from RX memory
505
begin
506
      @(posedge eth_rx_clk);
507 124 rfajardo
       eth_rx_dv = 1;
508 17 rfajardo
 
509
      // set initial rx memory address
510
      eth_tx_data_addr_in = start_addr;
511
 
512
      // send preamble
513
      for (rx_cnt = 0; (rx_cnt < (preamble_len << 1)) && (rx_cnt < 16); rx_cnt = rx_cnt + 1)
514
      begin
515 124 rfajardo
         eth_rxd = preamble_data[3:0];
516
         preamble_data = preamble_data >> 4;
517 17 rfajardo
        @(posedge eth_rx_clk);
518
      end
519
 
520
      // send SFD
521
      for (rx_cnt = 0; rx_cnt < 2; rx_cnt = rx_cnt + 1)
522
      begin
523 124 rfajardo
         eth_rxd = sfd_data[3:0];
524
         sfd_data = sfd_data >> 4;
525 17 rfajardo
        @(posedge eth_rx_clk);
526
      end
527
 
528
      // send packet's addresses, type/length, data and FCS
529
      for (rx_cnt = 0; rx_cnt < len; rx_cnt = rx_cnt + 1)
530
      begin
531
        eth_tx_data_data_out = eth_tx_data[eth_tx_data_addr_in[21:0]];
532
        eth_rxd = eth_tx_data_data_out[3:0];
533
        @(posedge eth_rx_clk);
534
        eth_rxd = eth_tx_data_data_out[7:4];
535
        eth_tx_data_addr_in = eth_tx_data_addr_in + 1;
536
        @(posedge eth_rx_clk);
537
      end
538
      if (plus_drible_nibble)
539
      begin
540
        eth_tx_data_data_out = eth_tx_data[eth_tx_data_addr_in[21:0]];
541
        eth_rxd = eth_tx_data_data_out[3:0];
542
        @(posedge eth_rx_clk);
543
      end
544
 
545 124 rfajardo
       eth_rx_dv = 0;
546 17 rfajardo
      @(posedge eth_rx_clk);
547
 
548
end
549
endtask // send_rx_packet
550 28 rfajardo
 
551
//CRC32
552
localparam [31:0] CRC32_POLY = 32'h04C11DB7;
553
 
554 17 rfajardo
task gencrc32;
555
    input [31:0] crc32_length;
556 28 rfajardo
 
557
    integer     byte, bit;
558
    reg         msb;
559
    reg [7:0]    current_byte;
560
    reg [31:0]   temp;
561
 
562
    begin
563
        crc32_result = 32'hffffffff;
564
        for (byte = 0; byte < crc32_length; byte = byte + 1) begin
565
            current_byte = eth_tx_data[byte];
566
            for (bit = 0; bit < 8; bit = bit + 1) begin
567
                msb = crc32_result[31];
568
                crc32_result = crc32_result << 1;
569
                if (msb != current_byte[bit]) begin
570
                    crc32_result = crc32_result ^ CRC32_POLY;
571
                    crc32_result[0] = 1;
572
                end
573
            end
574
        end
575
 
576
        // Last step is to "mirror" every bit, swap the 4 bytes, and then complement each bit.
577
        //
578
        // Mirror:
579
        for (bit = 0; bit < 32; bit = bit + 1)
580
            temp[31-bit] = crc32_result[bit];
581
 
582
        // Swap and Complement:
583
        crc32_result = ~{temp[7:0], temp[15:8], temp[23:16], temp[31:24]};
584
    end
585
endtask
586 17 rfajardo
//~CRC32
587
 
588 28 rfajardo
`endif // !ETHERNET
589 2 rfajardo
//~MAC_DATA
590
 
591
 
592 10 rfajardo
 
593
//
594
// TASK to initialize instantiated FPGA dual and two port memory to 0
595
//
596
task init_fpga_memory;
597
    integer i;
598
    begin
599
`ifdef OR1200_RFRAM_TWOPORT
600
`ifdef OR1200_XILINX_RAMB4
601
    for ( i = 0; i < (1<<8); i = i + 1 ) begin
602
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.ramb4_s16_s16_0.mem[i] = 16'h0000;
603
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.ramb4_s16_s16_1.mem[i] = 16'h0000;
604
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.ramb4_s16_s16_0.mem[i] = 16'h0000;
605
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.ramb4_s16_s16_1.mem[i] = 16'h0000;
606
    end
607
`elsif OR1200_XILINX_RAMB16
608
    for ( i = 0; i < (1<<9); i = i + 1 ) begin
609
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.ramb16_s36_s36.mem[i] = 32'h0000_0000;
610
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.ramb16_s36_s36.mem[i] = 32'h0000_0000;
611
    end
612
`elsif OR1200_ALTERA_LPM
613
`ifndef OR1200_ALTERA_LPM_XXX
614
    $display("Definition OR1200_ALTERA_LPM in or1200_defines.v does not enable ALTERA memory for neither DUAL nor TWO port RFRAM");
615
    $display("It uses GENERIC memory instead.");
616
    $display("Add '`define OR1200_ALTERA_LPM_XXX' under '`define OR1200_ALTERA_LPM' on or1200_defines.v to use ALTERA memory.");
617
`endif
618
`ifdef OR1200_ALTERA_LPM_XXX
619
    $display("...Using ALTERA memory for TWOPORT RFRAM!");
620
    for ( i = 0; i < (1<<5); i = i + 1 ) begin
621
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.altqpram_component.mem[i] = 32'h0000_0000;
622
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.altqpram_component.mem[i] = 32'h0000_0000;
623
    end
624
`else
625
    $display("...Using GENERIC memory!");
626
    for ( i = 0; i < (1<<5); i = i + 1 ) begin
627
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.mem[i] = 32'h0000_0000;
628
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.mem[i] = 32'h0000_0000;
629
    end
630
`endif
631
`elsif OR1200_XILINX_RAM32X1D
632
    $display("Definition OR1200_XILINX_RAM32X1D in or1200_defines.v does not enable FPGA memory for TWO port RFRAM");
633
    $display("It uses GENERIC memory instead.");
634
    $display("FPGA memory can be used if you choose OR1200_RFRAM_DUALPORT");
635
    for ( i = 0; i < (1<<5); i = i + 1 ) begin
636
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.mem[i] = 32'h0000_0000;
637
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.mem[i] = 32'h0000_0000;
638
    end
639
`else
640
    for ( i = 0; i < (1<<5); i = i + 1 ) begin
641
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.mem[i] = 32'h0000_0000;
642
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.mem[i] = 32'h0000_0000;
643
    end
644
`endif
645
`elsif OR1200_RFRAM_DUALPORT
646
`ifdef OR1200_XILINX_RAMB4
647
    for ( i = 0; i < (1<<8); i = i + 1 ) begin
648
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.ramb4_s16_0.mem[i] = 16'h0000;
649
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.ramb4_s16_1.mem[i] = 16'h0000;
650
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.ramb4_s16_0.mem[i] = 16'h0000;
651
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.ramb4_s16_1.mem[i] = 16'h0000;
652
    end
653
`elsif OR1200_XILINX_RAMB16
654
    for ( i = 0; i < (1<<9); i = i + 1 ) begin
655
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.ramb16_s36_s36.mem[i] = 32'h0000_0000;
656
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.ramb16_s36_s36.mem[i] = 32'h0000_0000;
657
    end
658
`elsif OR1200_ALTERA_LPM
659
`ifndef OR1200_ALTERA_LPM_XXX
660
    $display("Definition OR1200_ALTERA_LPM in or1200_defines.v does not enable ALTERA memory for neither DUAL nor TWO port RFRAM");
661
    $display("It uses GENERIC memory instead.");
662
    $display("Add '`define OR1200_ALTERA_LPM_XXX' under '`define OR1200_ALTERA_LPM' on or1200_defines.v to use ALTERA memory.");
663
`endif
664
`ifdef OR1200_ALTERA_LPM_XXX
665
    $display("...Using ALTERA memory for DUALPORT RFRAM!");
666
    for ( i = 0; i < (1<<5); i = i + 1 ) begin
667
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.altqpram_component.mem[i] = 32'h0000_0000;
668
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.altqpram_component.mem[i] = 32'h0000_0000;
669
    end
670
`else
671
    $display("...Using GENERIC memory!");
672
    for ( i = 0; i < (1<<5); i = i + 1 ) begin
673
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.mem[i] = 32'h0000_0000;
674
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.mem[i] = 32'h0000_0000;
675
    end
676
`endif
677
`elsif OR1200_XILINX_RAM32X1D
678
`ifdef OR1200_USE_RAM16X1D_FOR_RAM32X1D
679
    for ( i = 0; i < (1<<4); i = i + 1 ) begin
680
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_0.ram32x1d_0_0.mem[i] = 1'b0;
681
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_0.ram32x1d_0_1.mem[i] = 1'b0;
682
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_0.ram32x1d_0_2.mem[i] = 1'b0;
683
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_0.ram32x1d_0_3.mem[i] = 1'b0;
684
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_0.ram32x1d_0_4.mem[i] = 1'b0;
685
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_0.ram32x1d_0_5.mem[i] = 1'b0;
686
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_0.ram32x1d_0_6.mem[i] = 1'b0;
687
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_0.ram32x1d_0_7.mem[i] = 1'b0;
688
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_0.ram32x1d_1_0.mem[i] = 1'b0;
689
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_0.ram32x1d_1_1.mem[i] = 1'b0;
690
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_0.ram32x1d_1_2.mem[i] = 1'b0;
691
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_0.ram32x1d_1_3.mem[i] = 1'b0;
692
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_0.ram32x1d_1_4.mem[i] = 1'b0;
693
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_0.ram32x1d_1_5.mem[i] = 1'b0;
694
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_0.ram32x1d_1_6.mem[i] = 1'b0;
695
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_0.ram32x1d_1_7.mem[i] = 1'b0;
696
 
697
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_1.ram32x1d_0_0.mem[i] = 1'b0;
698
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_1.ram32x1d_0_1.mem[i] = 1'b0;
699
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_1.ram32x1d_0_2.mem[i] = 1'b0;
700
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_1.ram32x1d_0_3.mem[i] = 1'b0;
701
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_1.ram32x1d_0_4.mem[i] = 1'b0;
702
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_1.ram32x1d_0_5.mem[i] = 1'b0;
703
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_1.ram32x1d_0_6.mem[i] = 1'b0;
704
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_1.ram32x1d_0_7.mem[i] = 1'b0;
705
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_1.ram32x1d_1_0.mem[i] = 1'b0;
706
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_1.ram32x1d_1_1.mem[i] = 1'b0;
707
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_1.ram32x1d_1_2.mem[i] = 1'b0;
708
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_1.ram32x1d_1_3.mem[i] = 1'b0;
709
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_1.ram32x1d_1_4.mem[i] = 1'b0;
710
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_1.ram32x1d_1_5.mem[i] = 1'b0;
711
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_1.ram32x1d_1_6.mem[i] = 1'b0;
712
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_1.ram32x1d_1_7.mem[i] = 1'b0;
713
 
714
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_2.ram32x1d_0_0.mem[i] = 1'b0;
715
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_2.ram32x1d_0_1.mem[i] = 1'b0;
716
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_2.ram32x1d_0_2.mem[i] = 1'b0;
717
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_2.ram32x1d_0_3.mem[i] = 1'b0;
718
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_2.ram32x1d_0_4.mem[i] = 1'b0;
719
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_2.ram32x1d_0_5.mem[i] = 1'b0;
720
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_2.ram32x1d_0_6.mem[i] = 1'b0;
721
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_2.ram32x1d_0_7.mem[i] = 1'b0;
722
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_2.ram32x1d_1_0.mem[i] = 1'b0;
723
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_2.ram32x1d_1_1.mem[i] = 1'b0;
724
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_2.ram32x1d_1_2.mem[i] = 1'b0;
725
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_2.ram32x1d_1_3.mem[i] = 1'b0;
726
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_2.ram32x1d_1_4.mem[i] = 1'b0;
727
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_2.ram32x1d_1_5.mem[i] = 1'b0;
728
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_2.ram32x1d_1_6.mem[i] = 1'b0;
729
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_2.ram32x1d_1_7.mem[i] = 1'b0;
730
 
731
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_3.ram32x1d_0_0.mem[i] = 1'b0;
732
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_3.ram32x1d_0_1.mem[i] = 1'b0;
733
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_3.ram32x1d_0_2.mem[i] = 1'b0;
734
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_3.ram32x1d_0_3.mem[i] = 1'b0;
735
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_3.ram32x1d_0_4.mem[i] = 1'b0;
736
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_3.ram32x1d_0_5.mem[i] = 1'b0;
737
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_3.ram32x1d_0_6.mem[i] = 1'b0;
738
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_3.ram32x1d_0_7.mem[i] = 1'b0;
739
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_3.ram32x1d_1_0.mem[i] = 1'b0;
740
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_3.ram32x1d_1_1.mem[i] = 1'b0;
741
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_3.ram32x1d_1_2.mem[i] = 1'b0;
742
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_3.ram32x1d_1_3.mem[i] = 1'b0;
743
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_3.ram32x1d_1_4.mem[i] = 1'b0;
744
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_3.ram32x1d_1_5.mem[i] = 1'b0;
745
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_3.ram32x1d_1_6.mem[i] = 1'b0;
746
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_3.ram32x1d_1_7.mem[i] = 1'b0;
747
 
748
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_0.ram32x1d_0_0.mem[i] = 1'b0;
749
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_0.ram32x1d_0_1.mem[i] = 1'b0;
750
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_0.ram32x1d_0_2.mem[i] = 1'b0;
751
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_0.ram32x1d_0_3.mem[i] = 1'b0;
752
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_0.ram32x1d_0_4.mem[i] = 1'b0;
753
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_0.ram32x1d_0_5.mem[i] = 1'b0;
754
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_0.ram32x1d_0_6.mem[i] = 1'b0;
755
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_0.ram32x1d_0_7.mem[i] = 1'b0;
756
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_0.ram32x1d_1_0.mem[i] = 1'b0;
757
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_0.ram32x1d_1_1.mem[i] = 1'b0;
758
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_0.ram32x1d_1_2.mem[i] = 1'b0;
759
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_0.ram32x1d_1_3.mem[i] = 1'b0;
760
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_0.ram32x1d_1_4.mem[i] = 1'b0;
761
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_0.ram32x1d_1_5.mem[i] = 1'b0;
762
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_0.ram32x1d_1_6.mem[i] = 1'b0;
763
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_0.ram32x1d_1_7.mem[i] = 1'b0;
764
 
765
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_1.ram32x1d_0_0.mem[i] = 1'b0;
766
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_1.ram32x1d_0_1.mem[i] = 1'b0;
767
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_1.ram32x1d_0_2.mem[i] = 1'b0;
768
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_1.ram32x1d_0_3.mem[i] = 1'b0;
769
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_1.ram32x1d_0_4.mem[i] = 1'b0;
770
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_1.ram32x1d_0_5.mem[i] = 1'b0;
771
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_1.ram32x1d_0_6.mem[i] = 1'b0;
772
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_1.ram32x1d_0_7.mem[i] = 1'b0;
773
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_1.ram32x1d_1_0.mem[i] = 1'b0;
774
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_1.ram32x1d_1_1.mem[i] = 1'b0;
775
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_1.ram32x1d_1_2.mem[i] = 1'b0;
776
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_1.ram32x1d_1_3.mem[i] = 1'b0;
777
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_1.ram32x1d_1_4.mem[i] = 1'b0;
778
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_1.ram32x1d_1_5.mem[i] = 1'b0;
779
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_1.ram32x1d_1_6.mem[i] = 1'b0;
780
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_1.ram32x1d_1_7.mem[i] = 1'b0;
781
 
782
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_2.ram32x1d_0_0.mem[i] = 1'b0;
783
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_2.ram32x1d_0_1.mem[i] = 1'b0;
784
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_2.ram32x1d_0_2.mem[i] = 1'b0;
785
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_2.ram32x1d_0_3.mem[i] = 1'b0;
786
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_2.ram32x1d_0_4.mem[i] = 1'b0;
787
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_2.ram32x1d_0_5.mem[i] = 1'b0;
788
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_2.ram32x1d_0_6.mem[i] = 1'b0;
789
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_2.ram32x1d_0_7.mem[i] = 1'b0;
790
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_2.ram32x1d_1_0.mem[i] = 1'b0;
791
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_2.ram32x1d_1_1.mem[i] = 1'b0;
792
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_2.ram32x1d_1_2.mem[i] = 1'b0;
793
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_2.ram32x1d_1_3.mem[i] = 1'b0;
794
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_2.ram32x1d_1_4.mem[i] = 1'b0;
795
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_2.ram32x1d_1_5.mem[i] = 1'b0;
796
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_2.ram32x1d_1_6.mem[i] = 1'b0;
797
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_2.ram32x1d_1_7.mem[i] = 1'b0;
798
 
799
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_3.ram32x1d_0_0.mem[i] = 1'b0;
800
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_3.ram32x1d_0_1.mem[i] = 1'b0;
801
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_3.ram32x1d_0_2.mem[i] = 1'b0;
802
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_3.ram32x1d_0_3.mem[i] = 1'b0;
803
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_3.ram32x1d_0_4.mem[i] = 1'b0;
804
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_3.ram32x1d_0_5.mem[i] = 1'b0;
805
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_3.ram32x1d_0_6.mem[i] = 1'b0;
806
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_3.ram32x1d_0_7.mem[i] = 1'b0;
807
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_3.ram32x1d_1_0.mem[i] = 1'b0;
808
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_3.ram32x1d_1_1.mem[i] = 1'b0;
809
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_3.ram32x1d_1_2.mem[i] = 1'b0;
810
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_3.ram32x1d_1_3.mem[i] = 1'b0;
811
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_3.ram32x1d_1_4.mem[i] = 1'b0;
812
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_3.ram32x1d_1_5.mem[i] = 1'b0;
813
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_3.ram32x1d_1_6.mem[i] = 1'b0;
814
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_3.ram32x1d_1_7.mem[i] = 1'b0;
815
    end
816
`else
817
    for ( i = 0; i < (1<<4); i = i + 1 ) begin
818
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_0.ram32x1d_0.mem[i] = 1'b0;
819
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_0.ram32x1d_1.mem[i] = 1'b0;
820
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_0.ram32x1d_2.mem[i] = 1'b0;
821
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_0.ram32x1d_3.mem[i] = 1'b0;
822
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_0.ram32x1d_4.mem[i] = 1'b0;
823
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_0.ram32x1d_5.mem[i] = 1'b0;
824
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_0.ram32x1d_6.mem[i] = 1'b0;
825
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_0.ram32x1d_7.mem[i] = 1'b0;
826
 
827
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_1.ram32x1d_0.mem[i] = 1'b0;
828
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_1.ram32x1d_1.mem[i] = 1'b0;
829
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_1.ram32x1d_2.mem[i] = 1'b0;
830
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_1.ram32x1d_3.mem[i] = 1'b0;
831
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_1.ram32x1d_4.mem[i] = 1'b0;
832
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_1.ram32x1d_5.mem[i] = 1'b0;
833
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_1.ram32x1d_6.mem[i] = 1'b0;
834
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_1.ram32x1d_7.mem[i] = 1'b0;
835
 
836
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_2.ram32x1d_0.mem[i] = 1'b0;
837
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_2.ram32x1d_1.mem[i] = 1'b0;
838
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_2.ram32x1d_2.mem[i] = 1'b0;
839
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_2.ram32x1d_3.mem[i] = 1'b0;
840
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_2.ram32x1d_4.mem[i] = 1'b0;
841
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_2.ram32x1d_5.mem[i] = 1'b0;
842
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_2.ram32x1d_6.mem[i] = 1'b0;
843
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_2.ram32x1d_7.mem[i] = 1'b0;
844
 
845
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_3.ram32x1d_0.mem[i] = 1'b0;
846
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_3.ram32x1d_1.mem[i] = 1'b0;
847
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_3.ram32x1d_2.mem[i] = 1'b0;
848
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_3.ram32x1d_3.mem[i] = 1'b0;
849
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_3.ram32x1d_4.mem[i] = 1'b0;
850
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_3.ram32x1d_5.mem[i] = 1'b0;
851
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_3.ram32x1d_6.mem[i] = 1'b0;
852
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.xcv_ram32x8d_3.ram32x1d_7.mem[i] = 1'b0;
853
 
854
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_0.ram32x1d_0.mem[i] = 1'b0;
855
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_0.ram32x1d_1.mem[i] = 1'b0;
856
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_0.ram32x1d_2.mem[i] = 1'b0;
857
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_0.ram32x1d_3.mem[i] = 1'b0;
858
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_0.ram32x1d_4.mem[i] = 1'b0;
859
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_0.ram32x1d_5.mem[i] = 1'b0;
860
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_0.ram32x1d_6.mem[i] = 1'b0;
861
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_0.ram32x1d_7.mem[i] = 1'b0;
862
 
863
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_1.ram32x1d_0.mem[i] = 1'b0;
864
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_1.ram32x1d_1.mem[i] = 1'b0;
865
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_1.ram32x1d_2.mem[i] = 1'b0;
866
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_1.ram32x1d_3.mem[i] = 1'b0;
867
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_1.ram32x1d_4.mem[i] = 1'b0;
868
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_1.ram32x1d_5.mem[i] = 1'b0;
869
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_1.ram32x1d_6.mem[i] = 1'b0;
870
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_1.ram32x1d_7.mem[i] = 1'b0;
871
 
872
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_2.ram32x1d_0.mem[i] = 1'b0;
873
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_2.ram32x1d_1.mem[i] = 1'b0;
874
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_2.ram32x1d_2.mem[i] = 1'b0;
875
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_2.ram32x1d_3.mem[i] = 1'b0;
876
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_2.ram32x1d_4.mem[i] = 1'b0;
877
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_2.ram32x1d_5.mem[i] = 1'b0;
878
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_2.ram32x1d_6.mem[i] = 1'b0;
879
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_2.ram32x1d_7.mem[i] = 1'b0;
880
 
881
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_3.ram32x1d_0.mem[i] = 1'b0;
882
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_3.ram32x1d_1.mem[i] = 1'b0;
883
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_3.ram32x1d_2.mem[i] = 1'b0;
884
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_3.ram32x1d_3.mem[i] = 1'b0;
885
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_3.ram32x1d_4.mem[i] = 1'b0;
886
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_3.ram32x1d_5.mem[i] = 1'b0;
887
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_3.ram32x1d_6.mem[i] = 1'b0;
888
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.xcv_ram32x8d_3.ram32x1d_7.mem[i] = 1'b0;
889
    end
890
`endif
891
`else
892
    for ( i = 0; i < (1<<5); i = i + 1 ) begin
893
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_a.mem[i] = 32'h0000_0000;
894
        minsoc_top_0.or1200_top.or1200_cpu.or1200_rf.rf_b.mem[i] = 32'h0000_0000;
895
    end
896
`endif
897
`endif
898
    end
899
endtask
900
 
901 2 rfajardo
endmodule
902
 

powered by: WebSVN 2.1.0

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