Wednesday, 2020-02-05

*** tpb has joined #yosys00:00
*** ZirconiumX has quit IRC00:25
*** rohitksingh has joined #yosys00:49
*** citypw has joined #yosys01:47
*** citypw has quit IRC02:52
*** citypw has joined #yosys03:49
*** MoeIcenowy has quit IRC05:28
*** MoeIcenowy has joined #yosys05:28
*** Jybz has joined #yosys05:56
*** Jybz has quit IRC06:19
*** m4ssi has joined #yosys06:30
Xiretzadaveshah: confirmed, thank you!07:32
*** strongsaxophone has joined #yosys07:58
*** marex-cloud has joined #yosys08:30
*** dys has joined #yosys08:40
*** develonepi3 has quit IRC08:57
*** kraiskil has joined #yosys08:58
mwkdaveshah: btw, xilinx sometimes packs even a LUT5 and LUT6 together if the bits align just right09:00
mwkand such a thing can drive a MUXF tree09:00
daveshahYup, it was just an issue with the MUX output contention09:01
mwkI've seen such a thing in ISE output, they use the primary FF in always-enabled latch mode to route out of that mess09:01
daveshahAh, I haven't implemented that yet but Vivado does that too09:01
daveshahThe time I saw that I think it was actually to legalise a carry output09:01
mwkyes09:01
mwkthat as well09:01
mwkwith carry there's no way around that09:02
mwkwell, there is, but not without lengthtening the carry chain or other contortions09:02
*** kraiskil has quit IRC09:03
daveshahIndeed - I do the former in nextpnr-xilinx but using the latch mode might be a better option09:03
mwkI use the latch mode in nextpnr-leuctra09:03
mwk(we need to sit down at some point and merge all this mess into a single unified target... preferably when I've had a proper night of sleep)09:04
daveshahYes09:04
daveshahThe problem is the lack of a deduplicated db for UltraScale atm09:04
mwkI can arrange that09:04
mwkI mean, I don't have one yet, but I can produce one in a week or two09:05
daveshahRight, there is also the question of timing, for xc7 I pull timing out of Xray and I want to do similar with xcup09:06
daveshah(from RapidWright in that case)09:06
mwkI'll be looking into timing extraction soon as well09:06
mwkno guarantees about that one though09:06
daveshahThe primitive sets used are slightly different but that should be unifiable09:06
daveshahWe can always just keep the xc7/xcup packing separate to start with09:06
daveshahfrom the leuctra packing09:06
daveshahjust harmonise the database09:06
mwkactually I really thing we should merge them09:07
mwkwell, the slice packing at least09:07
mwkI/O is a vastly different beast09:07
mwkxc6s slice is much closer to xc7 slice than xc7 is to ultrascale09:07
mwkbasically just one fewer mux than xc7 (the secondary FF is perma-connected to LUT's O5 output)09:08
daveshahYes, for xc7 at least09:08
daveshahFor xcup I'd also need to do some work on the rapidwright side to split the larger primitives you've used09:08
mwkyou mean, split up LEUCTRA_LC into LUTs/MUXs/CARRY4s?09:09
daveshahYes, those are the primitives nextpnr-xilinx uses09:09
mwkit's kind of the opposite of what I'm doing in the post-processing step, ise really wants a SLICE* as a whole09:10
daveshahRight09:10
mwk(and my bitstream database also deals with whole slices as a unit, there's just too many common bits)09:10
daveshahThe fasm backend will probably need some changes for the different db and slice structure but that shouldn't be so bad09:12
daveshahIt all sounds fairly doable particularly if we keep BRAM and IO separate09:12
mwkBRAM packing will not really be a thing with -leuctra backend09:13
daveshahNo, it's not so much packing as things like rewriting write enables09:14
mwkit should just go through the generic path for random primitives that just need to be passed through with minor changes09:14
mwkoh, xc7 needs that?09:14
daveshahYes quite a bit of that09:14
mwkxc6s dumps most of this stuff on the synthesis tool09:14
daveshahAlso connecting to both lower and upper signals for the 36 size primitives09:14
daveshahIt's code that can just copy across from nextpnr-xilinx though09:14
mwkit actually tells you in the HDL library document exactly which signals you're supposed to tie how09:14
mwkalso uhh09:15
mwkyou know that xc7 support is in scope for nextpnr-leuctra as well, right? :p09:15
daveshahYes, I do, that's why we are planning to merge to two09:15
daveshah*the two09:15
mwkgood09:15
daveshahI've got most of these annoying things debugged now09:16
mwk(current status is that leuctra bitgen supports only xc3se and xc6s though; other stuff may need to wait a bit for the big rewrite)09:16
*** kraiskil has joined #yosys09:16
daveshahYes, we can just use the fasm backend for prjxray bitgen for now anyway09:17
daveshahThat was another very annoying thing but should port across OK09:17
daveshahMostly just slice structure changes09:17
*** X-Scale` has joined #yosys09:20
*** X-Scale has quit IRC09:20
*** X-Scale` is now known as X-Scale09:20
*** rohitksingh has quit IRC09:23
mwkalright, in any case09:24
mwkI'll be busy with unrelated stuff this week09:24
mwkthen I'll have some time to figure out the new db format (there are a couple issues with my current one that I really need to solve first; first and foremost the issue of alias pips)09:25
mwkright now I represent all inter-tile connections as bidirectional pips on the edges, which is not a great idea09:26
daveshahSo I think I might continue with the short term plan to upstream the current nextpnr-xilinx for xc7 and xcup, even though this will be replaced by the leuctra db in the long term09:27
mwkfor one, it can result in unsound routing when there are wires that can be driven from multiple directions... xc6s doesn't have those, but every single other xilinx family does09:27
daveshahYes, the slice 'X' wires if nothing else09:28
mwkuh?09:28
daveshahiirc anyway09:28
daveshahOh no I'm thinking of something else09:28
mwkno, I mean the long lines09:28
mwkwhich you can drive from top or bototm09:28
mwk(or, on some families, from the middle)09:28
daveshahOne option  would just be to have getPipsUphill etc iterate over all "neighbourhood" wires09:29
mwkyep09:29
daveshahThat's basically what nextpnr-xilinx does09:29
mwkbut it also requires having a unique WireId for a given node09:29
mwkunique canonical one09:29
daveshahIndeed, because nextpnr-xilinx doesn't deduplicate intertile nodes (only tile wires, pips and sites) this if fairly easy09:31
mwkright09:31
mwkso we need to figure how to approach it for deduplication09:32
daveshahI had to do some special casings of globals to get it to work well, but in the nexus arch that I'm working on I'm playing about with the concept of neighbourhoods09:34
daveshahInstead of just considering connections to adjacent neighbours I consider neighbours to be all other tiles that a tile has connection09:34
daveshahThen store the mappings for each set of possible "neighbourhoods" for a tile type separately09:35
mwkyou mean, directly and indirectly?09:35
daveshahThis works fairly well for something simple like CrossLink NX but might need more special casing for Xilinx with all the different long connections09:35
mwkyes09:35
daveshahAny nodal connection09:35
daveshahLattice don't really have a concept of tile wires, only nodes, so I kind of do the splitting up myself09:37
*** fsasm has joined #yosys09:56
*** az0re has quit IRC11:18
*** ZirconiumX has joined #yosys11:25
*** develonepi3 has joined #yosys11:37
strongsaxophoneis it possible to draw module level schematic with yosys? (not gate level like the example in the yosys documentation)12:02
daveshahYes, this will happen if you don't use flatten in your flow (something like proc; hierarchy; show top)12:07
daveshahIt won't be very pretty though12:07
strongsaxophoneOkay, Thank you.12:12
*** attie has quit IRC12:17
*** attie has joined #yosys12:17
strongsaxophonedaveshah: I got amazed with the result. Its fantastic.12:18
ZirconiumXABC9 seems to be having major issues with my synthesis script and I don't understand why12:33
ZirconiumX...Oh, I see why. Nevermind12:37
*** m4ssi has quit IRC13:12
*** emeb has joined #yosys14:27
*** strongsaxophone has quit IRC14:50
*** citypw has quit IRC14:51
*** MoeIcenowy has quit IRC15:03
*** MoeIcenowy has joined #yosys15:04
*** citypw has joined #yosys15:08
*** C-M has joined #yosys15:20
*** citypw has quit IRC15:21
*** az0re has joined #yosys15:35
*** ZipCPU has quit IRC15:37
*** Forty-Bot has quit IRC15:42
*** ZipCPU has joined #yosys16:00
*** pepijndevos[m] has joined #yosys17:01
*** fsasm has quit IRC17:13
*** kraiskil has quit IRC17:16
*** rohitksingh has joined #yosys17:18
*** dys has quit IRC17:39
*** klotz has joined #yosys18:00
*** klotz has quit IRC18:10
*** pointfree has quit IRC18:47
*** pointfree has joined #yosys18:48
*** m_w has joined #yosys19:24
*** pointfree has quit IRC19:41
*** m_w has quit IRC19:56
*** Jybz has joined #yosys20:15
*** Jybz has quit IRC20:28
*** dys has joined #yosys20:39
*** rohitksingh has quit IRC20:42
*** strongsaxophone has joined #yosys20:46
*** strongsaxophone has quit IRC20:56
*** rohitksingh has joined #yosys21:04
*** rohitksingh has quit IRC21:20
*** rohitksingh has joined #yosys21:28
*** rohitksingh has quit IRC21:38
*** rohitksingh has joined #yosys21:43
*** kraiskil has joined #yosys22:01
*** rohitksingh has quit IRC22:19
*** pointfree has joined #yosys23:03
*** dys has quit IRC23:15
*** kraiskil has quit IRC23:50
*** develonepi3 has quit IRC23:55

Generated by irclog2html.py 2.13.1 by Marius Gedminas - find it at mg.pov.lt!