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

Subversion Repositories myblaze

[/] [myblaze/] [trunk/] [rtl/] [top.py] - Blame information for rev 3

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

Line No. Rev Author Line
1 2 rockee
# -*- coding: utf-8 -*-
2
"""
3
    top.py
4
    ======
5
 
6
    Top Level of the System Design
7
 
8
    :copyright: Copyright (c) 2010 Jian Luo
9
    :author-email: jian.luo.cn(at_)gmail.com
10
    :license: LGPL, see LICENSE for details
11
    :revision: $Id: top.py 3 2010-11-21 07:17:00Z rockee $
12
"""
13
 
14
from myhdl import *
15
from defines import *
16
from functions import *
17
from core import *
18
from uart import *
19
from bram import *
20
 
21
program = []
22
 
23
def prepare():
24
    one = open('rom.vmem')
25
    banks = [open('rom%s.vmem'%i, 'w') for i in range(4)]
26
    try:
27
        for line in one.readlines():
28
            program.append(int(line, 16))
29
            for i in range(4):
30
                print >>banks[3-i], line[i*2:(i+1)*2]
31
    finally:
32
        [f.close() for f in banks]
33
        one.close()
34
 
35
def Program(data_out, data_in, address, write, enable, clock, *args, **kw):
36
    imem = tuple(program)
37
    @always(clock.posedge)
38
    def output():
39
        #if enable:
40
            data_out.next = imem[address[:2]]
41
    return instances()
42
 
43
def SysTop(txd_line, rxd_line, txd_line2, rxd_line2, leds, reset, clock,
44
 
45
        # if __debug__:
46
        debug_if_program_counter,
47
 
48
        debug_of_alu_op,
49
        debug_of_alu_src_a,
50
        debug_of_alu_src_b,
51
        debug_of_branch_cond,
52
        debug_of_carry,
53
        debug_of_carry_keep,
54
        debug_of_delay,
55
        debug_of_hazard,
56
        debug_of_immediate,
57
        debug_of_instruction,
58
        debug_of_mem_read,
59
        debug_of_mem_write,
60
        debug_of_operation,
61
        debug_of_program_counter,
62
        debug_of_reg_a,
63
        debug_of_reg_b,
64
        debug_of_reg_d,
65
        debug_of_reg_write,
66
        debug_of_transfer_size,
67
 
68
        debug_of_fwd_mem_result,
69
        debug_of_fwd_reg_d,
70
        debug_of_fwd_reg_write,
71
 
72
        debug_gprf_dat_a,
73
        debug_gprf_dat_b,
74
        debug_gprf_dat_d,
75
 
76
        debug_ex_alu_result,
77
        debug_ex_reg_d,
78
        debug_ex_reg_write,
79
 
80
        debug_ex_branch,
81
        debug_ex_dat_d,
82
        debug_ex_flush_id,
83
        debug_ex_mem_read,
84
        debug_ex_mem_write,
85
        debug_ex_program_counter,
86
        debug_ex_transfer_size,
87
 
88
        debug_ex_dat_a,
89
        debug_ex_dat_b,
90
        debug_ex_instruction,
91
        debug_ex_reg_a,
92
        debug_ex_reg_b,
93
 
94
        debug_mm_alu_result,
95
        debug_mm_mem_read,
96
        debug_mm_reg_d,
97
        debug_mm_reg_write,
98
        debug_mm_transfer_size,
99
 
100
        debug_dmem_ena_in,
101
        debug_dmem_data_in,
102
        debug_dmem_data_out,
103
        debug_dmem_sel_out,
104
        debug_dmem_we_out,
105
        debug_dmem_addr_out,
106
        debug_dmem_ena_out,
107
        debug_dmem_ena,
108
 
109
        debug_imem_data_in,
110
        debug_imem_data_out,
111
        debug_imem_sel_out,
112
        debug_imem_we_out,
113
        debug_imem_addr_out,
114
        debug_imem_ena,
115
        debug_imem_ena_out,
116
 
117
        size=4):
