mirror of
https://github.com/enjoy-digital/usb3_pipe.git
synced 2025-01-04 10:18:41 +08:00
pocs/kc705: make analyzer optional, blink led for 100ms when a LFPS Polling is detected
This commit is contained in:
parent
f28809c824
commit
62d28ee96c
@ -1,6 +1,7 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
from migen import *
|
from migen import *
|
||||||
|
from migen.genlib.misc import WaitTimer
|
||||||
|
|
||||||
from litex.build.generic_platform import *
|
from litex.build.generic_platform import *
|
||||||
|
|
||||||
@ -53,7 +54,9 @@ class _CRG(Module):
|
|||||||
# USB3SoC ------------------------------------------------------------------------------------------
|
# USB3SoC ------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class USB3SoC(SoCMini):
|
class USB3SoC(SoCMini):
|
||||||
def __init__(self, platform, with_etherbone=False, mac_address=0x10e2d5000000, ip_address="192.168.1.50"):
|
def __init__(self, platform,
|
||||||
|
with_etherbone=False, mac_address=0x10e2d5000000, ip_address="192.168.1.50",
|
||||||
|
with_analyzer=False):
|
||||||
|
|
||||||
sys_clk_freq = int(156.5e6)
|
sys_clk_freq = int(156.5e6)
|
||||||
SoCMini.__init__(self, platform, sys_clk_freq, ident="USB3SoC", ident_version=True)
|
SoCMini.__init__(self, platform, sys_clk_freq, ident="USB3SoC", ident_version=True)
|
||||||
@ -152,32 +155,38 @@ class USB3SoC(SoCMini):
|
|||||||
self.comb += lfps_receiver.idle.eq(rxelecidle)
|
self.comb += lfps_receiver.idle.eq(rxelecidle)
|
||||||
|
|
||||||
# LFPS Polling Transmit --------------------------------------------------------------------
|
# LFPS Polling Transmit --------------------------------------------------------------------
|
||||||
if True:
|
lfps_transmitter = LFPSTransmitter(sys_clk_freq=sys_clk_freq, lfps_clk_freq=25e6)
|
||||||
lfps_transmitter = LFPSTransmitter(sys_clk_freq=sys_clk_freq, lfps_clk_freq=25e6)
|
self.submodules += lfps_transmitter
|
||||||
self.submodules += lfps_transmitter
|
self.comb += [
|
||||||
self.comb += [
|
txelecidle.eq(lfps_transmitter.idle),
|
||||||
txelecidle.eq(lfps_transmitter.idle),
|
gtx.tx_produce_pattern.eq(~lfps_transmitter.idle),
|
||||||
gtx.tx_produce_pattern.eq(~lfps_transmitter.idle),
|
gtx.tx_pattern.eq(lfps_transmitter.pattern),
|
||||||
gtx.tx_pattern.eq(lfps_transmitter.pattern)
|
]
|
||||||
]
|
|
||||||
|
|
||||||
# Leds -------------------------------------------------------------------------------------
|
# Leds -------------------------------------------------------------------------------------
|
||||||
self.comb += platform.request("user_led", 0).eq(gtx.tx_ready)
|
self.comb += platform.request("user_led", 0).eq(gtx.tx_ready)
|
||||||
self.comb += platform.request("user_led", 1).eq(gtx.rx_ready)
|
self.comb += platform.request("user_led", 1).eq(gtx.rx_ready)
|
||||||
self.comb += platform.request("user_led", 7).eq(rxelecidle)
|
self.comb += platform.request("user_led", 7).eq(rxelecidle)
|
||||||
|
polling_timer = WaitTimer(int(sys_clk_freq*1e-1))
|
||||||
|
self.submodules += polling_timer
|
||||||
|
self.comb += [
|
||||||
|
polling_timer.wait.eq(~lfps_receiver.polling),
|
||||||
|
platform.request("user_led", 2).eq(~polling_timer.done)
|
||||||
|
]
|
||||||
|
|
||||||
# Analyzer ---------------------------------------------------------------------------------
|
# Analyzer ---------------------------------------------------------------------------------
|
||||||
analyzer_signals = [
|
if with_analyzer:
|
||||||
rxelecidle,
|
analyzer_signals = [
|
||||||
txelecidle,
|
rxelecidle,
|
||||||
|
txelecidle,
|
||||||
|
|
||||||
lfps_receiver.polling,
|
lfps_receiver.polling,
|
||||||
lfps_receiver.count,
|
lfps_receiver.count,
|
||||||
lfps_receiver.found,
|
lfps_receiver.found,
|
||||||
lfps_receiver.fsm,
|
lfps_receiver.fsm,
|
||||||
]
|
]
|
||||||
self.submodules.analyzer = LiteScopeAnalyzer(analyzer_signals, 32768, csr_csv="analyzer.csv")
|
self.submodules.analyzer = LiteScopeAnalyzer(analyzer_signals, 32768, csr_csv="analyzer.csv")
|
||||||
self.add_csr("analyzer")
|
self.add_csr("analyzer")
|
||||||
|
|
||||||
# Build --------------------------------------------------------------------------------------------
|
# Build --------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user