Thursday, 2019-09-26

*** tpb has joined #symbiflow00:00
*** freeemint has quit IRC00:21
*** freeemint has joined #symbiflow00:21
*** Vonter_ has joined #symbiflow00:35
*** Vonter has quit IRC00:36
*** freeemint has quit IRC02:04
hackerfooI rebased add_io_for_x1y0, and fixed some problems in prjxray_create_edges.py, and now VPR seems to say it can't route anything to anything.02:42
hackerfooOr at least there are probably thousands of lines like:02:43
hackerfooCannot route from SYN-VCC.VCC[0] (RR node: 0 type: SOURCE location: (79,130) class: 0) to BLK-TL-SLICEL.B2[0] (RR node: 5818 type: SINK location: (80,140) class: 8) -- no possible path02:43
*** citypw has joined #symbiflow02:49
*** proteusdude has quit IRC03:12
*** proteusguy has joined #symbiflow03:48
*** adjtm has quit IRC07:14
*** OmniMancer has joined #symbiflow07:23
*** adjtm has joined #symbiflow07:53
*** bjorkintosh has quit IRC08:03
*** Bertl is now known as Bertl_zZ08:54
*** freemint has joined #symbiflow11:42
*** adjtm has quit IRC11:44
*** freemint has quit IRC12:16
*** bjorkintosh has joined #symbiflow12:23
*** adjtm has joined #symbiflow12:35
*** freemint has joined #symbiflow13:25
*** freemint has joined #symbiflow13:26
sf-slack<mkurc> I think I have found an issue with chained PIPs that cannot be activated separately in both prjxray and symbiflow. I've created a document describing the issue and my proposed solution. I'd like to have some feedback about it.13:47
sf-slack<mkurc> https://docs.google.com/document/d/1q_4uxiSmHn4t9UmOfuWBLyesxZZOdEa2vyfbqPoKtf413:47
tpbTitle: Google Docs - create and edit documents online, for free. (at docs.google.com)13:47
*** freemint has quit IRC14:38
*** Bertl_zZ is now known as Bertl14:40
litghostmkurc: In general those kind of chained pips don't need isolation, as we can just treat one of the pips as a ppips, and leave the feature with the other pip15:10
litghostmkurc: Also, if a pip isn't making a choice, it general has no bits at all15:11
sf-slack<mkurc> @litghost: So eg. a fuzzer would need to know which pips are "grouped" and try to fuzz those groups together? Then the same information would need to be available to fasm2bels?15:15
litghostno, fasm2bels walks through no-decision edges like this15:16
litghostIf there is only one edge leaving an output site pin (or edge coming to a input site pin), it always takes the edge15:17
litghostIt is only in places where a decision is required that fasm2bels consults the configuration of the pips15:17
litghostIn the particular example above, the feature might be wrong, and might need to be lumped with an IN_USE feature15:18
sf-slack<mkurc> But I've observed the following: there are PLL inputs (all but clocks) which are connected to the tile outputs through non-pseudo pips. And there is no other way for those signals. And I had to manually activate those pips in fasm2bels to make it see connections.15:20
sf-slack<mkurc> Since we cannot isolate activation of those pips in the fuzzer, probably bits activating them are inside the PLL's IN_USE feature.15:20
sf-slack<mkurc> So even that there is no other way I had to make them explicitly enabled.15:21
sf-slack<mkurc> But that's another story. In this case we can treat them as pseudo pips.15:21
litghostIn that case, if we know a sink (input site pin) is connected, and there is only one path from the interconnect switch box to the PLL, we should be able to make the route15:23
litghostmkurc: Ah, you might need to update https://github.com/SymbiFlow/prjxray/tree/master/fuzzers/071-ppips to emit the ppip files for the new tiles15:45
tpbTitle: prjxray/fuzzers/071-ppips at master · SymbiFlow/prjxray · GitHub (at github.com)15:45
litghostmkurc: Ya, we need to emit the ppip files for the new tiles for https://github.com/SymbiFlow/symbiflow-arch-defs/blob/master/xc7/fasm2bels/make_routes.py#L21 to reach the fabric15:47
tpbTitle: symbiflow-arch-defs/make_routes.py at master · SymbiFlow/symbiflow-arch-defs · GitHub (at github.com)15:47
*** freemint has joined #symbiflow15:49
*** freemint has quit IRC15:58
*** freemint has joined #symbiflow15:59
*** freemint has quit IRC16:14
litghosthackerfoo: Likely failure modes are either that the constant network didn't get connected or something broke in the lookahead (e.g. NaN propigation).  For the first, https://github.com/SymbiFlow/symbiflow-arch-defs/tree/master/utils/rr_graph_walk can be used to verify that the graph actually has the connectivity.  If that passes, route_diag with sink debugging turned on can be used to identify where in the route the16:14
litghostrouter got lost16:14
tpbTitle: symbiflow-arch-defs/utils/rr_graph_walk at master · SymbiFlow/symbiflow-arch-defs · GitHub (at github.com)16:14
*** freemint has joined #symbiflow16:14
sf-slack<mkurc> @litghost Thanks, I'll try tomorrow with updated 071-ppips16:15
hackerfoolitghost: Thanks16:15
litghosthackerfoo: If you want a quick spot check, check the lookahead log (vpr_stdout.log in build/xc7/archs/artix7/devices/) and check if each segment found at least one instance of the segment16:20
litghosthackerfoo: A warning is generated if it doesn't16:21
litghosthackerfoo: Warning will be "Segment %s(%d) found no start_node_in"16:22
*** citypw has quit IRC16:22
*** freemint has quit IRC16:22
*** adjtm has quit IRC16:34
hackerfoolitghost: There's 20 of those warnings. They look familiar.16:38
* hackerfoo sent a long message: < http://sandbox.hackerfoo.com:8008/_matrix/media/v1/download/sandbox.hackerfoo.com/fEqtJbKgwPKyhbOUJwVqfNnz >16:38
hackerfooProbably because of the blacklist.16:39
litghosthackerfoo: How would the blacklist cause segments to disappear?16:39
litghosthackerfoo: Anyways, those warnings from the lookahead generation are almost certainly the problem, now the question is why16:40
litghosthackerfoo: Did you shift the grid at all?16:40
hackerfooNo16:40
litghosthackerfoo: Ah, I know what the problem is.  You are using the lower right rather than upper left CMT16:40
litghosthackerfoo: And right now the lookahead search locations are fixed, because I just hacked it up16:41
litghosthackerfoo: For now, update the search locations with the x/y transpose16:41
litghosthackerfoo: We really should replace the segment search algorithm with something smarter16:41
litghosthackerfoo: For background, the lookahead needs to sample the segments to produce the segment delays.  Currently the search grid locations are fixed (which is wrong in the long term).  The correct solution is to sample the grid in a generic fashion (e.g. pick a segment from the upper left, upper right, etc).16:43
hackerfooWhich file/script do I need to modify?16:44
litghosthackerfoo: For now, update https://github.com/SymbiFlow/vtr-verilog-to-routing/blob/master%2Bwip/vpr/src/route/connection_box_lookahead_map.cpp#L332 to the transpose of the upper left CMT to the lower right CMT16:44
tpbTitle: vtr-verilog-to-routing/connection_box_lookahead_map.cpp at master+wip · SymbiFlow/vtr-verilog-to-routing · GitHub (at github.com)16:44
hackerfooOkay, thanks.16:44
litghosthackerfoo: I'm writing up a bug explaining the current state, and what the long term fix is16:45
litghosthackerfoo: https://github.com/SymbiFlow/vtr-verilog-to-routing/issues/28116:49
tpbTitle: Connection box lookahead segment search is fixed · Issue #281 · SymbiFlow/vtr-verilog-to-routing · GitHub (at github.com)16:49
hackerfooHow would swapping x & y help? Wouldn't that give invalid coordinates? Maybe offset y and flip x around the center?16:50
litghosthackerfoo: Not swapping, shifting16:51
hackerfooOkay16:51
litghosthackerfoo: Basically you moved the routing region from x1 -> x2 and y1 -> y2, in theory a straight forward translation of the sampling coordinates should work16:51
litghosthackerfoo: Ah, I used the word transpose, but translate is probably a better description16:52
hackerfooIsn't X mirrored?16:52
litghosthackerfoo: I'd have to check.  However most of the segments that failed to be sampled are very common (e.g. general interconnect), so the precise locations are not sensitive16:53
litghosthackerfoo: The one's that are most important to mirror are the coordinates that HCLK network start and the BRAM address network (BRAM_CASCADE)16:54
litghosthackerfoo: If you only care about getting back to a working buttons test, the HCLK and BRAM sampling is unimportant16:54
litghosthackerfoo: I have a couple fixs to prjxray_create_edges.py to finish debugging, and then I can switch gears and revisit generalizing the lookahead sampling.  If you have some ideas for generalizing the lookahead sampling, you could also take the bug.16:57
hackerfooOkay. I'm looking at it16:59
*** adjtm has joined #symbiflow17:03
*** OmniMancer has quit IRC17:11
sf-slack<mkurc> CMT tiles L and R are different, at least those with PLLs17:22
litghostmkurc: Sorry, what's the context?17:25
sf-slack<mkurc> Sorry, I meant the attempt to mirror X coordinate to switch between clock regions17:26
litghostmkurc: Ah sure.  The current segment definitions do not include anything special for the PLL, so it doesn't require sampling.  That will likely need to change, but for now is not an issue17:29
sf-slack<mkurc> Ok17:29
litghostmkurc: I think fixing https://github.com/SymbiFlow/vtr-verilog-to-routing/issues/281 with a generalized sampling strategy rather than continuing to add fixed locations is probably the path forward.  If we find that the generalize algorithm is problematic, then the sampling coordinates should be moved to a command line argument so we can adjust the sampling locations for different grids17:30
tpbTitle: Map/connection box lookahead segment search is fixed · Issue #281 · SymbiFlow/vtr-verilog-to-routing · GitHub (at github.com)17:30
*** freemint has joined #symbiflow17:31
*** freemint has quit IRC18:17
*** freemint has joined #symbiflow18:53
*** freemint has quit IRC18:57
*** Bertl is now known as Bertl_oO19:12
*** cyndis has quit IRC19:26
*** freemint has joined #symbiflow19:29
*** alexhw has quit IRC19:35
*** alexhw has joined #symbiflow19:36
*** alexhw has quit IRC19:38
*** cyndis has joined #symbiflow19:43
*** freemint has quit IRC19:56
*** freemint has joined #symbiflow19:56
*** jidaigeist has joined #symbiflow20:18
*** freemint has quit IRC20:28
*** freemint has joined #symbiflow20:46
*** freemint has quit IRC21:09
*** freemint has joined #symbiflow21:14
*** freemint has quit IRC21:26
*** freemint has joined #symbiflow21:40
*** jidaigeist has quit IRC21:42
*** freemint has quit IRC21:49
*** alexhw has joined #symbiflow22:04
*** freemint has joined #symbiflow22:18
hackerfooHow do I get a revision for a Conda PACKAGE_SPEC? I'm looking for a working version of VPR to modify, and symbiflow/vtr/master+wip doesn't seem to work.22:20
litghosthackerfoo: Sorry, can you clarify?22:22
litghosthackerfoo: What are you trying to do?22:23
litghosthackerfoo: Conda package -> git revision?22:23
hackerfooI wanted to "fix" the bug we talked about earlier today.22:24
hackerfooBut I get this with master+wip and master+wip~: ERROR: Error 1: /home/dusty/src/symbiflow-arch-defs/build/xc7/archs/artix7/devices/xc7a50t-basys3-roi-virt/arch.timing.xml:418 Failed to find port named 'A' on block 'BLK-TL-SLICEL'22:24
litghosthackerfoo: Ya, I asked acomodi to fix that, but he hasn't finished his PR yet (see https://github.com/SymbiFlow/symbiflow-arch-defs/pull/1017)22:25
tpbTitle: updated symbiflow archs to integrate the newly added tiles tag in VTR by acomodi · Pull Request #1017 · SymbiFlow/symbiflow-arch-defs · GitHub (at github.com)22:25
litghosthackerfoo: Anyways, the git revision is embedded in the conda package spec22:25
hackerfooOkay. I guess I'll work on the pad -> VPR coordinates stuff then.22:26
hackerfooUsing the hex string as a commit doesn't seem to work.22:27
hackerfooOh well. I've lost enough time on this. I'll just work on other stuff.22:28
* litghost hackerfoo: The conda package for the current VPR version was built here: https://travis-ci.com/SymbiFlow/conda-packages/jobs/23742254822:29
hackerfooI also can't seem to convince vtr's build system to produce an executable that uses multiple cores, despite having the dependencies and VPR_NUM_WORKERS.22:30
hackerfoolitghost: Thanks22:30
litghosthackerfoo: Um, you mean "make -j$(nproc)"?22:31
litghosthackerfoo: VPR_NUM_WORKERS affects the execution of VPR itself, not the build system?22:31
hackerfooNo, I mean when running VPR.22:31
hackerfoomake -j`nproc` works fine.22:31
litghosthackerfoo: Ya, some parts of VPR just don't use multiple threads22:32
hackerfooSo much idling. It's frustrating.22:33
hackerfooThe conda version seemed to run faster, but I haven't looked into it further.22:34
litghosthackerfoo: When you build locally, does CMake report finding tbb library (intel's thread building blocks)?22:35
litghosthackerfoo: I believe https://github.com/SymbiFlow/vtr-verilog-to-routing/commit/c478c2b00131b6f6a4a20d34a43f08f2e95d3336 is the commit used for https://travis-ci.com/SymbiFlow/conda-packages/jobs/237422548, unclear what is happening with the "git describe" output22:37
tpbTitle: Travis CI - Test and Deploy with Confidence (at travis-ci.com)22:37
hackerfooI didn't check this time, but I did install that dependency last time I ran into it. Maybe it can't find it again for some reason.22:37
litghosthackerfoo: The string in the conda PACKAGE_SPEC is the hash, but because of mithro's octupus merge strategy, it might not have gotten retrieved from github22:41
litghosthackerfoo: I had to run "git fetch origin c478c2b00" to actually pull the revision down22:41
litghosthackerfoo: Replace "origin" with whatever remote points to https://github.com/SymbiFlow/vtr-verilog-to-routing22:42
tpbTitle: GitHub - SymbiFlow/vtr-verilog-to-routing: SymbiFlow WIP changes for Verilog to Routing -- Open Source CAD Flow for FPGA Research (at github.com)22:42
hackerfooThanks22:45
*** freemint has quit IRC22:47

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