118
    rx_data = Signal(intbv(0)[32:])
119
    rx_avail = Signal(False)
120
    rx_error = Signal(False)
121
    read_en = Signal(False)
122
    tx_data = Signal(intbv(0)[32:])
123
    tx_busy = Signal(False)
124
    write_en = Signal(False)
125
    uart_rxd = Signal(False)
126
    uart_txd = Signal(False)
127
 
128
    rx_data2 = Signal(intbv(0)[32:])
129
    rx_avail2 = Signal(False)
130
    rx_error2 = Signal(False)
131
    read_en2 = Signal(False)
132
    tx_data2 = Signal(intbv(0)[32:])
133
    tx_busy2 = Signal(False)
134
    write_en2 = Signal(False)
135
    uart_rxd2 = Signal(False)
136
    uart_txd2 = Signal(False)
137
 
138
    led_reg = Signal(intbv(0)[32:])
139
    led_low = Signal(intbv(0)[32:])
140
 
141
    dmem_ena_in = Signal(False)
142
    dmem_data_in = Signal(intbv(0)[CFG_DMEM_WIDTH:])
143
    dmem_data_out = Signal(intbv(0)[CFG_DMEM_WIDTH:])
144
    dmem_sel_out = Signal(intbv(0)[4:])
145
    dmem_sel = Signal(intbv(0)[4:])
146
    dmem_we_out = Signal(False)
147
    dmem_addr_out = Signal(intbv(0)[CFG_DMEM_SIZE:])
148
    dmem_ena_out = Signal(False)
149
    dmem_ena = Signal(False)
150
 
151
    imem_data_in = Signal(intbv(0)[CFG_DMEM_WIDTH:])
152
    imem_data_out = Signal(intbv(0)[CFG_IMEM_WIDTH:])
153
    imem_sel_out = Signal(intbv(0)[4:])
154
    imem_we_out = Signal(False)
155
    imem_addr_out = Signal(intbv(0)[CFG_IMEM_SIZE:])
156
    imem_ena = Signal(True)
157
    imem_ena_out = Signal(False)
158
 
159
    imem = BankedBRAM(imem_data_in, imem_data_out, imem_addr_out,
160
                      imem_sel_out, imem_ena_out, clock,
161
                     size=size, to_verilog=True,
162
                     filename_pattern='rom%s.vmem')
163
    #imem = Program(imem_data_in, imem_data_out, imem_addr_out,
164
                      #imem_sel_out, imem_ena_out, clock,
165
                     #size=size, to_verilog=True,
166
                     #filename_pattern='rom%s.vmem')
167
    dmem = BankedBRAM(dmem_data_in, dmem_data_out, dmem_addr_out,
168
                      dmem_sel, dmem_ena, clock,
169
                     size=size, to_verilog=True,
170
                     filename_pattern='rom%s.vmem')
171
 
