@@ -24,15 +24,15 @@ import Bittide.ProcessingElement (
2424 processingElement ,
2525 )
2626import Bittide.ScatterGather
27- import Bittide.SharedTypes (Bytes , withBittideByteOrder )
27+ import Bittide.SharedTypes (Bytes )
2828import Bittide.Sync (Sync )
2929import Bittide.Wishbone (readDnaPortE2WbWorker , timeWb , uartBytes , uartInterfaceWb )
3030import Clash.Class.BitPackC (ByteOrder )
3131import Clash.Cores.Xilinx.Unisim.DnaPortE2 (readDnaPortE2 , simDna2 )
3232import Protocols.Idle (idleSink )
3333import Protocols.MemoryMap (Mm )
3434import Protocols.Wishbone (Wishbone , WishboneMode (Standard ))
35- import Protocols.Wishbone.Extra (delayWishboneC )
35+ import Protocols.Wishbone.Extra (delayWishbone )
3636import VexRiscv (DumpVcd (.. ), Jtag )
3737
3838import qualified Bittide.Cpus.Riscv32imc as Riscv32imc
@@ -60,8 +60,9 @@ type PeripheralsPerLink = 4
6060
6161{- External busses:
6262 - Transceivers
63+ - Callisto
6364-}
64- type NmuExternalBusses = 1 + (LinkCount * PeripheralsPerLink )
65+ type NmuExternalBusses = 2 + (LinkCount * PeripheralsPerLink )
6566type NmuRemBusWidth = RemainingBusWidth (NmuExternalBusses + NmuInternalBusses )
6667
6768muConfig ::
@@ -145,7 +146,11 @@ managementUnit maybeDna =
145146 idC -< (localCounter, uartOut, restBusses)
146147
147148gppe ::
148- (HiddenClockResetEnable dom , 1 <= DomainPeriod dom ) =>
149+ ( HiddenClockResetEnable dom
150+ , 1 <= DomainPeriod dom
151+ , ? busByteOrder :: ByteOrder
152+ , ? regByteOrder :: ByteOrder
153+ ) =>
149154 -- | DNA value
150155 Signal dom (Maybe (BitVector 96 )) ->
151156 Vec LinkCount (Signal dom (BitVector 64 )) ->
@@ -157,7 +162,7 @@ gppe ::
157162 ( Vec LinkCount (CSignal dom (BitVector 64 ))
158163 , Df dom (BitVector 8 )
159164 )
160- gppe maybeDna linksIn = withBittideByteOrder $ circuit $ \ (mm, nmuWbMms, jtag) -> do
165+ gppe maybeDna linksIn = circuit $ \ (mm, nmuWbMms, jtag) -> do
161166 -- Core and interconnect
162167 (scatterBusses, wbs0) <- Vec. split <| processingElement NoDumpVcd gppeConfig -< (mm, jtag)
163168 (gatherBusses, wbs1) <- Vec. split -< wbs0
@@ -166,7 +171,7 @@ gppe maybeDna linksIn = withBittideByteOrder $ circuit $ \(mm, nmuWbMms, jtag) -
166171 -- Synthesis fails on timing check unless these signals are registered. Remove as soon
167172 -- as possible.
168173 (nmuMms, nmuWbs) <- Vec. unzip -< nmuWbMms
169- nmuWbsDelayed <- repeatC delayWishboneC -< nmuWbs
174+ nmuWbsDelayed <- repeatC delayWishbone -< nmuWbs
170175 nmuWbMmsDelayed <- Vec. zip -< (nmuMms, nmuWbsDelayed)
171176
172177 -- Scatter Gather units
@@ -230,7 +235,7 @@ core (refClk, refRst) (bitClk, bitRst, bitEna) rxClocks rxResets =
230235 withBittideClockResetEnable managementUnit maybeDna -< (muMm, muJtag)
231236 (ugnWbs, muWbs1) <- Vec. split -< muWbAll
232237 (ebWbs, muWbs2) <- Vec. split -< muWbs1
233- (muSgWbs, [muTransceiverBus]) <- Vec. split -< muWbs2
238+ (muSgWbs, [muTransceiverBus, muCallistoBus ]) <- Vec. split -< muWbs2
234239 -- Stop management unit
235240
236241 -- Start internal links
@@ -271,7 +276,7 @@ core (refClk, refRst) (bitClk, bitRst, bitEna) rxClocks rxResets =
271276 rxResets
272277 NoDumpVcd
273278 ccConfig
274- -< (ccMm, (ccJtag, mask, linksSuitableForCc))
279+ -< (ccMm, muCallistoBus, (ccJtag, mask, linksSuitableForCc))
275280
276281 withBittideClockResetEnable
277282 (wbStorage " SampleMemory" )
0 commit comments