Wednesday, 2020-01-22

*** tpb has joined #symbiflow00:00
*** tiwEllien has quit IRC00:11
*** emily has quit IRC03:25
*** citypw has joined #symbiflow03:31
*** emily has joined #symbiflow03:34
*** ZirconiumX has quit IRC04:30
*** Vonter has quit IRC04:31
*** ZirconiumX has joined #symbiflow04:32
*** Vonter has joined #symbiflow04:34
*** Bertl_oO is now known as Bertl_zZ04:38
*** proteus-guy has joined #symbiflow04:58
*** tpb has joined #symbiflow05:11
*** sf-slack1 has joined #symbiflow05:38
*** sf-slack has quit IRC05:43
*** OmniMancer has joined #symbiflow07:24
bunnie[m]<Xiretza "mithro: I was asking less about "> I'm not officially affiliated with prjxray but if Xilinx came after me for the work I did documenting the bitstream encryption format and fuses, I'd view it as an opportunity to have an adult conversation with their lawyers about why they are wrong, and if they still disagree I would treat it as a solid opportunity to set a favorable legal precedent for future work like this;07:28
bunnie[m]and if that doesn't pan out, at least it will make a great awareness campaign for the need for future legal reforms to protect our rights and freedoms to learn and innovate.07:28
*** futarisIRCcloud has quit IRC07:41
*** az0re has joined #symbiflow08:08
*** tiwEllien has joined #symbiflow08:48
*** az0re has quit IRC09:26
*** rvalles_ has quit IRC09:34
-_whitenotifier-3- [sv-tests] dalance opened issue #577: Undefined macro usage - https://git.io/JvLz109:35
*** rvalles_ has joined #symbiflow09:48
*** futarisIRCcloud has joined #symbiflow11:16
*** Bertl_zZ is now known as Bertl12:06
*** tiwEllien has quit IRC12:13
Xiretzadaveshah: I think xilinx/pack_clocking_xc7.cc:39,40 should be {MMCME2,PLLE2}_BASE instead of _BASIC, no? with that changed it seems to work correctly, anyway :)12:25
Xiretzaalso, I finally got to the point where my SoC gets through ghdl and yosys, but I end up with 10 global clocks - 6 of them are real, the others have cryptic clkbufmap.cc names, gotta try to find those.12:28
ZirconiumXYosys' naming is really not the best12:29
daveshahNote that (with router2 anyway) both global buffer inputs and outputs will be shown as global clocks during routing - as both should be using dedicated resources12:49
daveshahI'll have a look at the PLL naming issue later12:50
*** Bertl is now known as Bertl_oO12:50
daveshah6 clock domains still seems like quite a few for the current state of nextpnr-xilinx, but that would be at the point of a useful benchmark for future development anyway12:50
Xiretzadaveshah: the Arty input clock, a core/bus clock, two graphics clocks (pixel+TMDS), two UART clocks (18.432 MHz from PLL which then gets divided down to RCLK according to UART registers)12:53
daveshahThat doesn't seem too bad - but I'd clock all the UART stuff off a single clock with enable rather than two UART clocks12:55
daveshahI have a LiteX design with input, DDR3 memory, system, and ethernet clocks that works alright so it's not outside the realms of what may work12:55
Xiretzadaveshah: yeah, I need to rewrite the UART anyway, it was supposed to be a reproduction of the 16550, but just became a mess12:56
daveshahIt may well be when you sort out the UART it will route fine12:56
daveshahXiretza: btw, what is the arc that is failing to route?13:01
Xiretzadaveshah: 'Failed to route arc 82 of net 'io.clk_pixel', from SITEWIRE/BUFGCTRL_X0Y10/O to SITEWIRE/SLICE_X6Y92/CLKINV_OUT.'13:04
daveshahInteresting, can you provide a JSON/XDC? I think what happens is that the clock placer chooses global buffer sites that conflict sometimes and it would be good to fix this13:05
Xiretzaone sec13:05
Xiretzadaveshah: https://misc.xiretza.xyz/repro/router2_failed_to_route.tar.gz13:07
daveshahThanks!13:07
*** freemint has joined #symbiflow13:12
daveshahPushed the PLL name fix, looking at the BUFG routing now, I also note that TMDS_33 IO aren't supported yet, but might be possible if they don't require any extra config bits13:15
Xiretzadaveshah: ah, those are actually usually routed through OBUFDS, but I commented those out since they're not supported yet13:20
daveshahI think they should be supported13:21
daveshahThe problem is specifically the TMDS_33 IO tyoe13:21
Xiretzaoh okay, I think I remember nextpnr saying it doesn't have any OBUFDS sites13:21
daveshahI might be able to patch that though13:22
Xiretzadaveshah: FYI, there's some more mentions of _BASIC in pack_clocking_xcup.cc and README.md.13:27
daveshahThanks - btw I think the clocking issue is SRL related. You might be able to get further with -nosrl (generally SRL support is still experimental)13:28
daveshahXiretza: clock routing issue is now fixed in router2 upstream13:42
*** futarisIRCcloud has quit IRC13:46
Xiretzadaveshah: awesome, thanks! I'll try that in a bit.13:50
*** tiwEllien has joined #symbiflow13:56
Xiretzadaveshah: good news: the whole flow is working now! however, it still thinks some of my timings aren't met - is there a way to specify target frequencies per clock net? `create_clock` in the XDC isn't recognized (yet).14:36
daveshahNo, not currently14:37
daveshahThe timing data is still a bit ropey so I wouldn't read too much into it anyway14:37
Xiretzaalright, I'll just ignore it then14:37
*** tiwEllien has quit IRC15:22
*** tiwEllien has joined #symbiflow15:25
*** OmniMancer has quit IRC15:28
mithroXiretza: FYI - The vpr flow supports timing + sdc but that is only Series 716:28
daveshahThis is series 7 (Artix-7)16:30
daveshahand yes, the VPR flow is probably the better choice if you care about timing atm16:30
*** tiwEllien has quit IRC16:33
Xiretzamithro: VPR = Verilog to Routing? I guess that would work, I can use yosys to transform VHDL to verilog16:35
mithroXiretza: are you working on microwatt or some other VHDL?16:35
Xiretzamithro: nope, my own, school project16:35
mithroXiretza: be warned that VPR is as heavy as vivado rather than nice and light like nextpnr at the moment16:36
daveshahYou still use Yosys for synthesis16:37
Xiretzamithro: alright - maybe I'll have a look at it in the future, but I don't really need accurate timing, mostly focussed on getting stuff to work at the moment.16:39
mithrotmichalak: In those diagrams you shared around placement - is there a way to "color" the resource usage in a way?16:44
*** freemint has quit IRC16:45
*** freemint has joined #symbiflow16:46
daveshahXiretza: in any case, nextpnr-xilinx now has basic xdc create_clock support16:57
Xiretzadaveshah: wow, thanks!16:57
daveshahbtw, it's the post-route timing numbers that matter - the pre-route timing numbers often under-estimate Fmax by a factor of 2 or so, this is a known issue16:58
daveshahpropagation of constraints across BUFGs and PLLs isn't implemented either yet, so you'll probably want to be constraining with get_nets rather than get_ports16:58
Xiretzayeah, I've noticed that pre-route fmax are way lower - just makes post-routing feel so much better ;)17:00
sf-slack1<tmichalak> mithro: do you mean coloring it in a way similar to what you did in the google doc I shared today?17:05
mithrotmichalak: Yeah, wondering if there is a way to color the litedram / vexriscv / etc parts and see if my random guesses are correct17:14
mithrotmichalak: I'm only like 30% confident17:14
sf-slack1<tmichalak> mithro: I will look into that17:21
*** tiwEllien has joined #symbiflow17:22
*** citypw has quit IRC17:48
hackerfoolitghost: I tried `--router_high_fanout_threshold 64`, and routing picosoc on the full 50T wasn't any slower. Should we enable this?18:39
litghostAre there even nets with a fanout of 64?18:42
hackerfooYes. The highest fanout is 993, according to route_profiling output.18:43
ZirconiumX...Are you sure that's not just, say, the global clock?18:44
daveshahThere's also probably a reset18:44
hackerfooMaybe, but I also have fanouts of  64, 65, 68, 77, 82, 83, 85-7, 153, 160, 397 & 54318:45
litghosthackerfoo: If the runtime is the same or less, and the critical path is the same or better, sure18:45
hackerfooOkay. I'll make a PR to see how it performs on CI.18:46
litghosthackerfoo: Yep18:47
*** tiwEllien has quit IRC19:47
*** tiwEllien has joined #symbiflow19:51
*** tiwEllien has quit IRC20:07
*** tiwEllien has joined #symbiflow20:50
*** proteus-guy has quit IRC21:20
hackerfooSeems like VPR fails to route picosoc on ice40 without the flag. I'm rerunning the test locally to see if I can figure out why, but it might have to be set for that architecture.21:49
litghosthackerfoo: I'm fine with setting that on a per arch basis21:51
hackerfoo`make -j picosoc_bin` (ice40) fails locally. VPR spent ~120s each on 731 & 3248 fan out nets.22:57
litghostWith `--router_high_fanout_threshold`?23:09
hackerfooWith the flag removed. The default is 64.23:13
litghostYa23:13
*** tiwEllien has quit IRC23:14
*** freeemint has joined #symbiflow23:14
*** freemint has quit IRC23:15
*** freeemint has quit IRC23:15
*** freeemint has joined #symbiflow23:16
*** freeemint has quit IRC23:17
*** freeemint has joined #symbiflow23:17
*** freemint has joined #symbiflow23:18
hackerfooOnly a few seconds with it set back to `-1`, and it routes. So it will need to remain set for ice40.23:18
*** freemint has quit IRC23:23
*** freemint has joined #symbiflow23:24

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