From e309ba55ea192413b4144ba1e273361312f08180 Mon Sep 17 00:00:00 2001 From: Florent Kermarrec Date: Mon, 23 Feb 2015 12:34:04 +0100 Subject: [PATCH] use new Migen sel signal to change the way we upload data (will enable fifo bursts) --- litescope/core/storage.py | 7 +++++-- litescope/host/driver/la.py | 3 +-- test/test_la.py | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/litescope/core/storage.py b/litescope/core/storage.py index 30aab161..930ea31d 100644 --- a/litescope/core/storage.py +++ b/litescope/core/storage.py @@ -97,6 +97,7 @@ class LiteScopeRecorderUnit(Module): self.post_hit = Signal() self.source = Source(data_layout(dw)) + self.source_level = Signal(bits_for(depth)) ### @@ -137,6 +138,7 @@ class LiteScopeRecorderUnit(Module): If(~fifo.sink.ack | (fifo.fifo.level >= self.length), NextState("IDLE")) ) + self.comb += self.source_level.eq(fifo.fifo.level) class LiteScopeRecorder(LiteScopeRecorderUnit, AutoCSR): def __init__(self, dw, depth): @@ -149,7 +151,7 @@ class LiteScopeRecorder(LiteScopeRecorderUnit, AutoCSR): self._done = CSRStatus() self._source_stb = CSRStatus() - self._source_ack = CSR() + self._source_level = CSRStatus(bits_for(depth)) self._source_data = CSRStatus(dw) ### @@ -162,6 +164,7 @@ class LiteScopeRecorder(LiteScopeRecorderUnit, AutoCSR): self._done.status.eq(self.done), self._source_stb.status.eq(self.source.stb), + self._source_level.status.eq(self.source_level), self._source_data.status.eq(self.source.data), - self.source.ack.eq(self._source_ack.re) + self.source.ack.eq(self._source_data.sel), ] diff --git a/litescope/host/driver/la.py b/litescope/host/driver/la.py index a60d5d72..5fe0f8b4 100644 --- a/litescope/host/driver/la.py +++ b/litescope/host/driver/la.py @@ -111,9 +111,8 @@ class LiteScopeLADriver(): def upload(self): if self.debug: print("uploading") - while self.recorder_source_stb.read(): + while self.recorder_source_level.read(): self.data.append(self.recorder_source_data.read()) - self.recorder_source_ack.write(1) if self.with_rle: if self.rle_enable.read(): self.data = self.data.decode_rle() diff --git a/test/test_la.py b/test/test_la.py index 9f7aba94..641b693b 100644 --- a/test/test_la.py +++ b/test/test_la.py @@ -9,7 +9,7 @@ la = LiteScopeLADriver(wb.regs, "la", debug=True) cond = {} # trigger on cnt0 = 128 la.configure_term(port=0, cond=cond) la.configure_sum("term") -la.configure_subsampler(8) +la.configure_subsampler(1) #la.configure_qualifier(1) la.configure_rle(1) la.run(offset=128, length=256) -- 2.30.2