*** tpb has joined #symbiflow | 00:00 | |
*** gromero has joined #symbiflow | 03:09 | |
*** gromero_ has quit IRC | 03:10 | |
*** citypw_ has joined #symbiflow | 03:22 | |
*** gromero has quit IRC | 03:41 | |
*** gromero has joined #symbiflow | 03:48 | |
*** gromero_ has joined #symbiflow | 03:49 | |
*** gromero has quit IRC | 03:50 | |
*** gromero__ has joined #symbiflow | 03:50 | |
*** gromero_ has quit IRC | 03:52 | |
*** Degi_ has joined #symbiflow | 03:53 | |
*** gromero__ has quit IRC | 03:53 | |
*** Degi has quit IRC | 03:54 | |
*** Degi_ is now known as Degi | 03:54 | |
*** gromero__ has joined #symbiflow | 04:01 | |
*** epony has quit IRC | 04:47 | |
*** epony has joined #symbiflow | 04:52 | |
*** tpb has joined #symbiflow | 04:59 | |
*** TMM has quit IRC | 05:00 | |
*** TMM has joined #symbiflow | 05:00 | |
*** _whitelogger has quit IRC | 06:57 | |
*** _whitelogger has joined #symbiflow | 06:59 | |
*** QDX45 has quit IRC | 07:01 | |
*** futarisIRCcloud has quit IRC | 07:14 | |
lambda | is it possible that the examples (xc7/counter_test for arty_35 in my case) require symbiflow's yosys fork? I'm hitting an assert in ABC9 with latest master upstream yosys | 07:50 |
---|---|---|
*** kraiskil has joined #symbiflow | 07:54 | |
*** kraiskil has quit IRC | 08:38 | |
*** kraiskil has joined #symbiflow | 08:43 | |
*** jordigw has quit IRC | 09:00 | |
*** jordigw has joined #symbiflow | 09:00 | |
*** ovf has quit IRC | 09:04 | |
*** ovf has joined #symbiflow | 09:06 | |
*** promach3 has quit IRC | 09:09 | |
*** abeljj[m] has quit IRC | 09:10 | |
*** Niklas[m]1 has quit IRC | 09:10 | |
*** xobs has quit IRC | 09:10 | |
*** unrznbl[m] has quit IRC | 09:10 | |
*** citypw_ has quit IRC | 09:16 | |
*** lopsided98 has quit IRC | 09:16 | |
*** lopsided98 has joined #symbiflow | 09:17 | |
*** citypw_ has joined #symbiflow | 09:21 | |
*** xobs has joined #symbiflow | 09:34 | |
*** Niklas[m]1 has joined #symbiflow | 09:36 | |
*** promach3 has joined #symbiflow | 09:39 | |
*** unrznbl[m] has joined #symbiflow | 09:47 | |
*** Niklas[m]1 has quit IRC | 09:55 | |
*** promach3 has quit IRC | 09:55 | |
*** unrznbl[m] has quit IRC | 09:56 | |
*** xobs has quit IRC | 09:56 | |
*** infinite_recursi has joined #symbiflow | 10:12 | |
*** abeljj[m] has joined #symbiflow | 10:21 | |
*** futarisIRCcloud has joined #symbiflow | 10:42 | |
*** xobs has joined #symbiflow | 10:45 | |
*** promach3 has joined #symbiflow | 10:45 | |
*** unrznbl[m] has joined #symbiflow | 10:45 | |
*** Niklas[m]1 has joined #symbiflow | 10:45 | |
*** ayazar1 has joined #symbiflow | 10:47 | |
*** infinite_recursi has quit IRC | 10:50 | |
nickoe | litghost: How do I run simulation on the counter_test? | 10:57 |
*** lopsided98 has quit IRC | 10:59 | |
*** lopsided98 has joined #symbiflow | 11:00 | |
nickoe | Why are there two implementations of the counter in https://github.com/SymbiFlow/symbiflow-examples/tree/master/xc7/counter_test ? counter.v and counter_zynq.v? | 11:02 |
sf-slack | <kgugala> nickoe: counter_zynq instantiates ps7 primitive and uses Zynq's hard CPU gpios to control the counter logic (enabling counter and changing count direction) | 11:06 |
nickoe | mm, ok | 11:09 |
nickoe | mm, why cna't I follow the links to the submodules here? I think one used to be able to do that in github, https://github.com/SymbiFlow/symbiflow-docs/tree/master/source | 11:36 |
sf-slack | <kgugala> bacause they are defined with relative addresses see https://github.com/SymbiFlow/symbiflow-docs/blob/master/.gitmodules | 11:39 |
sf-slack | <kgugala> apparently github cannot create links from relative gitmodules | 11:40 |
nickoe | oh, but that is also a bit funky do to it like that? | 11:49 |
sf-slack | <kgugala> with relative submodules it's easier to handle this in forks | 11:49 |
sf-slack | <kgugala> this repo is for documentation and it combines info from submodules, so if you work on it you often have to change a few repos at once | 11:50 |
nickoe | mm, I see | 11:51 |
sf-slack | <kgugala> with relative submodules you don't need to change the addresses | 11:51 |
nickoe | Do you happen to know how I can run simulation on the symbiflow-examples? | 11:53 |
sf-slack | <kgugala> this is a standard verilog code | 11:53 |
sf-slack | <kgugala> you can use any verilog simulator to simulate this | 11:54 |
sf-slack | <kgugala> e.g icarus or Verilator | 11:54 |
nickoe | mm, but how do I do that? I am not really familiar with icarus or verilator. I may have expected it to be a make option. | 11:56 |
sf-slack | <kgugala> symbiflow-examples repo is to show how to use the FPGA toolchain to build designs and upload them into the FPGA chips | 11:59 |
nickoe | I am reading https://zipcpu.com/blog/2017/06/21/looking-at-verilator.html | 12:00 |
sf-slack | <kgugala> cocotb is a great simulation environment https://docs.cocotb.org/en/stable/ | 12:01 |
tpb | Title: Welcome to cocotb’s documentation! cocotb 1.4.0 documentation (at docs.cocotb.org) | 12:01 |
sf-slack | <kgugala> you can desing your testbenches in python and simulate Verilog/SystemVerilog/VHDL designs using simulator you like | 12:02 |
sf-slack | <kgugala> it can handle Verilator and icarus (and many others) | 12:02 |
nickoe | mmm, https://dpaste.com/5DHQBE6SZ kgugala Shouldn't this compile fine? | 12:27 |
tpb | Title: dpaste: 5DHQBE6SZ (at dpaste.com) | 12:27 |
nickoe | or do I need to make something to contain it? | 12:28 |
sf-slack | <kgugala> BUFG is an FPGA primitive | 12:36 |
sf-slack | <kgugala> you need simulation model for it | 12:36 |
sf-slack | <kgugala> you can use this one https://github.com/Xilinx/XilinxUnisimLibrary/blob/master/verilog/src/unisims/BUFG.v | 12:38 |
nickoe | mm, ok, I will try that in a moment, but in the meantime I tried to modify it with https://github.com/nickoe/symbiflow-examples/commit/277c5bb80fc1b37e2aaa82f02662f03833f86f48 but that fails to build with | 12:39 |
nickoe | ERROR: set_property IO_LOC_PAIRS: Incorrect number of arguments. | 12:39 |
nickoe | ohh, led vs LED? | 12:40 |
nickoe | ok, that certainly does not complain that early | 12:41 |
nickoe | yay, the counter works on the board | 12:42 |
sf-slack | <kgugala> yaay | 12:42 |
sf-slack | <kgugala> what board do you use> | 12:42 |
sf-slack | <kgugala> ? | 12:42 |
nickoe | basys3 | 12:44 |
sf-slack | <kgugala> cool | 12:46 |
nickoe | kgugala, mm, how should I verilate it? | 12:46 |
nickoe | I just tried to wget BUFG.v and do "verilator -Wall --trace -cc counter.v BUFG.v" but it errors | 12:47 |
nickoe | %Error-TIMESCALEMOD: counter.v:1:8: Timescale missing on this module as other modules have it (IEEE 1800-2017 3.14.2.2) | 12:47 |
nickoe | mm, I guess I need to add that timescale ting? | 12:47 |
nickoe | ohh, no, it complains about bit widths | 12:48 |
nickoe | https://dpaste.com/7D583F5SZ | 12:48 |
tpb | Title: dpaste: 7D583F5SZ (at dpaste.com) | 12:48 |
sf-slack | <kgugala> make left and right side equal width | 12:49 |
nickoe | is genfasm single threaded? | 12:51 |
nickoe | always, or is this just because I essentially only have on source file? | 12:51 |
sf-slack | <kgugala> i think it is single threaded | 12:51 |
nickoe | I see, the reg is larger to have a bigger counter reg, but I guess I just need to assigne the appropiate portion of the reg to the leds | 12:52 |
nickoe | so I think it built it, but I gues I don't have a binary to run the simluation | 12:53 |
* nickoe goes reading that zipcpu post a bit further | 12:54 | |
sf-slack | <kgugala> once you verilate the design you get a C++ model of (a class) you also need some kind of a tesbench - another C++ piece of code where you instatiate the class with the mode, drive it inputs (optionally read oputputs) and push the simulation forward | 12:56 |
sf-slack | <kgugala> you have to build it all together (just like any other C++ program) linking against Verilator's runtime and run | 12:57 |
nickoe | well, right now I have nothing more that what you see in the branch | 12:57 |
nickoe | I assume there is some boiler plate code I need to get | 13:05 |
sf-slack | <kgugala> take a look at Verilator's docs https://www.veripool.org/wiki/verilator/Manual-verilator#EXAMPLE-C-EXECUTION | 13:07 |
tpb | Title: Manual-verilator - Verilator - Veripool (at www.veripool.org) | 13:07 |
nickoe | mmm, I don't seem to get a binary, let me commit | 13:13 |
nickoe | https://github.com/nickoe/symbiflow-examples/commit/48627c6488e0df0af785ad64bd218b4639b56117 | 13:14 |
nickoe | I try to do "verilator -Wall --trace --cc counter.v BUFG.v --exe --build sim_main.cpp" | 13:14 |
nickoe | So I am looking for a Vcounter binary in obj_dir, but none exist and I don't get errors with that command. | 13:15 |
nickoe | or.. I guess I do, it exited becasue of a warning. | 13:15 |
nickoe | sigh, all this new syntax when used to read gcc errors, %Warning-DECLFILENAME: counter.v:3:8: Filename 'counter' does not match MODULE name: 'top' | 13:16 |
nickoe | removing -Wall it do build | 13:18 |
nickoe | a binary that runs forever seemingly. | 13:18 |
sf-slack | <kgugala> this is what your code do - it runs i until finish is called in verilog | 13:19 |
sf-slack | <kgugala> I assume your counter does not do that | 13:19 |
sf-slack | <kgugala> also you may want to dump vcd | 13:20 |
sf-slack | <kgugala> (so you can watch signal traces later) | 13:20 |
sf-slack | <kgugala> e.g. with gdkwave | 13:20 |
nickoe | yeah, that is what I want. Do I need to call dump vcd manually in sim_main.cpp? | 13:21 |
sf-slack | <kgugala> look for "How do I generate waveforms (traces) in C++?" in https://www.veripool.org/wiki/verilator/Manual-verilator | 13:23 |
tpb | Title: Manual-verilator - Verilator - Veripool (at www.veripool.org) | 13:23 |
sf-slack | <kgugala> it explains all the steps you need | 13:23 |
nickoe | mmm, is topp a type? | 13:27 |
nickoe | *typo | 13:27 |
nickoe | I guess it is to be the pointer here? Vcounter* top = new Vcounter; | 13:29 |
*** kraiskil has quit IRC | 13:31 | |
sf-slack | <kgugala> I think Verialtor's examples may be heplful https://github.com/verilator/verilator/tree/master/examples | 13:33 |
sf-slack | <kgugala> they have pretty deatailed commnents in the code | 13:33 |
nickoe | thank you, I will have a look -- but will get some fresh air in the meantime. | 13:49 |
*** kraiskil has joined #symbiflow | 14:06 | |
mithro | daveshah: https://docs.google.com/document/d/1o548m8mJnFTck2-i1A0sSXoe3VvL32irySqE5NBJvPY/edit# | 14:42 |
tpb | Title: nextpnr "Try Hard" mode - Google Docs (at docs.google.com) | 14:43 |
daveshah | mithro: because of some issues like parallelism in the logging code, I'd recommend starting with a wrapper | 14:44 |
*** _whitelogger has quit IRC | 14:51 | |
mithro | daveshah: Okay, do you think that such a wrapper could be shipped with nextpnr? I'm thinking about people who are currently "locking the random seed" when they are doing PnR. | 14:51 |
daveshah | Yeah, I wouldn't have a problem with that | 14:52 |
*** _whitelogger has joined #symbiflow | 14:53 | |
*** citypw_ has quit IRC | 15:02 | |
*** gmihovics has quit IRC | 15:04 | |
nickoe | kgugala can I access signals inside the module in the testbench? | 15:44 |
nickoe | with verilator | 15:44 |
*** kraiskil has quit IRC | 16:08 | |
*** kraiskil has joined #symbiflow | 16:10 | |
nickoe | mmm, I think I made it simulate stuff, but for some reason it does not look like the output of the module with the led wires are changing | 16:18 |
nickoe | but the counter is running fine | 16:18 |
nickoe | mmm | 16:30 |
nickoe | I am not sure I understand why I get this error. All I modified was the counter assignment to the led and add timescale for sim https://dpaste.com/EA5XXBHGA | 16:33 |
tpb | Title: dpaste: EA5XXBHGA (at dpaste.com) | 16:33 |
nickoe | ok | 16:44 |
nickoe | - assign led[3:0] = counter >> LOG2DELAY; | 16:44 |
nickoe | + assign led[3:0] = counter[3:0] >> LOG2DELAY; | 16:44 |
nickoe | I guess it is that addition of that range that causes that | 16:44 |
nickoe | ok, that solved it for simulation and real, fixed with: assign led[15:0] = counter[BITS+LOG2DELAY-1:LOG2DELAY]; | 16:59 |
*** andrewb1999 has joined #symbiflow | 17:59 | |
*** FFY00 has quit IRC | 18:53 | |
*** FFY00 has joined #symbiflow | 18:54 | |
*** ayazar1 has quit IRC | 20:54 | |
*** andrewb1999 has quit IRC | 21:10 | |
*** andrewb1999 has joined #symbiflow | 21:12 | |
*** kraiskil has quit IRC | 21:16 | |
*** kraiskil has joined #symbiflow | 21:29 | |
nickoe | Can one initialize internal variables of a verilog module with verilator? | 21:35 |
*** QDX45 has joined #symbiflow | 21:42 | |
*** join_subline has quit IRC | 22:17 | |
*** kraiskil has quit IRC | 22:31 | |
nickoe | Can one install the symbiflow toolchaing for the upduino (ice40) with the symbiflow examples guide, or how does that work? | 22:35 |
nickoe | or should I use make env from arch defs? I assume that "make env" from that essentially replaces the instructions on this page? https://symbiflow-examples.readthedocs.io/en/latest/getting-symbiflow.html | 22:38 |
tpb | Title: Getting SymbiFlow SymbiFlow examples documentation (at symbiflow-examples.readthedocs.io) | 22:38 |
*** FFY00 has quit IRC | 22:38 | |
*** kraiskil has joined #symbiflow | 22:44 | |
*** kraiskil has quit IRC | 23:07 |
Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!