bbd69011f1ac106fca590ddedd140b313a6e47ba
1 from litesata
.common
import *
2 from litesata
.core
.link
.cont
import LiteSATACONTInserter
, LiteSATACONTRemover
4 from litesata
.test
.common
import *
6 class ContPacket(list):
7 def __init__(self
, data
=[]):
13 class ContStreamer(PacketStreamer
):
15 PacketStreamer
.__init
__(self
, phy_description(32), ContPacket
)
17 def do_simulation(self
, selfp
):
18 PacketStreamer
.do_simulation(self
, selfp
)
19 selfp
.source
.charisk
= 0
20 # Note: for simplicity we generate charisk by detecting
22 for k
, v
in primitives
.items():
24 if self
.source_data
== v
:
25 selfp
.source
.charisk
= 0b0001
29 class ContLogger(PacketLogger
):
31 PacketLogger
.__init
__(self
, phy_description(32), ContPacket
)
35 self
.streamer
= ContStreamer()
36 self
.streamer_randomizer
= Randomizer(phy_description(32), level
=50)
37 self
.inserter
= LiteSATACONTInserter(phy_description(32))
38 self
.remover
= LiteSATACONTRemover(phy_description(32))
39 self
.logger_randomizer
= Randomizer(phy_description(32), level
=50)
40 self
.logger
= ContLogger()
42 self
.pipeline
= Pipeline(
44 self
.streamer_randomizer
,
47 self
.logger_randomizer
,
51 def gen_simulation(self
, selfp
):
52 test_packet
= ContPacket([
83 streamer_packet
= ContPacket(test_packet
)
84 yield from self
.streamer
.send(streamer_packet
)
85 yield from self
.logger
.receive(len(test_packet
))
86 #for d in self.logger.packet:
90 s
, l
, e
= check(streamer_packet
, self
.logger
.packet
)
91 print("shift "+ str(s
) + " / length " + str(l
) + " / errors " + str(e
))
94 if __name__
== "__main__":
95 run_simulation(TB(), ncycles
=1024, vcd_name
="my.vcd", keep_files
=True)