Actually64Dragon has quit [Ping timeout: 246 seconds]
Actually64Dragon has joined #glasgow
twix has quit [Ping timeout: 276 seconds]
twix has joined #glasgow
redstarcomrade has quit [Read error: Connection reset by peer]
icb has quit [Ping timeout: 272 seconds]
mal has quit [Ping timeout: 248 seconds]
mal has joined #glasgow
<whitequark[m]>
kbity
<purdeaandrei[m]>
Okay, so I figured this out: If both generated_cs and generated_sck paths have the same number of combinational processes on them, then it will always sample the new value
<purdeaandrei[m]>
if generated_cs has more combinational processes on them, then it will sample the old value
<purdeaandrei[m]>
the reason it sampled the old value on the QSPI test is because the CS line is inverted
<purdeaandrei[m]>
the inversion is caused by the ~ operator here:
<purdeaandrei[m]>
So for this reason the cs line has an extra delay cycle on it , and this is why, if I do .negedge(sck.o).sample(cs.o) I see the old value
<purdeaandrei[m]>
So it isn't strictly non-deterministic, since the order in which processes run will not affect the result
<whitequark[m]>
yes, this all seems accurate
<purdeaandrei[m]>
however it does depend on the number of combinatorial processes, which I would consider undesirable.
<purdeaandrei[m]>
so I'll refactor it a bit
<whitequark[m]>
yes. which is why I'm careful about saying that it's deterministic, for any given netlist
<whitequark[m]>
if you change the netlist, even equivalently in some cases, you may get different scheduling
<purdeaandrei[m]>
Yes, makes sense!
bvernoux has joined #glasgow
GNUmoon has quit [Remote host closed the connection]
miek__[m] has quit [Quit: Idle timeout reached: 172800s]
benny2366[m] has quit [Quit: Idle timeout reached: 172800s]
fishmonger[m] has joined #glasgow
<fishmonger[m]>
I ordered three different versions of those from Ali a few months ago just to have in the toolbox. Intended to use them for in-circuit dumping, but I suppose going directly to BGA pads might work. Seems a bit fiddly though.
<axiesmoothie[m]>
It does but what other choice do you have eeh
<axiesmoothie[m]>
Good to know you have experience with those
<fishmonger[m]>
Would not say I have experience. I own them and have opened the boxes just to get a feel for how exact the needles can be positioned. That's it. 🙂
lle_bout[m] has joined #glasgow
<lle_bout[m]>
can you mesure the diameter of the needles?
<fishmonger[m]>
Let me see if I can go find them. The lab is currently being remodeled and things are in unmarked boxes. BRB
<lle_bout[m]>
fishmonger (@_discord_281879542476439552:catircservices.org) for incircuit measurements this could be more fitting: https://sensepeek.com/ - I own those but there are too many pins to connect for bga nand chip dumping
<lle_bout[m]>
and they are too bulky but while in use they are quite stable
<lle_bout[m]>
same XD no worries, thanks
<lle_bout[m]>
I just would like to know how precise they can be
<fishmonger[m]>
So the answer is no, can't find them right now. Will try to remember to get back next week. (On the upside I found 2 SAS cards I don't remember buying)
<lle_bout[m]>
The chip I'm dealing with has 0.5mm center to center BGA ball spacing
<timbhanson[m]>
Apologies if this isn’t the right place but has anyone used the qspi applet in repl and gotten a full 4 bit bus working? I’m having trouble getting the repl to even generate clocks but the applet in run mode works just fine but only as a single bit wide spi controller.
<timbhanson[m]>
Went through and ran help on the iface object in the repl and think I ran writes, reads and exchanges and none of those wiggle the clock or data pins
Attie[m] has joined #glasgow
<Attie[m]>
did you use `await`?
<purdeaandrei[m]>
can you give an example of how you're driving it?
cr1901_ has joined #glasgow
cr1901 has quit [Ping timeout: 252 seconds]
Actually64Dragon has joined #glasgow
sam_w has joined #glasgow
sorear has joined #glasgow
<purdeaandrei[m]>
Also try running with "glasgow -v" you might get a message that would clear up why it isn't working
<timbhanson[m]>
No errors but clocks doesn’t seem to wiggle. If I replace repl with run and add some data it does work but only in standard single bit wide spi mode
<purdeaandrei[m]>
can you run it with glasgow -v repl qspi-controller —port A -V 3.3 —pin-sck 0 —pins-io 1,2,3,4 ?
<purdeaandrei[m]>
Also, no --pin-cs? it will use the default if you don't specify it
<timbhanson[m]>
That’s fine, I’m just running into a scope currently
<purdeaandrei[m]>
you may need to call await iface.select()
purdeaandrei[m]1 has joined #glasgow
<purdeaandrei[m]1>
Matrix > Discord message firwarding is currently down
<purdeaandrei[m]1>
<Attie[m]> "did you use `await`?" <- Your message wasn't seen
<purdeaandrei[m]>
I missed the @contextlib.asynccontextmanager decorator when I looked at the code
<timbhanson[m]>
That did something!
<timbhanson[m]>
Let me check the data lines but got correct number of clocks
<timbhanson[m]>
Awesome! That works now
<timbhanson[m]>
What clued you into the “with” block being required?
<timbhanson[m]>
Apologies, not super up on python programming patterns but stared at the code for a minute and couldn’t make heads or tails of it beyond what functions were available in the repl
<SnoopJ>
the "context manager" bit, probably. the `with` keyword expresses "I want to enter the context manager in this block, and I want to exit the context manager when this block ends"
<purdeaandrei[m]>
I was familiar with the concept of context manager, when I saw the error I figured it out. Basicly it's a python feature that allows you to wrap some code, and have some stuff run before, and after the wrapped code. And the way it's implemented with `try` `finally`, basically it deselects the chip even if you leave the `with` block via an exception
<timbhanson[m]>
Awesome, that clears it up
<timbhanson[m]>
Thanks
<timbhanson[m]>
Is there support in the qspi controller for inverted cs by chance? I don’t see anything in the applet arguments about it
<purdeaandrei[m]>
CS is active low, and I think that's currently hardcoded
<purdeaandrei[m]>
see here
<purdeaandrei[m]>
if you just need a quick hack edit that =~ to just =
<purdeaandrei[m]>
for active-high CS
<purdeaandrei[m]>
(that is in /software/glasgow/gateware/qspi.py)
<mwkmwkmwk[m]>
there is inverted-everything support in glasgow
<mwkmwkmwk[m]>
by prepending... I think ! to the pin on the command line?
<timbhanson[m]>
You guys really did a great job on the project, I just got my glasgow box a few days ago and in that short time I can tell it’s going to be indispensable for me