172
    core = MyBlazeCore(
173
        clock=clock,
174
        reset=reset,
175
        dmem_ena_in=dmem_ena_in,
176
 
177
        dmem_data_in=dmem_data_in,
178
        dmem_data_out=dmem_data_out,
179
        dmem_sel_out=dmem_sel_out,
180
        dmem_we_out=dmem_we_out,
181
        dmem_addr_out=dmem_addr_out,
182
        dmem_ena_out=dmem_ena_out,
183
        imem_data_in=imem_data_in,
184
        imem_addr_out=imem_addr_out,
185
        imem_ena_out=imem_ena_out,
186
 
187
        # if __debug__:
188
        debug_if_program_counter=debug_if_program_counter,
189
 
190
        debug_of_alu_op=debug_of_alu_op,
191
        debug_of_alu_src_a=debug_of_alu_src_a,
192
        debug_of_alu_src_b=debug_of_alu_src_b,
193
        debug_of_branch_cond=debug_of_branch_cond,
194
        debug_of_carry=debug_of_carry,
195
        debug_of_carry_keep=debug_of_carry_keep,
196
        debug_of_delay=debug_of_delay,
197
        debug_of_hazard=debug_of_hazard,
198
        debug_of_immediate=debug_of_immediate,
199
        debug_of_instruction=debug_of_instruction,
200
        debug_of_mem_read=debug_of_mem_read,
201
        debug_of_mem_write=debug_of_mem_write,
202
        debug_of_operation=debug_of_operation,
203
        debug_of_program_counter=debug_of_program_counter,
204
        debug_of_reg_a=debug_of_reg_a,
205
        debug_of_reg_b=debug_of_reg_b,
206
        debug_of_reg_d=debug_of_reg_d,
207
        debug_of_reg_write=debug_of_reg_write,
208
        debug_of_transfer_size=debug_of_transfer_size,
209
 
210
        debug_of_fwd_mem_result=debug_of_fwd_mem_result,
211
        debug_of_fwd_reg_d=debug_of_fwd_reg_d,
212
        debug_of_fwd_reg_write=debug_of_fwd_reg_write,
213
 
214
        debug_gprf_dat_a=debug_gprf_dat_a,
215
        debug_gprf_dat_b=debug_gprf_dat_b,
216
        debug_gprf_dat_d=debug_gprf_dat_d,
217
 
218
        debug_ex_alu_result=debug_ex_alu_result,
219
        debug_ex_reg_d=debug_ex_reg_d,
220
        debug_ex_reg_write=debug_ex_reg_write,
221
 
222
        debug_ex_branch=debug_ex_branch,
223
        debug_ex_dat_d=debug_ex_dat_d,
224
        debug_ex_flush_id=debug_ex_flush_id,
225
        debug_ex_mem_read=debug_ex_mem_read,
226
        debug_ex_mem_write=debug_ex_mem_write,
227
        debug_ex_program_counter=debug_ex_program_counter,
228
        debug_ex_transfer_size=debug_ex_transfer_size,
229
 
230
        debug_ex_dat_a=debug_ex_dat_a,
231
        debug_ex_dat_b=debug_ex_dat_b,
232
        debug_ex_instruction=debug_ex_instruction,
233
        debug_ex_reg_a=debug_ex_reg_a,
234
        debug_ex_reg_b=debug_ex_reg_b,
235
 
236
        debug_mm_alu_result=debug_mm_alu_result,
237
        debug_mm_mem_read=debug_mm_mem_read,
238
        debug_mm_reg_d=debug_mm_reg_d,
239
        debug_mm_reg_write=debug_mm_reg_write,
240
        debug_mm_transfer_size=debug_mm_transfer_size,
241
    )
242
 
243
    uart = UART(rx_data, rx_avail, rx_error, read_en,
244
           tx_data, tx_busy, write_en,
245
           uart_rxd, uart_txd, reset, clock,
246
           freq_hz=50000000, baud=115200)
247
 
248
    uart2 = UART(rx_data2, rx_avail2, rx_error2, read_en2,
249
           tx_data2, tx_busy2, write_en2,
250
           uart_rxd2, uart_txd2, reset, clock,
251
           freq_hz=50000000, baud=115200)
252
 
253
    @always_comb
254
    def glue():
255
        dmem_ena_in.next = True
256
        if dmem_we_out:
257
            dmem_sel.next = dmem_sel_out
258
        else:
259
            dmem_sel.next = 0
260
        tx_data.next = dmem_data_out
261
        if dmem_addr_out < 2**size:
262
            dmem_ena.next = dmem_ena_out
263
            #dmem_ena_in.next = True
264
            write_en.next = False
265
        elif dmem_we_out and dmem_addr_out[28:] >= 0xfffffb0:
266
            dmem_ena.next = False
267
            #dmem_ena_in.next = not tx_busy
268
            write_en.next = True
269
        else:
270
            write_en.next = False
271
            dmem_ena.next = False
