m = Module()
comb, sync = m.d.comb, m.d.sync
- m.submodules.core = core = self.core
+ m.submodules.core = core = DomainRenamer("coresync")(self.core)
m.submodules.imem = imem = self.imem
m.submodules.dbg = dbg = self.dbg
if self.jtag_en:
# clock delay power-on reset
cd_por = ClockDomain(reset_less=True)
cd_sync = ClockDomain()
- m.domains += cd_por, cd_sync
+ core_sync = ClockDomain("coresync")
+ m.domains += cd_por, cd_sync, core_sync
ti_rst = Signal(reset_less=True)
delay = Signal(range(4), reset=3)
m = Module()
comb = m.d.comb
- if self.pll_en:
- # TestIssuer runs at internal clock rate
- m.submodules.ti = ti = DomainRenamer("intclk")(self.ti)
- else:
- # TestIssuer runs at direct clock
- m.submodules.ti = ti = self.ti
+ # TestIssuer runs at direct clock
+ m.submodules.ti = ti = self.ti
+ cd_int = ClockDomain("coresync")
+
# ClockSelect runs at PLL output internal clock rate
m.submodules.clksel = clksel = DomainRenamer("pllclk")(self.clksel)
m.submodules.pll = pll = self.pll
# add 2 clock domains established above...
- cd_int = ClockDomain("intclk")
cd_pll = ClockDomain("pllclk")
m.domains += cd_pll
# internal clock is set to selector clock-out. has the side-effect of
# running TestIssuer at this speed (see DomainRenamer("intclk") above)
- intclk = ClockSignal("intclk")
- comb += intclk.eq(clksel.core_clk_o)
+ intclk = ClockSignal("coresync")
+ if self.pll_en:
+ comb += intclk.eq(clksel.core_clk_o)
+ else:
+ comb += intclk.eq(ClockSignal())
# PLL clock established. has the side-effect of running clklsel
# at the PLL's speed (see DomainRenamer("pllclk") above)
comb += pll.clk_24_i.eq(clksel.clk_24_i)
# now wire up ResetSignals. don't mind them all being in this domain
- int_rst = ResetSignal("intclk")
+ #int_rst = ResetSignal("coresync")
pll_rst = ResetSignal("pllclk")
- comb += int_rst.eq(ResetSignal())
+ #comb += int_rst.eq(ResetSignal())
comb += pll_rst.eq(ResetSignal())
return m
"verilog generator")
parser.add_argument("output_filename")
parser.add_argument("--enable-xics", action="store_true",
- help="Disable interrupts",
+ help="Enable interrupts",
+ default=True)
+ parser.add_argument("--enable-core", action="store_true",
+ help="Enable main core",
default=True)
parser.add_argument("--use-pll", action="store_true", help="Enable pll",
default=False)
# set to 32 to make data wishbone bus 32-bit
#wb_data_wid=32,
xics=args.enable_xics, # XICS interrupt controller
- #nocore=True, # to help test coriolis2 ioring
+ nocore=not args.enable_core, # test coriolis2 ioring
use_pll=args.use_pll, # bypass PLL
gpio=args.enable_testgpio, # for test purposes
debug=args.debug, # set to jtag or dmi