17abe2c89650868813073d0a23ddb553ea627f47
1 from litesata
.common
import *
2 from litesata
.core
.link
import LiteSATALink
4 from litesata
.test
.common
import *
5 from litesata
.test
.hdd
import *
7 class LinkStreamer(PacketStreamer
):
9 PacketStreamer
.__init
__(self
, link_description(32), LinkTXPacket
)
11 class LinkLogger(PacketLogger
):
13 PacketLogger
.__init
__(self
, link_description(32), LinkRXPacket
)
18 link_debug
=False, link_random_level
=50,
19 transport_debug
=False, transport_loopback
=True)
20 self
.link
= InsertReset(LiteSATALink(self
.hdd
.phy
, buffer_depth
=512))
22 self
.streamer
= LinkStreamer()
23 self
.streamer_randomizer
= Randomizer(link_description(32), level
=50)
25 self
.logger_randomizer
= Randomizer(link_description(32), level
=50)
26 self
.logger
= LinkLogger()
28 self
.pipeline
= Pipeline(
30 self
.streamer_randomizer
,
32 self
.logger_randomizer
,
36 def gen_simulation(self
, selfp
):
38 streamer_packet
= LinkTXPacket([i
for i
in range(64)])
39 yield from self
.streamer
.send(streamer_packet
)
40 yield from self
.logger
.receive()
43 s
, l
, e
= check(streamer_packet
, self
.logger
.packet
)
44 print("shift "+ str(s
) + " / length " + str(l
) + " / errors " + str(e
))
47 if __name__
== "__main__":
48 run_simulation(TB(), ncycles
=2048, vcd_name
="my.vcd", keep_files
=True)