272
            #dmem_ena_in.next = True
273
 
274
        #leds.next = concat(led_reg[4:], led_low[4:])
275
        leds.next = led_reg[8:]
276
 
277
    count = Signal(intbv(0)[20:])
278
    @always(clock.posedge)
279
    def run():
280
 
281
        if reset:
282
            txd_line.next = False
283
            txd_line2.next = False
284
            led_reg.next = 1
285
            led_low.next = 1
286
            imem_data_out.next = 0
287
            imem_sel_out.next = 0
288
            read_en.next = False
289
            uart_rxd.next = 1
290
            read_en2.next = False
291
            uart_rxd2.next = 1
292
            count.next = 0
293
        else:
294
            txd_line.next = uart_txd
295
            uart_rxd.next = rxd_line
296
            txd_line2.next = uart_txd2
297
            uart_rxd2.next = rxd_line2
298
            read_en.next = False
299
            count.next = (count+1)%(2**20)
300
            if count == 0:
301
                led_low.next = concat(led_low[31:], led_low[31])
302
 
303
            #if write_en and not tx_busy:
304
                #led_reg.next = concat(led_reg[31:], led_reg[31])
305
            #if dmem_we_out and dmem_addr_out[28:] == 0xFFFFFB0:
306
                #led_reg.next = dmem_data_out
307
            #else:
308
                #led_reg.next = led_reg
309
            #led_reg.next = concat(dmem_ena_in, dmem_we_out, dmem_ena_out,
310
                #write_en,)
311
            if imem_addr_out == 0x244:
312
                led_reg.next = 0xff
313
 
314
 
315
    @always_comb
316
    def debug_output():
317
        debug_dmem_ena_in.next = dmem_ena_in
318
        debug_dmem_data_in.next = dmem_data_in
319
        debug_dmem_data_out.next = dmem_data_out
320
        debug_dmem_sel_out.next = dmem_sel_out
321
        debug_dmem_we_out.next = dmem_we_out
322
        debug_dmem_addr_out.next = dmem_addr_out
323
        debug_dmem_ena_out.next = dmem_ena_out
324
        debug_dmem_ena.next = dmem_ena
325
 
326
        debug_imem_data_in.next = imem_data_in
327
        debug_imem_data_out.next = imem_data_out
328
        debug_imem_sel_out.next = imem_sel_out
329
        debug_imem_we_out.next = imem_we_out
330
        debug_imem_addr_out.next = imem_addr_out
331
        debug_imem_ena.next = imem_ena
332
        debug_imem_ena_out.next = imem_ena_out
333
 
334
    return instances()
335
 
336
import sys
337
from numpy import log2
338
 
339
def TopBench():
340
    prepare()
341
    size = int(log2(int(sys.argv[1]))) if len(sys.argv) > 1 else 4
342
    print 'size=%s' % size
343
 
344
    txd_line = Signal(False)
345
    rxd_line = Signal(False)
346
    txd_line2 = Signal(False)
347
    rxd_line2 = Signal(False)
348
    leds = Signal(intbv(0)[8:])
349
    reset = Signal(False)
350
    clock = Signal(False)
351
 
352
 
353
    debug_if_program_counter = Signal(intbv(0)[CFG_IMEM_SIZE:])
354
 
355
    debug_gprf_dat_a = Signal(intbv(0)[CFG_DMEM_WIDTH:])
356
    debug_gprf_dat_b = Signal(intbv(0)[CFG_DMEM_WIDTH:])
357
    debug_gprf_dat_d = Signal(intbv(0)[CFG_DMEM_WIDTH:])
358
 
359
    debug_of_alu_op = Signal(alu_operation.ALU_ADD)
360
    debug_of_alu_src_a = Signal(src_type_a.REGA)
361
    debug_of_alu_src_b = Signal(src_type_b.REGB)
362
    debug_of_branch_cond = Signal(branch_condition.NOP)
363
    debug_of_carry = Signal(carry_type.C_ZERO)
