1 """simple core issuer verilog generator
5 from nmigen
.cli
import verilog
7 from soc
.config
.test
.test_loadstore
import TestMemPspec
8 from soc
.simple
.issuer
import TestIssuer
11 if __name__
== '__main__':
12 parser
= argparse
.ArgumentParser(description
="Simple core issuer " \
14 parser
.add_argument("output_filename")
15 parser
.add_argument("--enable-xics", dest
='xics', action
="store_true",
16 help="Enable interrupts",
18 parser
.add_argument("--disable-xics", dest
='xics', action
="store_false",
19 help="Disable interrupts",
21 parser
.add_argument("--enable-lessports", dest
='lessports',
23 help="Enable less regfile ports",
25 parser
.add_argument("--disable-lessports", dest
='lessports',
27 help="enable more regfile ports",
29 parser
.add_argument("--enable-core", dest
='core', action
="store_true",
30 help="Enable main core",
32 parser
.add_argument("--disable-core", dest
='core', action
="store_false",
33 help="disable main core",
35 parser
.add_argument("--enable-pll", dest
='pll', action
="store_true",
38 parser
.add_argument("--disable-pll", dest
='pll', action
="store_false",
41 parser
.add_argument("--enable-testgpio", action
="store_true",
42 help="Disable gpio pins",
44 parser
.add_argument("--enable-sram4x4kblock", action
="store_true",
45 help="Disable sram 4x4k block",
47 parser
.add_argument("--debug", default
="jtag", help="Select debug " \
48 "interface [jtag | dmi] [default jtag]")
49 parser
.add_argument("--enable-svp64", dest
='svp64', action
="store_true",
52 parser
.add_argument("--disable-svp64", dest
='svp64', action
="store_false",
56 args
= parser
.parse_args()
61 'cr': 1, 'branch': 1, 'trap': 1,
69 pspec
= TestMemPspec(ldst_ifacetype
='bare_wb',
70 imem_ifacetype
='bare_wb',
75 # set to 32 for instruction-memory width=32
77 # set to 32 to make data wishbone bus 32-bit
79 xics
=args
.xics
, # XICS interrupt controller
80 nocore
=not args
.core
, # test coriolis2 ioring
81 regreduce
= args
.lessports
, # less regfile ports
82 use_pll
=args
.pll
, # bypass PLL
83 gpio
=args
.enable_testgpio
, # for test purposes
84 sram4x4kblock
=args
.enable_sram4x4kblock
, # add SRAMs
85 debug
=args
.debug
, # set to jtag or dmi
86 svp64
=args
.svp64
, # enable SVP64
89 print("nocore", pspec
.__dict
__["nocore"])
90 print("regreduce", pspec
.__dict
__["regreduce"])
91 print("gpio", pspec
.__dict
__["gpio"])
92 print("sram4x4kblock", pspec
.__dict
__["sram4x4kblock"])
93 print("xics", pspec
.__dict
__["xics"])
94 print("use_pll", pspec
.__dict
__["use_pll"])
95 print("debug", pspec
.__dict
__["debug"])
96 print("SVP64", pspec
.__dict
__["svp64"])
98 dut
= TestIssuer(pspec
)
100 vl
= verilog
.convert(dut
, ports
=dut
.external_ports(), name
="test_issuer")
101 with
open(args
.output_filename
, "w") as f
: