Thursday, 2020-11-12

*** tpb has joined #symbiflow00:00
*** Degi has quit IRC02:20
*** Degi has joined #symbiflow02:21
*** lopsided98_ is now known as lopsided9802:35
*** daniellimws has quit IRC04:09
*** OmniMancer has joined #symbiflow04:53
*** az0re has quit IRC06:11
*** kgugala_ has joined #symbiflow06:18
*** kgugala has quit IRC06:21
*** az0re has joined #symbiflow06:56
HackerFooCan SymbiFlow VPR currently generate a working bitstream from the Linux LiteX design for the Nexys Video board?07:33
HackerFooMy understanding is that it cannot: https://github.com/SymbiFlow/fpga-tool-perf/issues/26207:33
*** kgugala_ has quit IRC07:45
*** whitequark has left #symbiflow07:45
*** kgugala has joined #symbiflow07:45
sf-slack4<olof.kindgren> I'm starting to think the best way might be to run some netlist simulations. Anyone has hints on how to do that? Icarus gives me syntax errors on the specify blocks in install/share/arch/ql-eos-s3_wlcsp/cells/ram_sim.v09:16
sf-slack4<kgugala> Verilator should be able to ignore those blocks09:18
sf-slack4<olof.kindgren> Looks like it doesn't like these kind of lines `(CLK2*>RD_b0)="";` and my knowledge of the dark corners of verilog ain't enough to figure out what it's about09:18
sf-slack4<olof.kindgren> But verilator probably won't do me any good here. I need an event-based sim09:19
sf-slack4<olof.kindgren> Or is there some verilator-usale model for the ASSP module that can give me a proper Sys_Clk0 ?09:20
sf-slack4<kgugala> the only one I know is in the toolchain repo09:21
sf-slack4<olof.kindgren> Hmm.. how do I even configure the clock frequency in the simulator model?09:21
sf-slack4<kgugala> @tpagarani may know more09:21
sf-slack4<olof.kindgren> Hmm.. looks like the ASSP model doesn't generate clocks, so I would need to do that myself. That's ok, but I still need the RAM models09:25
sf-slack4<olof.kindgren> I killed off the specify blocks for now and run with -gno-specify. But which libraries should I load? There are files in conda/share/yosys/quicklogic, conda/pkgs/yosys-0.8.0_0002_gc3b38fdc-20200901_073908/share/yosys/quicklogic and install/share/arch/ql-eos-s3_wlcsp/cells. How do they all fit together?09:32
sf-slack4<kgugala> the one in arch are for post layout sim, you can use the ones from conda/pkgs/yosys-0.8.0_0002_gc3b38fdc-20200901_073908/share/yosys/quicklogic09:35
sf-slack4<olof.kindgren> gtg09:35
*** OmniMancer has quit IRC12:56
*** OmniMancer has joined #symbiflow12:57
*** OmniMancer has quit IRC13:44
*** OmniMancer has joined #symbiflow13:45
-_whitenotifier-f- [symbiflow-arch-defs] acomodi opened issue #1770: Enable FD primitives - https://git.io/JkqRg14:49
sf-slack4<rakeshm> @olof.kindgren For postlayout simulation you can find the models (ASSP / RAMs) at:                                /install/share/arch/ql-eos-s3_wlcsp/cells/                               Sys_Clk0 frequency can be controlled by changing the parameter T_CYCLE_CLK_SYS_CLK0 in /install/share/arch/ql-eos-s3_wlcsp/cells/assp_bfm.sim.v file15:54
sf-slack4<rakeshm> @olof.kindgren for pre-layout sim you need  to use the models at:                              /conda/share/yosys/quicklogic/                              cells_sim.v & pp3_cells_sim.v files15:55
sf-slack4<olof.kindgren> @rakeshm Thanks.16:37
sf-slack4<tpagarani> @olof.kindgren Regarding the memories, your header file generated from bitstream needs to include memory initialization array.  We have supported that recently with qorc-sdk 1.4.0 release. Please look at https://github.com/QuickLogic-Corp/qorc-sdk/commit/cc8e68813558c16128cf86c7da2cad6490dc1f0c17:12
*** kgugala_ has joined #symbiflow17:46
*** kgugala has quit IRC17:50
*** kgugala_ has quit IRC17:52
*** kgugala has joined #symbiflow17:52
*** FFY00 has quit IRC17:54
*** FFY00 has joined #symbiflow17:55
*** OmniMancer has quit IRC18:29
sf-slack4<olof.kindgren> @tpagarani Hmm.. does this mean the data I put in the memories during synthesis gets ignored?18:38
sf-slack4<olof.kindgren> Or to phrase it another way; After the qorc-sdk 1.4.0 release, will the memory initialization data specified during synthesis be extracted automatically from the bit file when the h file is created?18:49
sf-slack4<olof.kindgren> Or do I need to add the memory contents manually at some point?18:49
sf-slack4<olof.kindgren> If I understand the changes correctly, I need to call `load_fpga_with_mem_init` explicitly from my C code. What is my memory contents supposed to look like? Do I need to know which of the on-chip RAM to program? Can I extract this from the bit file somehow?22:24
sf-slack4<olof.kindgren> Aha! There's a `axFPGAMemInit` in the .h file already. Unfortunatley that one is empty22:25
sf-slack4<olof.kindgren> And that one is created by symbiflow_write_bitheader which is a bash script calling bitstream_to_header.py22:28
sf-slack4<olof.kindgren> And that one seems to try reading a file called ram.mem22:29
sf-slack4<olof.kindgren> ...which is empty. Now who creates ram.mem?22:30
sf-slack4<olof.kindgren> Aha!22:31
*** umarcor has quit IRC22:35
sf-slack4<olof.kindgren> Of course it was empty. I'm building the bitstream outside of the qorc-sdk tree and then copy it into the helloworld project. But I was using ram.mem from helloworld, which is empty22:36
sf-slack4<olof.kindgren> Want to test it now but can't find my board. Stupid miniaturization22:37
sf-slack4<coreyrsimpson> I am currently writing a fuzzer for the PCIE and GMT tiles for prjxray with the artix 7, and am having some preliminary success. I was wondering what sort of tools/methods prjxray used to validate the segbits files that were generated for each fuzzer created?22:39
*** QDX45 has joined #symbiflow22:41
sf-slack4<olof.kindgren> ok, so it still didn't work. Another question. Looking at the data in ram.mem it seems to split the 32-bit data words into two 16-bit words stored at different addresses and then it looks like there's some shuffling of a few bit lines as well. Is that expected?22:49
sf-slack4<olof.kindgren> Fuck! I forgot to change the call in main.c to use load_fpga_wit_mem_init!22:51
sf-slack4<olof.kindgren> Still no luck, but I guess I'm closer at least22:55
litghostcoreyrsimpson: Creating a minitest (e.g. minitests/pcie/....) and seeing how many unknown bits are left22:58
litghostcoreyrsimpson: So for example, create simple PCIe design, generate the bitstream from Vivado, and then see if all bits are documented22:59
litghostcoreyrsimpson: Any unknown bits are remaining work22:59
litghostcoreyrsimpson:  To be clear, you might solve all the bits for the PCIe hardblock, but be missing special clocking bits, or pips, or GTX bits23:00
litghostcoreyrsimpson:  There are also tools in prjxray to ensure that bits don't overlap in tiles overall sense23:00
litghostThe root level makefile target "db-check" will do that23:01
sf-slack4<coreyrsimpson> That makes sense, I'll check that out. Thanks23:06
litghostcoreyrsimpson:  No matter what, it probably makes sense to open a PR with the work you've started to get the review process going23:08

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