364
    debug_of_carry_keep = Signal(False)
365
    debug_of_delay = Signal(False)
366
    debug_of_hazard = Signal(False)
367
    debug_of_immediate = Signal(intbv(0)[CFG_DMEM_WIDTH:])
368
    debug_of_instruction = Signal(intbv(0)[CFG_IMEM_WIDTH:])
369
    debug_of_mem_read = Signal(False)
370
    debug_of_mem_write = Signal(False)
371
    debug_of_operation = Signal(False)
372
    debug_of_program_counter = Signal(intbv(0)[CFG_IMEM_SIZE:])
373
    debug_of_reg_a = Signal(intbv(0)[5:])
374
    debug_of_reg_b = Signal(intbv(0)[5:])
375
    debug_of_reg_d = Signal(intbv(0)[5:])
376
    debug_of_reg_write = Signal(False)
377
    debug_of_transfer_size = Signal(transfer_size_type.WORD)
378
 
379
    # Write back stage forwards
380
    debug_of_fwd_mem_result = Signal(intbv(0)[CFG_DMEM_WIDTH:])
381
    debug_of_fwd_reg_d = Signal(intbv(0)[5:])
382
    debug_of_fwd_reg_write = Signal(False)
383
 
384
    debug_ex_alu_result = Signal(intbv(0)[CFG_DMEM_WIDTH:])
385
    debug_ex_reg_d = Signal(intbv(0)[5:])
386
    debug_ex_reg_write = Signal(False)
387
 
388
    debug_ex_branch = Signal(False)
389
    debug_ex_dat_d = Signal(intbv(0)[CFG_DMEM_WIDTH:])
390
    debug_ex_flush_id = Signal(False)
391
    debug_ex_mem_read = Signal(False)
392
    debug_ex_mem_write = Signal(False)
393
    debug_ex_program_counter = Signal(intbv(0)[CFG_IMEM_SIZE:])
394
    debug_ex_transfer_size = Signal(transfer_size_type.WORD)
395
 
396
    debug_ex_dat_a = Signal(intbv(0)[CFG_DMEM_WIDTH:])
397
    debug_ex_dat_b = Signal(intbv(0)[CFG_DMEM_WIDTH:])
398
    debug_ex_instruction = Signal(intbv(0)[CFG_DMEM_WIDTH:])
399
    debug_ex_reg_a = Signal(intbv(0)[5:])
400
    debug_ex_reg_b = Signal(intbv(0)[5:])
401
 
402
    debug_mm_alu_result = Signal(intbv(0)[CFG_DMEM_WIDTH:])
403
    debug_mm_mem_read = Signal(False)
404
    debug_mm_reg_d = Signal(intbv(0)[5:])
405
    debug_mm_reg_write = Signal(False)
406
    debug_mm_transfer_size = Signal(transfer_size_type.WORD)
407
 
408
    debug_dmem_ena_in = Signal(False)
409
    debug_dmem_data_in = Signal(intbv(0)[CFG_DMEM_WIDTH:])
410
    debug_dmem_data_out = Signal(intbv(0)[CFG_DMEM_WIDTH:])
411
    debug_dmem_sel_out = Signal(intbv(0)[4:])
412
    debug_dmem_we_out = Signal(False)
413
    debug_dmem_addr_out = Signal(intbv(0)[CFG_DMEM_SIZE:])
414
    debug_dmem_ena_out = Signal(False)
415
    debug_dmem_ena = Signal(False)
416
 
417
    debug_imem_data_in = Signal(intbv(0)[CFG_DMEM_WIDTH:])
418
    debug_imem_data_out = Signal(intbv(0)[CFG_IMEM_WIDTH:])
419
    debug_imem_sel_out = Signal(intbv(0)[4:])
420
    debug_imem_we_out = Signal(False)
421
    debug_imem_addr_out = Signal(intbv(0)[CFG_IMEM_SIZE:])
