<_florent_>
cr1901_modern: yes sorry (untested since refactoring), it should be better
<cr1901_modern>
_florent_: No problem. After I learn the codebase a bit more, I am willing to add some documentation. I think litescope's an important tool to prevent/reduce frustration.
<GitHub147>
[misoc] enjoy-digital force-pushed master from da25367 to fd31e6a: http://git.io/LjONPA
<_florent_>
I'm mostly using simple Term, so if you find issues with EdgeDetector please report it
<cr1901_modern>
Sure. One thing I don't get about term is: You can place an arbitrary string like "term" into configure_term, and litescope will happily run >>
<cr1901_modern>
when it seems the "proper" string expected is a product of maxterms or sum of minterms
<cr1901_modern>
Ie "A & B & C | D" (when all my signal names follow a pattern of ttl_[0-9]+)
<_florent_>
in fact this is only useful when you have multiple triggering using, for example: "term | (edge_detector & range_detector)"
<cr1901_modern>
AFAICT, "term" just "unconditionally captures data when the litescope driver writes a request to the SoC". Is this correct?
<_florent_>
You can have multiple detector, for example detector A, B, C. Each detector will have the same signals on its input, but are not necessary the sames (Term, RangeDetector, EdgeDetector) or programmed the same way.
<_florent_>
So you have a LiteScopeSum after the detector that generates a hit signal from the hit signals from all the detector, and it's lookup table that we have to program
<_florent_>
but you also have to program each detector individually
<_florent_>
here, if you only have 1 detector, you will only program the LUT with 0->0, 1-1 which is what "term" does
<_florent_>
you will program the CSRs of the EdgeDetector to configure your trigger
<cr1901_modern>
Okay, I followed most of that: We have multiple detectors that we can chain together
<cr1901_modern>
Some of the detectors are programmable, some are not
<cr1901_modern>
(term isn't, unless I misunderstand)
<_florent_>
in fact all the detectors are programmable
<_florent_>
LiteScopeTerm has 2 CSRS: trig and mask
<cr1901_modern>
mask, presumably, is a bitmask for channels
<_florent_>
the hit equation is: source.hit.eq((sink.data & self.mask) == self.trig)
<cr1901_modern>
So, if I wanted to capture when channel 0, out of 8 channels, went low, I'd set mask to 0x01 and trig to 0x00?
<cr1901_modern>
or sorry trig to 0xFE*
stekern has quit [Ping timeout: 250 seconds]
<cr1901_modern>
(that way no other channels cause a hit)
<_florent_>
channel0: mask to 0x01 and trig to 0x01
<_florent_>
channel1: mask to 0x02 and trig to 0x02
<cr1901_modern>
Oh! and channel 0 and 1, mask to 0x03 and trig to 0x03 (if I want both of them high before capture starts)
<_florent_>
ah sorry not, miss-read, you were right, what I wrote was for triggering when channelx went high
<cr1901_modern>
Unfortunately, the victim chip I'm trying to analyze is active low
<cr1901_modern>
Awesome! Just capture my first legit waveform with Litescope XD
<_florent_>
with EdgeDetector or Term?
<cr1901_modern>
Term
<cr1901_modern>
the first sample is wrong (it's high when my term is active low), but I think I had issues with that previously
<cr1901_modern>
I also just conveniently answered one of my other questions too (what does offset do?) by viewing the waveform.
<_florent_>
yes, sometimes you want to be able to see what happened before your trigger, offset can be used for that. (offset of 128 means you will be able to visualize 128 cycles before your trigger)
<cr1901_modern>
Very useful in my case to get setup times for other signals
<GitHub114>
[artiq] sbourdeauducq pushed 9 new commits to master: http://git.io/vs1ra
<GitHub114>
artiq/master 7d4d92e Sebastien Bourdeauducq: gui/explorer: use QTreeWidget for argument editor
<GitHub114>
artiq/master bb228b0 Sebastien Bourdeauducq: gui,language,master: argument groups
<cr1901_modern>
The edge detector keeps saying there is a hit AFTER the clock cycle where the edge was detected, right?
<cr1901_modern>
I.e. if I do la.configure_sum("term & edge_detector"), the "term" hit can follow a few cycles after the edge hit?
<_florent_>
both Term and EdgeDetector are asynchronous, so they should generate their hit signal at the same time
<cr1901_modern>
okay, wanted to make sure
<rjo>
sb0: you said the output is 0. the output needs 12V iirc.
<rjo>
sb0: on the current you should ask joe or daniel.
<sb0>
rjo, yes, for the amp, but it's also 0 directly at the output of the DDS chip, and it's still 0 with 12V applied
stekern has joined #m-labs
<cr1901_modern>
_florent_: Testing/building edge detector scope now
<_florent_>
ok
<sb0>
rjo, the other symptoms (insufficient current on 1.8V and no SYNC_OUT) also point to a problem at the DDS chip level
<rjo>
yeah. nobody ever bothers to test the dds boards let alone send the fab hous some setup to have them test it. could well be broken boards/open connections.
<cr1901_modern>
_florent_: 'LiteScopeLADriver' object has no attribute 'trigger_port0_rising_mask'. Forgot to change register names? :P
<cr1901_modern>
(the register is called trigger_port0_rising, trigger_port0_falling, trigger_port0_both)
<cr1901_modern>
wait nevermind, ignore me
<cr1901_modern>
I didn't assign the edge detector to the right port
<_florent_>
yes, but you are probably right about the missing _mask, I'm fixing that
<GitHub47>
[misoc] enjoy-digital pushed 1 new commit to master: http://git.io/vs1QF
<ysionneau>
sb0: I was able to run the GUI + master and run the Floppy F simulation on win64 using the win32 package (you just need to install miniconda 32bit instead of the 64 bit)
<ysionneau>
the pyqtgraph was working
<ysionneau>
I didn't try llvmlite-artiq yet
<ysionneau>
and I've set up automated builds for win32 :) let see at the next commit if it works fine
<ysionneau>
after a bit more testing I'll update the manual and the github issue
stekern has quit [Ping timeout: 272 seconds]
stekern has joined #m-labs
stekern has quit [Ping timeout: 252 seconds]
stekern has joined #m-labs
stekern has quit [Ping timeout: 240 seconds]
stekern has joined #m-labs
stekern has quit [Ping timeout: 246 seconds]
stekern has joined #m-labs
stekern has quit [Ping timeout: 240 seconds]
stekern has joined #m-labs
stekern has quit [Ping timeout: 260 seconds]
stekern has joined #m-labs
<rjo>
ysionneau: what do you need automated builds for?