Tuesday, 2021-04-06

*** tpb has joined #symbiflow00:00
*** Degi_ has joined #symbiflow01:06
*** Degi has quit IRC01:09
*** Degi_ is now known as Degi01:09
*** futarisIRCcloud has quit IRC01:09
*** umarcor has quit IRC01:12
mithrooem: You might want to consider working with people like umarcor on docker packaging stuff @ https://github.com/hdl01:13
mithrooem: Probably https://github.com/hdl/containers to be specific01:13
cr1901_modernlitghost: The past few weeks I've have been rough in meatspace so I haven't worked much on Symbiflow MachXO2 port. I'm ready to go back to it. However, I'm kinda stuck on where to go next on integrating stuff into the build system. >>01:18
cr1901_modernI was wondering if you have time this week for me to poke your brain/ask more qs to get me unstuck01:18
cr1901_modernI think I have three big pain points right now: >>01:20
cr1901_modern1. The duplication of code between the python scripts calling conv.tcl/diff_io helper/synth.tcl and the arch() function doing essentially the same thing in its internals.01:20
cr1901_modern2. Actually filling out the arch() cmake function itself and whether it's possible to fill it out piecemeal just so I can test that things are working.01:21
cr1901_modern3. How might I incorporate python-symbiflow-v2x into the build system directly (and "can I used the upstream yosys techlibs to generate these" or should I reimplement them w/ the special annotations?01:22
cr1901_modern4 (I lied). I have a python library hat is capable of building routing graphs for machxo2. There's no reason I can't use it for symbiflow. But is it recommended to generate the routing graphs before committing them?01:26
mithroThis is pretty cool -> https://excamera.com/sphinx/article-cuflow-crossbar.html never heard of "River routing" before...01:26
mithrohttps://hackaday.com/2021/03/30/wires-vs-words-pcb-routing-in-python/01:26
tpbTitle: Crossbars in CuFlow (at excamera.com)01:26
cr1901_modern(Well, one of them, since symbiflow needs to generate the routing graph twice I think to sanitize it for VPR)01:26
mithrocr1901_modern: BTW Have you seen https://github.com/SymbiFlow/symbiflow-rr-graph ?01:27
cr1901_modernmithro: No I haven't. I will have to take a look and play around w/ it in an isolated work directory01:27
cr1901_modernprjtrellis can generate a generic routing graph structure; I can use that to perhaps generate XML output.01:28
mithrocr1901_modern: gatecat has been prjoxide has been bringing up fpga-interchange support.....01:29
cr1901_modernShouldn't I worry about getting vpr to play nice w/ prjtrellis before I worry about fpga-interchange?01:35
cr1901_modernAlso, not to mention: If fpga-interchange is meant to be the agreed-upon routing graph format for e.g. nextpnr fpgas, what will be done w/ the existing archs that use their own routing graph structures?01:36
cr1901_modernmithro: Can you point me to the symbiflow docs page that discusses the difference between -virt.xml rrgraph files and those without virt?01:58
cr1901_modernAssuming I'm not confusing -virt for something else (I just remember that symbiflow wants two versions of the routing graph)01:58
mithrocr1901_modern: IIRC The "virt" graph is the one that vpr generates by default01:59
mithroIt's kind of a "fake" graph that can be used for research but is 100% useless for mapping to a real device until you do a *huge* amount of work01:59
mithrocr1901_modern: So we just replace it directly with the real routing graph02:01
mithrocr1901_modern: https://docs.google.com/document/d/1tigU9696M8LWO46nQBBcO1Uta7cwmXg-QylktISOc4o/edit#heading=h.tc2o015uyrch02:01
tpbTitle: Making a VPR routing graph from prjxray - Google Docs (at docs.google.com)02:01
mithrohttps://docs.google.com/drawings/d/114n-yA-kCyeeQfUJJtbxXjjHuNc8YXJ1XnwaubWOWco/edit maybe?02:02
tpbTitle: Prjxray import flow - Google Zeichnungen (at docs.google.com)02:02
mithrohttps://docs.google.com/drawings/d/1GwzV6Rs0gbiGI4DznWwG4000BLOcsuYYgYQ0YDqgXHY/edit02:02
tpbTitle: SymbiFlow Architecture Definitions - File Diagram - Google Zeichnungen (at docs.google.com)02:02
cr1901_modernOkay I found the page I was looking at02:04
cr1901_modernhttps://github.com/SymbiFlow/symbiflow-arch-defs/blob/f34cd50d6eeeb0dc248dabf6ad6d0673f698489c/ice40/README.md02:04
mithroI'm quite out of date around how things work...02:04
cr1901_modern(Yes, I know it's ice40)02:04
cr1901_modern"The devices architecture descriptions have approximations of the real fabric, to get real fabric you have to override the rr_graph.xml file."02:04
cr1901_modern"Fake fabric which "approximates" the real fabric inside the iCE40."02:04
mithroThe ice40 fabric is pretty regular so is much closer to what something like VPR generates compared to Xilinx stuff02:05
*** gsmecher has quit IRC02:05
cr1901_modernI'd been deliberately avoiding going down the 7-series rabbit hole b/c it's a lot more complex than machxo2. And if I don't have to, I don't want to have to learn how 7-series fabric works just to generate a routing graph for machxo202:05
cr1901_modernBtw, is rr_graph.real.xml fed back into VPR's --read-rr-graph option02:06
cr1901_modern?*02:06
mithrocr1901_modern: I believe so02:06
*** lopsided98_ has joined #symbiflow05:03
*** lopsided98 has quit IRC05:04
*** kraiskil has joined #symbiflow05:24
*** proteusguy has quit IRC05:37
*** kraiskil has quit IRC05:38
*** kraiskil has joined #symbiflow06:05
*** kraiskil has quit IRC06:29
*** proteusguy has joined #symbiflow06:31
*** kgugala_ has joined #symbiflow06:56
*** kgugala_ has quit IRC06:57
*** kgugala has quit IRC06:57
*** kgugala has joined #symbiflow06:58
*** hansfbaier has joined #symbiflow07:51
*** hansfbaier has quit IRC08:01
*** sirri has joined #symbiflow08:06
*** sirri has quit IRC08:23
*** sirri has joined #symbiflow08:39
*** sirri has joined #symbiflow08:39
*** sirri has quit IRC08:52
*** sirri has joined #symbiflow08:52
*** sirri has quit IRC08:57
*** sirri has joined #symbiflow08:57
sf-slack<acomodi> FFY00_: here are the wrappers that would need re-writing: https://github.com/SymbiFlow/symbiflow-arch-defs/tree/master/xc/xc7/toolchain_wrappers09:14
*** kraiskil has joined #symbiflow09:20
*** kraiskil has quit IRC09:35
*** sirri has quit IRC10:17
*** sirri has joined #symbiflow10:17
*** sirri has quit IRC10:22
*** sirri has joined #symbiflow10:22
*** kraiskil has joined #symbiflow10:50
*** kraiskil has quit IRC11:04
*** epony has quit IRC11:20
*** epony has joined #symbiflow11:25
*** sirri has quit IRC11:27
*** sirri has joined #symbiflow11:27
*** sirri has quit IRC11:32
*** sirri has joined #symbiflow11:32
*** sirri has quit IRC11:36
*** kraiskil has joined #symbiflow11:44
*** kraiskil has quit IRC12:24
*** umarcor has joined #symbiflow12:49
umarcoroem: have a look at https://github.com/hdl/containers12:50
umarcorhttps://hdl.github.io/containers/#_tasks12:50
tpbTitle: HDL containers (at hdl.github.io)12:50
*** BryceSchroeder has quit IRC13:48
*** gsmecher has joined #symbiflow14:15
*** epony has quit IRC14:17
*** epony has joined #symbiflow14:18
*** rj has joined #symbiflow14:30
*** rj has quit IRC15:16
*** rj has joined #symbiflow15:21
FFY00_okay, that seems fairly straight forward. are there toolchain scripts for other families? I had a quick look but couldn't find anything. would be project involve doing anything else? I assume it will have stretch goals, things I can do if there is time left, but is there anything else in the deliverables?16:10
FFY00_*would the project16:11
FFY00_and could you elaborate a bit more on the "generalization". I am gonna guess we want to port these scripts to other families, right? or is it really just OS level generalization?16:15
*** cjearls has joined #symbiflow16:25
sf-slack<acomodi> FFY00_: So, I think getting to a place where those scripts are family-agnostic and OS-agnostic (at least for the main ones) would be the goal17:06
FFY00_okay, so the deliverables would be developing a specification/format to write the scripts, port the xc7 family and what else?17:09
sf-slack<acomodi> That would do, probably we could get in also ports for other families in case they'll get supported as well. Another potential deliverable might be to add testing to cover all the wrappers functionalities17:13
*** kraiskil has joined #symbiflow17:14
*** sirri has joined #symbiflow17:35
*** sirri has quit IRC17:38
*** sirri has joined #symbiflow17:38
*** sirri has quit IRC17:43
*** curtosis[away] has joined #symbiflow18:44
*** curtosis[away] has quit IRC19:06
*** sirri has joined #symbiflow19:25
sf-slack<sdamghan> Hey all19:37
mithroHey sdamghan!19:37
mithrosdamghan, you should chat with acomodi, kgugala, Lofty and maybe even gatecat about your ODIN-II partial mapping stuff19:37
LoftyHmm?19:37
mithroLofty: sdamghan is a student at News Brunswick that is working on ODIN-II and trying to make it integrate better with Yosys19:38
LoftyCould you be more specific with 'partial mapping'?19:39
mithroLofty: ODIN-II has the ability to make potentially more intelligent choices about how to map to hard / soft logic19:39
Loftymithro: ah; I call that deferred technology mapping rather than partial19:40
mithroLofty: According to sdamghan it means it can choose to only map some stuff to hard logic and have other's kept it soft logic19:40
mithroBut I'm just a manager these days, so no idea what I'm talking about :-)19:40
Loftysdamghan: have you seen what the University of Utah have been working on with LSOracle?19:41
LoftyIf I'm honest, I'm not sure that changing Yosys for Odin is the fix, because Odin still uses ABC under the hood, right?19:42
LoftyAnd to my knowledge ABC itself does not actually have support for this.19:43
LoftyWhich is why UofU want to replace ABC wholesale19:43
LoftySo, I agree with the goal, I just don't think it's the right way to do it.19:44
*** kraiskil has quit IRC20:40
*** sirri has quit IRC20:49
*** sirri has joined #symbiflow20:50
litghostcr1901_modern: For v2x stuff, acomodi and kgugala are better folks to ask.  I haven't touched v2x in a while20:50
litghostcr1901_modern:  In terms of having a minimal define_arch, take a look at how testarch and the new quick logic arch are being brought up20:51
litghostcr1901_modern:  There are options that start with NO_... that disable portions of arch-defs until that support is ready20:52
litghostcr1901_modern:  I don't really understand your 4th question, can you rephrase?20:54
*** sirri has quit IRC20:54
*** sirri has joined #symbiflow20:55
*** sirri has quit IRC20:59
*** sirri has joined #symbiflow21:00
*** sirri has quit IRC21:04
*** sirri has joined #symbiflow21:04
*** smkz has quit IRC21:08
*** smkz has joined #symbiflow21:10
*** FFY00_ has quit IRC22:01
*** FFY00_ has joined #symbiflow22:02
*** lambda has quit IRC22:03
sf-slack<sdamghan> I haven't actually, its good to know about that tho22:25
sf-slack<sdamghan> Actually, Odin receives a Verilog file in addition to an xml architecture file and it outputs a blif file which is kinda partial mapped.22:26
sf-slack<sdamghan> The blif file is given to the ABC. Generally, Odin does not use ABC22:27
sf-slack<sdamghan> To the best of my knowledge, Yosys does not specify the hierarchy of a statement. For instance, this [link] blif file is generated for this [link] Verilog file from yosys. We do not have access to the instance _uut1_ or _uut2_ in the blif file, so specifying the hierarchy among modules could be a problem. 1.  2. Yosys generates a unique _.model_ for each module in the output blif. However, based on the above mentioned22:29
sf-slackmatter, if there is a module instance inside the first module the _.model_ content for the first module would be empty. This happens while yosys should at least show the connectivity among the first module signals and the module instance signals.  3.  Yosys generates a sub-circuit called $dff for reg assignments; However, in the output blif file the clock sensitivity, i.e. fallin, riasing, asynchronous or etc., is not specified.22:29
sf-slack[Verilog-link] [BLIF-link]22:29
*** curtosis[away] has joined #symbiflow23:13
*** curtosis[away] has quit IRC23:42

Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!