422
    debug_imem_ena = Signal(True)
423
    debug_imem_ena_out = Signal(False)
424
 
425
    top = SysTop(txd_line, rxd_line, txd_line2, rxd_line2, leds, reset, clock,
426
 
427
        # if __debug__:
428
        debug_if_program_counter,
429
 
430
        debug_of_alu_op,
431
        debug_of_alu_src_a,
432
        debug_of_alu_src_b,
433
        debug_of_branch_cond,
434
        debug_of_carry,
435
        debug_of_carry_keep,
436
        debug_of_delay,
437
        debug_of_hazard,
438
        debug_of_immediate,
439
        debug_of_instruction,
440
        debug_of_mem_read,
441
        debug_of_mem_write,
442
        debug_of_operation,
443
        debug_of_program_counter,
444
        debug_of_reg_a,
445
        debug_of_reg_b,
446
        debug_of_reg_d,
447
        debug_of_reg_write,
448
        debug_of_transfer_size,
449
 
450
        debug_of_fwd_mem_result,
451
        debug_of_fwd_reg_d,
452
        debug_of_fwd_reg_write,
453
 
454
        debug_gprf_dat_a,
455
        debug_gprf_dat_b,
456
        debug_gprf_dat_d,
457
 
458
        debug_ex_alu_result,
459
        debug_ex_reg_d,
460
        debug_ex_reg_write,
461
 
462
        debug_ex_branch,
463
        debug_ex_dat_d,
464
        debug_ex_flush_id,
465
        debug_ex_mem_read,
466
        debug_ex_mem_write,
467
        debug_ex_program_counter,
468
        debug_ex_transfer_size,
469
 
470
        debug_ex_dat_a,
471
        debug_ex_dat_b,
472
        debug_ex_instruction,
473
        debug_ex_reg_a,
474
        debug_ex_reg_b,
475
 
476
        debug_mm_alu_result,
477
        debug_mm_mem_read,
478
        debug_mm_reg_d,
479
        debug_mm_reg_write,
480
        debug_mm_transfer_size,
481
 
482
        debug_dmem_ena_in,
483
        debug_dmem_data_in,
484
        debug_dmem_data_out,
485
        debug_dmem_sel_out,
486
        debug_dmem_we_out,
487
        debug_dmem_addr_out,
488
        debug_dmem_ena_out,
489
        debug_dmem_ena,
490
 
491
        debug_imem_data_in,
492
        debug_imem_data_out,
493
        debug_imem_sel_out,
494
        debug_imem_we_out,
495
        debug_imem_addr_out,
496
        debug_imem_ena,
497
        debug_imem_ena_out,
498
 
499
            size=size)
500
 
501
    @instance
502
    def clockgen():
503
        yield delay(10)
504
        clock.next = False
505
        while 1:
506
            yield delay(10)
507
            clock.next = not clock
508
 
509
    @instance
510
    def stimulus():
511
        reset.next = False
512
        yield delay(37)
513
        reset.next = True
514
        yield delay(53)
515
        reset.next = False
516
        for i in range(2000):
517
            yield clock.negedge
518
        reset.next = False
519
        yield delay(37)
520
        reset.next = True
521
        yield delay(53)
522
        reset.next = False
523
        for i in range(2000):
524
            yield clock.negedge
525
 
526
        raise StopSimulation
527
 
528
    @instance
529
    def monitor():
530
        while 1:
531
            yield clock.posedge
532
            #if debug_dmem_ena_in:
533
                #print '%x' % debug_ex_program_counter
534
 
535
            #if debug_ex_program_counter == 0x0:
536
                #print 'reach the start 00000000'
537
            #if debug_ex_program_counter == 0x244:
538
                #print 'reach the second xil_print call'
539
            if debug_dmem_addr_out == 0xffffffc0:
540
                #if debug_dmem_sel_out == 0b1000:
541
                if debug_dmem_we_out:
542
                    #sys.stdout.write(chr(int(debug_dmem_data_out[8:])))
