Add and enable async Wishbone bridges
[ls2.git] / simsoc.ys
1 # rad the main peripheral fabric, then uart16550, and finally libresoc core
2 # we do not have to do include the micron ddr3 model or the lattice ecp5
3 # models because apparently they're good to go, already (icarus is a lot
4 # stricter than verilator, hence the munging below)
5
6 read_ilang build_simsoc/top.il
7 read_verilog ../uart16550/rtl/verilog/raminfr.v
8 read_verilog ../uart16550/rtl/verilog/uart_defines.v
9 read_verilog ../uart16550/rtl/verilog/uart_rfifo.v
10 read_verilog ../uart16550/rtl/verilog/uart_top.v
11 read_verilog ../uart16550/rtl/verilog/timescale.v
12 read_verilog ../uart16550/rtl/verilog/uart_sync_flops.v
13 read_verilog ../uart16550/rtl/verilog/uart_debug_if.v
14 read_verilog ../uart16550/rtl/verilog/uart_regs.v
15 read_verilog ../uart16550/rtl/verilog/uart_transmitter.v
16 read_verilog ../uart16550/rtl/verilog/uart_receiver.v
17 read_verilog ../uart16550/rtl/verilog/uart_tfifo.v
18 read_verilog ../uart16550/rtl/verilog/uart_wb.v
19 read_verilog ../tercel-qspi/tercel/phy.v
20 read_verilog ../tercel-qspi/tercel/wishbone_spi_master.v
21 read_verilog ../verilog-wishbone/rtl/wb_async_reg.v
22 # errors in the ethmac rtl, comment out for now
23 #read_verilog ../ethmac/rtl/verilog/eth_clockgen.v
24 #read_verilog ../ethmac/rtl/verilog/eth_cop.v
25 #read_verilog ../ethmac/rtl/verilog/eth_crc.v
26 #read_verilog ../ethmac/rtl/verilog/eth_fifo.v
27 #read_verilog ../ethmac/rtl/verilog/eth_maccontrol.v
28 #read_verilog ../ethmac/rtl/verilog/ethmac_defines.v
29 #read_verilog ../ethmac/rtl/verilog/eth_macstatus.v
30 #read_verilog ../ethmac/rtl/verilog/ethmac.v
31 #read_verilog ../ethmac/rtl/verilog/eth_miim.v
32 #read_verilog ../ethmac/rtl/verilog/eth_outputcontrol.v
33 #read_verilog ../ethmac/rtl/verilog/eth_random.v
34 #read_verilog ../ethmac/rtl/verilog/eth_receivecontrol.v
35 #read_verilog ../ethmac/rtl/verilog/eth_registers.v
36 #read_verilog ../ethmac/rtl/verilog/eth_register.v
37 #read_verilog ../ethmac/rtl/verilog/eth_rxaddrcheck.v
38 #read_verilog ../ethmac/rtl/verilog/eth_rxcounters.v
39 #read_verilog ../ethmac/rtl/verilog/eth_rxethmac.v
40 #read_verilog ../ethmac/rtl/verilog/eth_rxstatem.v
41 #read_verilog ../ethmac/rtl/verilog/eth_shiftreg.v
42 #read_verilog ../ethmac/rtl/verilog/eth_spram_256x32.v
43 #read_verilog ../ethmac/rtl/verilog/eth_top.v
44 #read_verilog ../ethmac/rtl/verilog/eth_transmitcontrol.v
45 #read_verilog ../ethmac/rtl/verilog/eth_txcounters.v
46 #read_verilog ../ethmac/rtl/verilog/eth_txethmac.v
47 #read_verilog ../ethmac/rtl/verilog/eth_txstatem.v
48 #read_verilog ../ethmac/rtl/verilog/eth_wishbone.v
49 #read_verilog ../ethmac/rtl/verilog/timescale.v
50
51 read_verilog ./external_core_top.v
52
53 # stop yosys deleting stuff
54 setattr -mod -set keep 1 uart_transmitter
55 setattr -mod -set keep 1 uart_receiver
56
57 delete w:$verilog_initial_trigger
58
59 # these are most of "proc"
60 proc_prune
61 proc_clean
62 proc_rmdead
63 proc_init
64 proc_arst
65 proc_dlatch
66 proc_dff
67 proc_mux
68 proc_rmdead
69 proc_memwr
70 proc_clean
71 opt_expr -keepdc
72
73 # these are important to do in this order
74 memory_collect
75 pmuxtree
76
77 #opt_mem
78 #opt_mem_priority
79 #opt_mem_feedback
80 #opt_clean
81 extract_fa
82 clean
83 opt
84 clean
85 write_verilog -norename top.v
86 stat