Friday, 2019-09-13

*** tpb has joined #symbiflow00:00
*** freemint has joined #symbiflow00:10
*** freemint has quit IRC00:10
*** bjorkintosh has joined #symbiflow00:36
*** _whitelogger has quit IRC02:00
*** _whitelogger has joined #symbiflow02:02
*** bjorkintosh has quit IRC02:17
*** bjorkintosh has joined #symbiflow02:22
*** proteusguy has quit IRC02:34
hackerfooI got the site->site interconnect working in IOPAD. I'm trying to get IBUF/OBUF techmapped, but got stuck on a "Can not find any logic block that can implement molecule" error: https://github.com/SymbiFlow/symbiflow-arch-defs/commit/b3e82269317da9fe8c2c9f547e3d074ee7cdfddf03:14
tpbTitle: WIP techmap IBUF/OBUF primitives · SymbiFlow/symbiflow-arch-defs@b3e8226 · GitHub (at github.com)03:14
hackerfooAny idea what I'm doing wrong?03:15
*** craigo has joined #symbiflow03:34
*** mkru has joined #symbiflow04:28
*** Bertl_oO is now known as Bertl_zZ06:07
*** craigo has quit IRC06:52
*** craigo has joined #symbiflow06:52
*** craigo has quit IRC07:12
*** craigo has joined #symbiflow07:12
*** craigo has quit IRC07:14
*** craigo has joined #symbiflow07:14
*** craigo has quit IRC07:20
*** craigo has joined #symbiflow07:22
*** proteusguy has joined #symbiflow08:24
sf-slack3<mkurc> @hackerfoo Well, it works for me. I started with a clean build directory.08:46
*** craigo has quit IRC09:13
*** craigo has joined #symbiflow09:14
*** craigo has quit IRC09:23
*** craigo has joined #symbiflow09:24
*** Bertl_zZ is now known as Bertl11:14
sf-slack3<acomodi> I have successfully routed and created a bitstream using the BUFG and BUFHCE primitives. The only problem now is that it does not run on HW13:28
sf-slack3<acomodi> The test I have been doing is `counter_basys3`. What happens is that some random leds are switched on (and they are not supposed to be) and there is no blinking happening.13:29
sf-slack3<acomodi> My thought is that there is an issue when generating the frames as maybe the roi_harness is overlapped with the generated FASM, hence the strange behavior of the leds.13:30
*** Vonter has quit IRC13:43
*** Vonter has joined #symbiflow13:49
sf-slack3<mkurc> @hackerfoo: I'm currently working on making prjxray_tile_import.py import all sites and generate correct fasm prefixes for them. I'll try to finish by the end of the day.13:59
*** adjtm has quit IRC14:56
*** adjtm has joined #symbiflow15:23
sf-slack3<mkurc> @hackerfoo: I've pushed my changes. The import works except for the inner_pins which is broken now (interconnect generation)15:47
hackerfoomkurc: Why did you decide to un-split (Y0/Y1) IOPAD? My understanding (from talking to litghost) is that this will make it difficult to select between the two pads in an IOPAD.17:28
*** Bertl is now known as Bertl_zZ17:28
*** citypw has quit IRC17:36
*** freemint has joined #symbiflow17:56
*** filt3r has quit IRC18:04
litghostacomodi: I would definitely run bit2verilog on your results and see what is going on18:07
litghosthackerfoo: Did you resolve you packing issue?18:07
hackerfoolitghost: No18:07
hackerfoomkurc: Adding back "SELECT_Y 1" fixes the build.18:09
litghosthackerfoo: Which packing step is failing?  wire.eblif?18:09
hackerfooYes.18:10
litghosthackerfoo: So wire.eblif assumes that "assign out = in" will work.  We can simulate that same way we support a passthrough ILOGIC, with a mode that defaults to a straight wire18:11
litghosthackerfoo: Does that make sense?18:11
*** filt3r has joined #symbiflow18:12
hackerfooI changed wire.eblif, though (commented out right now): https://github.com/SymbiFlow/symbiflow-arch-defs/commit/b3e82269317da9fe8c2c9f547e3d074ee7cdfddf18:12
tpbTitle: WIP techmap IBUF/OBUF primitives · SymbiFlow/symbiflow-arch-defs@b3e8226 · GitHub (at github.com)18:12
litghostso the out pad of the IOPAD is IOI3 routing interface <OLOGIC mode passthrough/ODDR/OSERDES> <OBUF mode passthrough/OBUFT>, etc18:13
litghosthackerfoo: Changing wire.eblif will break non-7-series (e.g. testarch and ice40), so that is not a great long term solution18:13
hackerfooSo I should add a mode without IBUF/OBUF?18:14
hackerfooThat should work.18:14
litghosthackerfoo: It might not hurt, and but it will need to emit FASM as if there was an IBUF/OBUF18:15
hackerfooI have the interconnect working between {I,O}LOGIC and IOB33M now.18:15
hackerfooYeah18:15
litghosthackerfoo: E.g. the prjxray_tile_import is making the connections?18:15
hackerfooYes18:16
hackerfooJust using a predefined map for now.18:16
hackerfoohttps://github.com/SymbiFlow/symbiflow-arch-defs/commit/ad4560c04b5ce1f96c632f2575af5d726b7882df18:17
tpbTitle: add IOPAD site->site interconnect to prjxray_tile_import.py · SymbiFlow/symbiflow-arch-defs@ad4560c · GitHub (at github.com)18:17
hackerfooI plan to add a script to generate the map at some later point.18:18
hackerfooFrom tileconn.json + channels.db18:18
litghosthackerfoo: There shouldn't be a need to use tileconn.json at all18:20
litghosthackerfoo: The nodes are present in channels.db18:20
hackerfooIt is, but it's elaborated *too* much, there are nodes for every IOI<->IOB tile edge. I only need one.18:21
hackerfooI could still write a query, even if it's slow. Or maybe pick an arbitrary pair of tiles.18:22
hackerfooIt might be worth splitting nodes by direction, and precomputing for each tile pair, at least when they only cross the tile in one direction.18:24
hackerfooNot now, though.18:24
hackerfoo*tile type pair18:24
litghost> there are nodes for every IOI<->IOB tile edge. I only need one.18:24
litghostI'm not sure your conclusion is valid.  For any given site pin on an IOB or IOI, how do you know if it connects to another site pin?18:24
hackerfooDon't IOBs and IOIs always connect the same way, at least on the same side of the chip?18:26
litghosthackerfoo: The whole exercise is to not assume a structure, but infer the right thing from the underlying data18:26
litghosthackerfoo: Consider that there may be variation across other chips18:27
hackerfooThe same structure is in the DB, in tileconn.json18:27
litghosthackerfoo: There is also some form of variation within the chip, with the TTERMBYTE, etc18:27
hackerfooYeah, but that's a different tile-type pair.18:27
litghosthackerfoo: tileconn.json only provides adjacent tile information, if there is every an intermediate tile, then tileconn is unsuitable for the query you want18:28
litghostever*18:28
hackerfooSure, but you can then join the nodes if there's a passthough wire. It would just speed things up, maybe.18:29
hackerfooAt least, nodes-per-tile-type pair would have been exactly what I need for this task.18:30
hackerfooI can just pick a tile pair, though. That should work, since they will all be the same.,18:31
*** freemint has quit IRC18:35
*** freemint has joined #symbiflow18:35
*** adjtm has quit IRC18:51
*** kraiskil has joined #symbiflow18:56
*** mkru has quit IRC19:21
sf-slack3<mkurc> @hackerfoo: I did the un-split because in the end we will need to use both IOBs and they have to be in the same tile. Unless we want to merge IOB+IOI and then split the resulting tile horizontally...19:33
sf-slack3<mkurc> setting SELECT_Y fixes the build because when on there is only one site of each kind19:34
*** freemint has quit IRC19:36
*** kraiskil has quit IRC19:43
*** emily has quit IRC20:02
*** emily has joined #symbiflow20:03
*** adjtm has joined #symbiflow20:37
*** craigo has quit IRC20:38
*** hzeller[m] has quit IRC20:42
*** nrossi has quit IRC20:42
*** mrhat2010[m] has quit IRC20:42
*** zeigren has quit IRC20:42
*** xobs has quit IRC20:42
*** alexhw[m] has quit IRC20:42
*** freemint has joined #symbiflow20:42
litghostmkurc: I don't believe for differential IO we want 1 cluster20:43
litghostmkurc: I believe we want two clusters that share a relationship, either via place macro (e.g. direct inter-tile connection) or via placement io constraints20:43
*** xobs has joined #symbiflow20:52
*** Bertl_zZ is now known as Bertl21:15
hackerfoomkurc: My intention was to use SELECT_Y to make IOPAD_Y0 and IOPAD_Y1, and then we can make those tiles equivalent.21:18
hackerfooBut for now to just work on one of them.21:19
*** nrossi has joined #symbiflow21:28
*** alexhw[m] has joined #symbiflow21:28
*** zeigren has joined #symbiflow21:28
*** hzeller[m] has joined #symbiflow21:28
*** mrhat2010[m] has joined #symbiflow21:28
hackerfoolitghost: Do you know where I should look to get Yosys to infer IBUF/OBUFs?23:17
litghosthackerfoo: http://www.clifford.at/yosys/files/yosys_manual.pdf write_blif "-buf <cell-type> <in-port> <out-port>" is the way I know off the top of my head23:18
litghosthackerfoo: It is unclear how to tell yosys "use this if not that"23:19
litghosthackerfoo: I think the way to do it may be "emit IBUF/OBUF always, and then merge doubled buffers"23:19
litghosthackerfoo: But that is a good question for #yosys23:19
litghosthackerfoo: I'm no expert on this particular aspect23:19
hackerfoolitghost: Thanks23:19
hackerfoolitghost: Do you know what this means?23:22
hackerfooNet '$true' is impossible to route within proposed BLK-TL-IOPAD cluster23:22
hackerfooOr rather, how to fix it.23:22
hackerfooOh, I have to route those through the IOLOGIC sites, I think.23:23
hackerfooI'm just removing them for now.23:25
litghostThat error was likely complaining that there was no route to the cluster sink to the top level cluster pin23:26
litghostBut without more details, hard to say23:26
hackerfooI think I fixed that, now I'm at this error: Message: IO block inbuf location was not specified in the pad file.23:29
litghosthackerfoo: Not totally certain, but I believe this is something I was warning you about earlier23:30
* hackerfoo sent a long message: < http://sandbox.hackerfoo.com:8008/_matrix/media/v1/download/sandbox.hackerfoo.com/xMlBDXOTwyQkJClRQkEYwgzt >23:30
litghosthackerfoo: The placement IO file specifies cluster names, not net names23:30
litghosthackerfoo: If there is now more than one net per IO cluster, than the net name may not be equal to the net23:30
litghosthackerfoo: Check the ".net" file and see what the cluster names are now23:31
hackerfooAre clusters <block>'s in the .net file?23:43
litghosthackerfoo: Let me check23:44
hackerfooI tried changing the IBUF name to "in", but got: ERROR: Re-definition of cell `\in'23:46
litghostthat's a new one23:47
litghostya, block name is what you are looking for: https://docs.verilogtorouting.org/en/latest/vpr/file_formats/#packed-netlist-format-net23:48
hackerfooAnd I can't change in -> inbuf in the .pcf, so how do I change the block name?23:48
litghosthackerfoo: I think you need to consume the .net and .pcf and generate the ioplace23:49
litghosthackerfoo: e.g. find .pcf constraint in .net, output ioplace for that toplevel cluster23:49
hackerfooIs that prjxray_create_ioplace.py?23:50
litghosthackerfoo: Yes23:50
litghosthackerfoo: Currently it doesn't consume the .net file, but that was because it didn't need too23:50
litghosthackerfoo: Another alturnative is to modify VPR to do the mapping for us23:51
litghosthackerfoo: VPR really oaught to be able to constrain toplevel ports at placement locations, rather than by cluster name23:51
litghosthackerfoo: But I think it will be faster to parse the .net potentially than updating VPR23:52
hackerfooYeah. I'm just trying to hack it together for now.23:52

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