1 from migen
.fhdl
.std
import *
2 from migen
.bus
import wishbone
5 def __init__(self
, reset_pc
):
6 self
.ibus
= i
= wishbone
.Interface()
7 self
.dbus
= d
= wishbone
.Interface()
8 self
.interrupt
= Signal(32)
14 self
.specials
+= Instance("mor1kx",
15 p_FEATURE_INSTRUCTIONCACHE
="ENABLED",
16 p_OPTION_ICACHE_BLOCK_WIDTH
=4,
17 p_OPTION_ICACHE_SET_WIDTH
=8,
18 p_OPTION_ICACHE_WAYS
=1,
19 p_OPTION_ICACHE_LIMIT_WIDTH
=31,
20 p_FEATURE_DATACACHE
="ENABLED",
21 p_OPTION_DCACHE_BLOCK_WIDTH
=4,
22 p_OPTION_DCACHE_SET_WIDTH
=8,
23 p_OPTION_DCACHE_WAYS
=1,
24 p_OPTION_DCACHE_LIMIT_WIDTH
=31,
25 p_FEATURE_TIMER
="NONE",
26 p_OPTION_PIC_TRIGGER
="LEVEL",
27 p_FEATURE_SYSCALL
="NONE",
28 p_FEATURE_TRAP
="NONE",
29 p_FEATURE_RANGE
="NONE",
30 p_FEATURE_OVERFLOW
="NONE",
31 p_FEATURE_ADDC
="NONE",
32 p_FEATURE_CMOV
="NONE",
33 p_FEATURE_FFL1
="NONE",
34 p_OPTION_CPU0
="CAPPUCCINO",
35 p_OPTION_RESET_PC
=reset_pc
,
36 p_IBUS_WB_TYPE
="B3_REGISTERED_FEEDBACK",
37 p_DBUS_WB_TYPE
="B3_REGISTERED_FEEDBACK",
42 i_irq_i
=self
.interrupt
,
71 self
.ibus
.adr
.eq(i_adr_o
[2:]),
72 self
.dbus
.adr
.eq(d_adr_o
[2:])