543
                    #sys.stdout.flush()
544
                    print int(debug_dmem_data_out[8:])
545
                    #print 'output: %d' % debug_dmem_data_out[8:]
546
 
547
 
548
 
549
 
550
            #print 'if_pc: %x\timem_addr: %x\treset: %x' % (
551
                #debug_if_program_counter, debug_imem_addr_out, reset
552
            #)
553
            #print ('of_pc: %x\tof_instruction:%x'
554
                   ##'\tbranch_cond:%s\talu_op:%s'
555
                   #'\thazard:%x') % (
556
                #debug_of_program_counter, debug_of_instruction,
557
                ##debug_of_branch_cond, debug_of_alu_op,
558
                #debug_of_hazard,
559
            #)
560
            #print 'ex_pc: %x\tex_instruction:%x' % (
561
                #debug_ex_program_counter,
562
                #debug_ex_instruction,
563
            #)
564
            #print 'Ra: r%d=%x\tRb: r%d=%x\t-> Rd:%d\tdat_d:%x\talu_result: %x\tbranch: %x' % (
565
                #debug_ex_reg_a, debug_ex_dat_a,
566
                #debug_ex_reg_b, debug_ex_dat_b,
567
                #debug_ex_reg_d, debug_ex_dat_d,
568
                #debug_ex_alu_result,
569
                #debug_ex_branch,
570
            #)
571
            #print 'ex_mem_read %s ex_mem_write %s' % (
572
                #debug_ex_mem_read, debug_ex_mem_write)
573
            #print ''
574
 
575
 
576
 
577
 
578
            #if enable and not ex_r_flush_ex: # and (ex_comb_r_reg_write
579
                    ##or ex_comb_mem_read or ex_comb_mem_write): # and DEBUG_VERBOSE:
580
            ##if DEBUG_VERBOSE:
581
                #print 'EX:',
582
                #dissembly(of_program_counter,
583
                          #of_instruction,
584
                          #ex_comb_r_reg_d,
585
                          #of_reg_a, 
586
                          #of_reg_b,
587
                          #ex_comb_dat_d,
588
                          #ex_comb_dat_a,
589
                          #ex_comb_dat_b, 
590
                          #ex_comb_r_alu_result,
591
                          #True)
592
                #print "\t",of_alu_op, of_alu_src_a, of_alu_src_b, of_immediate.signed()
593
                #print "\treg_write:=%s mem_read:=%s mem_write:=%s branch:=%s flush_ex:=%s" % (
594
                    #ex_comb_r_reg_write,ex_comb_mem_read,ex_comb_mem_write,
595
                    #ex_comb_branch, ex_comb_r_flush_ex)
596
                #print ''
597
                #if of_program_counter == 0x244:
598
                    #raw_input()
599
 
600
 
601
    return instances()
602
 
603
if __name__ == '__main__':
604
  if 1:
605
    #tb = traceSignals(TopBench)
606
    #Simulation(tb).run()
607
    conversion.verify.simulator = 'icarus'
608
    conversion.verify(TopBench)
609
  else:
610
    prepare()
611
    txd_line = Signal(False)
612
    rxd_line = Signal(False)
613
    txd_line2 = Signal(False)
614
    rxd_line2 = Signal(False)
615
    leds = Signal(intbv(0)[8:])
616
    reset = Signal(False)
617
    clock = Signal(False)
618
    size = int(log2(int(sys.argv[1]))) if len(sys.argv) > 1 else 4
619
    print 'size=%s' % size
620
    #toVHDL(uart_test_top, txd_line, rxd_line, leds, reset, clock)
621
    toVerilog(SysTop, txd_line, rxd_line, txd_line2, rxd_line2, leds, reset, clock, size=size)
622
 
623
 
624
### EOF ###
625
# vim:smarttab:sts=4:ts=4:sw=4:et:ai:tw=80:
626
 

powered by: WebSVN 2.1.0

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