Saturday, 2021-10-09

*** tpb <[email protected]> has joined #symbiflow00:00
*** benreynwar <[email protected]> has quit IRC (Ping timeout: 260 seconds)02:36
*** benreynwar <[email protected]> has joined #symbiflow02:39
sf-slack<gergo> I'd like to target the Nexys A7-50T dev board with Symbiflow. I've downloaded and set up the example repo, added a new `.xdc` file to `xc7/counter_test` , and edited the `Makefile` to set  `PARTNAME :=xc7a50tcsg324-1` . At first, this failed because Symbiflow doesn't include the part definition for this A7 model; so I downloaded the files from https://github.com/SymbiFlow/prjxray-db/tree/master/artix7/xc7a50tcsg324-1 and07:19
sf-slacknow I get all the way to the `symbiflow_place` step. However, that then complains about a missing `arch/xc7a50t_test/xc7a50tcsg324-1/pinmap.csv` file, and I haven't been able to find a repository of `pinmap.csv` files the same way I've found the `part.json` etc. files.  So my question is, where can I download a `pinmap.csv` file for an arbitrary Xilinx Artix7 model, or alternatively, how do I generate one?07:19
sf-slack<gergo> This is the board in question: https://www.xilinx.com/products/boards-and-kits/1-zywan9.html07:36
sf-slack<gergo> I can see that the Nexys 4 DDR is one of the supported boards, and this one is supposed to be the same but with a slightly different Artix 7 part. Can I take the `pinmap.csv` that the Nexys 4 DDR uses and tweak that?07:46
*** Veera <[email protected]> has joined #symbiflow07:57
*** Veera <[email protected]> has quit IRC (Remote host closed the connection)08:19
*** Veera <[email protected]> has joined #symbiflow08:19
*** duck2 <[email protected]> has quit IRC (Quit: Ping timeout (120 seconds))08:26
*** duck2 <[email protected]> has joined #symbiflow08:26
sf-slack<kgugala> @gergo you may try using `xc7a35tcsg324-1` part08:36
sf-slack<kgugala> xc50 and xc35 have the same fabric08:36
sf-slack<gergo> Oh really? So would it work if I just took the `xc7a35tcsg324-1` 's `pinmap.csv`  and copy it into the new name? I think that would be cleaner than pretending that my FPGA target is something it isn't.08:58
sf-slack<kgugala> I haven't seen any case of damaging FPGA with an incorrect bit file :)09:25
sf-slack<kgugala> but09:25
sf-slack<kgugala> if you e.g. drive low some pin that is connected to VCC in the board then you can damage the chip09:25
sf-slack<kgugala> but you'd have to drive the pin in your design09:25
sf-slack<kgugala> the toolchain will not make such things09:26
sf-slack<kgugala> (by itself)09:26
sf-slack<gergo> Right, sure, yeah I meant the case where the bitfile itself breaks something. I understand damaging a single pin's buffers with stupid wiring. Ask how I know :)09:30
lambdacan't the same thing happen internally, i.e. pips connecting two outputs that try to drive the net to different levels?09:31
sf-slack<kgugala> ;)09:31
sf-slack<gergo> Alright, by using `pinmap.csv`  from `xc7a35tcsg324` I managed to get counter_test working on my Nexys A7-50T!09:31
sf-slack<kgugala> awesome!09:31
sf-slack<gergo> for the next step I'll need to figure out how to do this fully automated, because there are some manual steps still09:32
sf-slack<gergo> also very annoying that if I override DATABASE_DIR for the `write_bitstream` step, then I need to copy all 400+ files from `.conda/envs/xc7/share/symbiflow/prjxray-db/artix7/` to my directory where I added the new board09:33
sf-slack<gergo> but I'm hoping this will turn out to be just a problem with the high-level Symbiflow shell scripts, and once I start using the underlying tools directly it will be solvable09:34
sf-slack<gergo> my aim is to ship all board-specific files (both `.v` / `.xdc` stuff and FPGA part definitions) and nothing more, with my project09:34
sf-slack<kgugala> yes, this is in the scripts09:34
sf-slack<gergo> so someone can use an unmodified Symbiflow installation and still build for my board which is not fully included in the Symbiflow distribution09:35
sf-slack<gergo> thanks this has been huge help09:35
sf-slack<gergo> On an unrelated note, is there a story for clock managers with Symbiflow?09:35
sf-slack<kgugala> BTW script sources are here https://github.com/SymbiFlow/symbiflow-arch-defs/tree/master/xc/xc7/toolchain_wrappers if you'd like to improve them09:35
sf-slack<kgugala> we do support MMCMM and PLL so you can them in your designs09:36
sf-slack<gergo> Is there an example project? My current, Vivado-based project uses this ugly huge ClockWiz `.xci` file.09:37
sf-slack<kgugala> oh09:37
sf-slack<gergo> I'm not married to the `.xci` file (in fact, the opposite)... Ideally I'd just say "I want 25.175 MHz from 100 MHz" and the rest should be done for me :)09:38
sf-slack<kgugala> yep, you should directly instantiate a PLL with proper config09:39
sf-slack<kgugala> this way you have the whole design in the code09:39
sf-slack<gergo> that is exactly what I'd like. Do you have a documentation pointer?09:39
sf-slack<kgugala> give me a sec09:40
sf-slack<kgugala> here https://www.xilinx.com/support/documentation/sw_manuals/xilinx2012_2/ug953-vivado-7series-libraries.pdf you can find info how to instantiate different blocks (PLL is on page 317, MMCM on 264)09:42
sf-slack<kgugala> this one https://www.xilinx.com/support/documentation/user_guides/ug472_7Series_Clocking.pdf discusses clocking network in 7-series09:42
sf-slack<kgugala> here https://github.com/SymbiFlow/symbiflow-arch-defs/blob/master/xc/xc7/tests/mmcm/mmcme2_test.v is our MMCM test (it does instantiate MMCM primitive :))09:43
sf-slack<kgugala> https://github.com/SymbiFlow/symbiflow-arch-defs/tree/master/xc/xc7/tests/mmcm (readme here gives a bit more info )09:44
*** Veera <[email protected]> has quit IRC (Remote host closed the connection)09:44
sf-slack<kgugala> similar thing for PLL https://github.com/SymbiFlow/symbiflow-arch-defs/tree/master/xc/xc7/tests/pll09:44
*** Veera <[email protected]> has joined #symbiflow09:44
*** TMM_ <[email protected]> has quit IRC (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)10:00
*** TMM_ <[email protected]> has joined #symbiflow10:00
*** Veera <[email protected]> has quit IRC (Remote host closed the connection)11:07
*** Veera <[email protected]> has joined #symbiflow11:08
sf-slack<gergo> So this https://github.com/SymbiFlow/symbiflow-arch-defs/blob/master/xc/xc7/tests/pll/plle2_test.v defines the clocks?12:11
sf-slack<kgugala> PLLE_ADV generates the clocks, you have to provide it with some input clocks and parameters how the clock should be generated. In the test PLL is fed with 2 clocks (100MHz and 50MHz) and later you have global MULT and bunch of DIVIDE params (for every clock out)12:41
*** Veera <[email protected]> has quit IRC (Remote host closed the connection)12:48
*** Veera <[email protected]> has joined #symbiflow12:48
sf-slack<gergo> right, so it's pretty much the same as what I used to input into Vivado's "clock wizard", but in a .v file.12:55
sf-slack<kgugala> Yep12:56
sf-slack<gergo> So this turns out to be trickier than what I hoped. The actual command run by SymbiFlow is `xcfasm --db-root /somewhere/prjxray-db/artix7 --part xc7a50tcsg324-1 --part_file /somewhere-else/counter_test/artix7/xc7a50tcsg324-1/part.yaml --sparse --emit_pudc_b_pullup --fn_in top.fasm --bit_out top.bit` . So there are two paths: the `--db-root` and the `--part-file`.  The problem is that the `--db-root` seems to be used both12:59
sf-slackto look up `package_pins.csv`  for the given part, but also for all these other 400+ files that I'm not sure what they are (descriptions of FPGA sub-parts?) that I don't want to change or distribute.12:59
sf-slack<gergo> Might be worth opening a Github issue_13:00
sf-slack<kgugala> sure, it'll be easier to discuss there13:40
lkclfolks hi we have encountered a segfault in vpr when using the version provided by the conda install13:45
lkclhttp://lists.libre-soc.org/pipermail/libre-soc-dev/2021-October/003847.html13:45
tpbTitle: [Libre-soc-dev] LibreSOC Implementation on arty7 fpga dev boards. (at lists.libre-soc.org)13:45
lkclthis is for the upcoming OpenPOWER course initiative so will have 500+ students using it some time within the next 2-3 weeks13:46
lkcl(no pressure, then :) )13:46
lkcli advised varun to join #symbiflow in order to get some feedback on how to triage the segfault.13:47
lkclwe need to use a specific checkout version of yosys so he has adapted the standard symbiflow conda install to include that13:48
lkclother than that one detail it is exactly the same conda install as published in the docs13:49
lkclSegmentation fault      (core dumped) vpr ${ARCH_DEF} ${EBLIF} --device13:50
lkcl${DEVICE_NAME} ${VPR_OPTIONS} --read_rr_graph ${RR_GRAPH}13:50
sf-slack<gergo> https://github.com/SymbiFlow/symbiflow-xc-fasm/issues/16 for anyone interested13:51
lkclVarun is a PhD student and a user of symbiflow.13:52
lkclwhat instructions can he be given that would allow him to provide you with the required information to triage and reproduce this error?13:52
lkcleveryone involved in the development of the OpenPOWER Educational Course to be run across multiple Universities in India in 10 days time are volunteers13:57
lkclunfortunately therefore we can't provide a budget or a contract to pay anyone to fix this, for which i must apologise.13:57
lkclwe have to rely instead on your goodwill and the common interest of ensuring that open source tools are reliable and functional for a wide range of projects13:59
lkclthis particular one being high-profile (500+ students) Academic and Educational purposes.14:00
*** TMM_ <[email protected]> has quit IRC (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)14:30
*** TMM_ <[email protected]> has joined #symbiflow14:30
*** Veera <[email protected]> has quit IRC (Ping timeout: 245 seconds)20:41

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