<DX-MON>
whitequark: question for you.. how do I go about simulating an applet I'm writing to debug the nMigen part? I'm struggling to get my logic right
<DX-MON>
(anyone else who knows about this subject is free to jump in too)
V is now known as based
egg|anbo|egg_ has joined #glasgow
egg|anbo|egg has quit [Ping timeout: 252 seconds]
based is now known as V
GNUmoon has joined #glasgow
bgianf has joined #glasgow
GNUmoon has quit [Remote host closed the connection]
<fest>
I've split the nmigen modules of my applet in separate py files and I just execute them to run the simulated version
GNUmoon has joined #glasgow
tomtastic has quit [Ping timeout: 246 seconds]
tomtastic has joined #glasgow
egg|anbo|egg has joined #glasgow
egg|anbo|egg_ has quit [Ping timeout: 252 seconds]
marblescompletel has joined #glasgow
jstein has joined #glasgow
<fest>
damn it, I give up
<fest>
so, I've been trying to acquire data from a video sensor at 48MHz
<fest>
I feed the sensor a clock (48MHz) and the sensor has two data lines, word size = 14 bits. I sample the inputs, combine 4/3 nibbles worth of data and write to fifo
<fest>
https://linx.wot.lv/n2o81bhc.png d1 is clk, d4, d5 is sensor data lines, d10 is when I start sampling (the sensor starts outputting data some cycles after it has received a command), d13 is fifo w_en
<fest>
at start of the line, sensor outputs a known pattern of data lines (0b11001100110011)
<fest>
when I'm running the applet multiple times, I receive something similar to the pattern as the first two bytes
<fest>
but sometimes it's shifted
<fest>
sometimes one of the data lines is 0 instead of one
<fest>
but every single time the latch, and w_en signals are correct - so the module is starting to sample and writing to fifo when it should be
<fest>
yet the data is different
<fest>
I've looked at the physical layer with a scope- although the data signals at glasgow connector are, ehm, damaged, the buffers clean the signal up nicely
<fest>
I've made a loopback test applet, where I generate the same pattern on negedge and capture it on posedge- it works perfectly fine there
<fest>
I am using FFSynchronizer on the input signals
<fest>
I've added clock constraints on the input pins as I noticed that nextpnr says that it's annotating ports with timing budget of 12MHz (not sure it does anything)
<fest>
I feel like this will be something basic about the digital design
<fest>
I guess I'll have to try freeing enough la channels for w_data to narrow the problem down
modwizcode has quit [Ping timeout: 248 seconds]
modwizcode has joined #glasgow
Eli2_ has joined #glasgow
Eli2 has quit [Ping timeout: 276 seconds]
Eli2 has joined #glasgow
Eli2_ has quit [Ping timeout: 240 seconds]
<DX-MON>
thanks for the pointer fest - much appreciate that. I'll get to writing a pysim harness tonight then and feed in some data from one of my captures with the JTAG-analyzer applet I wrote to sim real state transitions in the JTAG-PDI one and see what comes out
FFY00_ has quit [Ping timeout: 250 seconds]
FFY00_ has joined #glasgow
<fest>
re my problem: "oh, this is how FFSynchronizer works" :)
sam-bristow[m] has quit [Ping timeout: 245 seconds]
sam-bristow[m] has joined #glasgow
ServerStatsDisco has joined #glasgow
<modwizcode>
oops :)
samlittlewood_ has joined #glasgow
samlittlewood has quit [Ping timeout: 240 seconds]