Lofty changed the topic of #prjmistral to: Project Mistral: Yosys (and hopefully nextpnr) on Cyclone FPGAs - https://github.com/ZirconiumX/mistral - logs: https://freenode.irclog.whitequark.org/prjmistral
<Sarayan> looks like the hmc bypass may be easier than I thought
<Sarayan> gatecat: Added the HMC bypass info, it was easier than I expected
<Sarayan> decomp shows the HMC-bypassed pins too now
<Sarayan> Hey Lofty, hadn't you remade the LAB schem in a way more readable fashion?
<gatecat> Sarayan: thanks
<Lofty> Sarayan: indeed I did
<Lofty> But I wasn't sure how to integrate it with the PDF
<Sarayan> It's a svg?
<Lofty> It's a KiCad diagram
<Sarayan> can you turn it into a pdf?
<Lofty> I can turn it into a PDF or SVG
<Sarayan> then please do both and replace lab-cell.* with it in docs/*
<Sarayan> hmmm, need to get rid of the border :/
<Sarayan> very readable, congrats
<Sarayan> you're missing the LUT numbering
<Sarayan> to know which is which in the mux table
<Sarayan> A-F
<Lofty> "the LUT numbering"?
<Lofty> Sarayan: ^
<Sarayan> There are 6 LUTs, which I named A to F, which corresponds to bits in the 64 bits of ram there is
<Sarayan> if you don't have the names on the LUTs it's hard to know which uses which bits
<Sarayan> LUT_MASK
<Sarayan> Ram
<Sarayan> 64 bits
<Sarayan> 0
<Sarayan> 0-9
<Sarayan> LUT values, A has bits 0-15, B 16-23, C 24-31, D 32-47, E 48-55. F 56-63
<Lofty> https://puu.sh/HDTaZ/4634b047b9.png <-- Sarayan, could you check the order?
<Lofty> It might be (from top to bottom) ABCEFD
<Sarayan> you didn't mirror the two MUX2, so it's ABCEFD
<Sarayan> B & E go on 0, C & F go on 1
<Sarayan> (it's actually something we will have to check though, the bit mapping :-)
<Sarayan> nice
<Lofty> gatecat: as one of the people most likely to reference the diagram, does this look okay to you?
<gatecat> Lofty: looks reasonable, thanks
<gatecat> I think ENA might be missing though?
<Lofty> Enabled are handled at LAB level
<Lofty> *enables
<gatecat> Yeah, that makes sense
<gatecat> it'd still be good to have a note of it though
<Sarayan> ENA is in the common part, notin the cell
<Sarayan> the three clock lines already have the enable baked in
<Lofty> "Clock enables for [TB]CLK_SEL are handled at LAB level"
<Lofty> Sound okay?
<gatecat> Yes, that makes sense
<gatecat> It'd be nice to have a similar diagram for the LAB wide signals
<gatecat> although I don't know if we fully know the mappings for those?
<Lofty> I can work on that, maybe
<gatecat> is what I have figured for now, and is plenty for simple designs
<gatecat> but it'd be nice to know for completeness as much as anything else
<Lofty> Wow, you really work quickly
<gatecat> I mean most of this is untested, and untested code doesn't count for much
<gatecat> this is also now the 6th FPGA family I've been closely involved with so mostly it's pretty familiar ground
<gatecat> but hopefully, it should be up to blinky level in a couple of weeks
<Sarayan> gonna try to write/integrate the clock mux information
<gatecat> oh nice
<gatecat> for now we can route clocks up to the mux using general routing and use global routes after the mux, ime that's good enough for initial testing, but having the dedicated paths would definitely be good
<gatecat> it's been a long time since I've done Intel stuff but I think there might be some similar dedicated routing between some input pins and the PLL inputs?
<Lofty> Sarayan: pushed
<Sarayan> yes, there is, and between some input pins and the clock muxes, and between the plls and the clock muxes
<gatecat> mmm
<Sarayan> there's a lot of routing dedicated to clocks :-)
<Lofty> Not necessarily a bad thing
<gatecat> same for pretty much any FPGA tbh
<Sarayan> rather a good thing I'd say even
<gatecat> UltraScale clock routing is pretty intricate for sure
<Sarayan> clock is kinda critical for these very synchronous devices
<gatecat> does Intel also have local "edge" or similar high speed clocks around the IO?
<Lofty> Sarayan: is this more or less fun than reverse-engineering a 68k? :P
<Sarayan> Lofty: it's very different
<Sarayan> it has pll outputs and leveling groups and delay locking loops and stuff dedicated to fast i/o
<Sarayan> it's somewhat massive
<gatecat> yes, that all sounds quite typical
<gatecat> DDRn memory has some interesting IO challenges
<Sarayan> yeah, they have dedicated devices for that, which makes a lot of sense
<Sarayan> the cv with integrated ARMs dedicate one to the ARM too
<gatecat> I'm also intrigued by some of the voltage and timing selection bits for the MLAB
<gatecat> looks like they have some quite low level stuff exposed
<gatecat> (similar for the read/write pulse timing for the M10Ks)
<Lofty> FPGA chicken bits :P
<Sarayan> pulse timing is probably to be sure the pulse happens after the signal is stable?
<gatecat> mmm, RAM timing is kinda tricky for dual ports too
<gatecat> iirc mwk worked out that Xilinx implement the different priority modes (read/write first) by changing the pulse timings
<mwk> ... IIRC that was even documented somewhere
<Sarayan> cute
<gatecat> based on the sim models, in the Nexus Lattice are doing horrible timing stuff to use standard 6T SRAM as dual port dual clock
<Lofty> Amazing
<Sarayan> ok, lemme try to draw the CMUXHG (it's a complicated one)
<Sarayan> and I definitely don't understand the pll feedback stuff
sorear has quit [Ping timeout: 245 seconds]
sorear has joined #prjmistral
<Sarayan> Actually, Lofty, could you change the mux input order to C/E0/E1/D? I'll change the mux table, and it should actually be more readable
<Lofty> Sure, but I just got into bed and it's too comfy to get up
bwidawsk has quit [Quit: Always remember, and never forget; I'll be back.]
<Sarayan> Of course
<Sarayan> I'll push the mux table change, and you do the rest when you can. You'll see how much more readable it is :-)
bwidawsk has joined #prjmistral