Monday, 2020-11-09

*** tpb has joined #symbiflow00:00
*** epony has joined #symbiflow00:33
*** rvalles has joined #symbiflow01:24
*** rvalles_ has quit IRC01:25
*** citypw has joined #symbiflow02:05
*** Degi has quit IRC02:27
*** Degi has joined #symbiflow02:28
*** TMM has quit IRC04:08
*** TMM has joined #symbiflow04:09
*** citypw has quit IRC04:12
*** citypw has joined #symbiflow05:47
*** OmniMancer has joined #symbiflow06:16
*** kgugala has quit IRC07:29
*** kgugala has joined #symbiflow07:29
*** lambda has quit IRC10:19
*** lambda has joined #symbiflow10:21
*** plexj has joined #symbiflow11:27
*** az0re has quit IRC11:30
*** citypw has quit IRC11:30
*** plexj has quit IRC12:49
*** _whitelogger has quit IRC13:18
*** _whitelogger has joined #symbiflow13:20
*** sf-slack4 has joined #symbiflow14:09
*** sf-slack has quit IRC14:09
*** OmniMancer has quit IRC15:59
*** az0re has joined #symbiflow15:59
*** kgugala_ has joined #symbiflow17:03
*** kgugala has quit IRC17:04
*** kgugala has joined #symbiflow17:13
*** kgugala_ has quit IRC17:16
*** kgugala_ has joined #symbiflow17:20
*** kgugala has quit IRC17:22
*** kgugala has joined #symbiflow17:23
*** kgugala_ has quit IRC17:25
*** kgugala_ has joined #symbiflow17:31
*** kgugala has quit IRC17:33
*** kgugala has joined #symbiflow17:44
*** kgugala_ has quit IRC17:46
litghosthosana: Currently we only build the conda packages for Linux.  It is not suprising that OS X is not working yet.  This is something we are working on.17:53
*** pdp7 has left #symbiflow18:36
*** mkru has joined #symbiflow18:50
mkruIs there any evaluation kit that you would recommend for playing with open source synthesis and implementation?18:51
litghostDepends on your goals.  Something like the fomu: https://www.crowdsupply.com/sutajio-kosagi/fomu is tiny, and gets you started18:58
tpbTitle: Fomu | Crowd Supply (at www.crowdsupply.com)18:58
litghostIf you want something a little bigger and beefier, the digilent series of 7-series boards (Arty, Nexus, Zybo) can scale up to 200k gates18:59
litghostThe ECP5 dev boards are also supposed to be good, but I don't know much about them off hand18:59
mkruI would prefer something with PCIe and not from Xilinx19:00
mkruI have found single board on symbiflow website19:00
litghostWhen you say not from Xilinx, you mean not a Xilinx part or not a Xilinx board?19:01
mkrunot a Xilinx part19:01
litghostECP5 boards I believe are what you looking for19:01
litghostBut I'll let others with more experience speak up19:02
daveshahThe only ECP5 board with PCIe that is generally available is the Versa19:04
daveshahBut, there is no complete open source PCIe IP for the ECP5 ye519:04
daveshah*yet19:05
daveshahhttps://github.com/ECP5-PCIe/ECP5-PCIe is the best work-in-progress19:05
litghostAnd to dovetail that comment, there are open source PCIe IP for Xilinx 7-series that have been demonstrated19:06
daveshahIndeed19:06
mkruDo you know where it has been demonstrated?19:23
litghosthttps://twitter.com/enjoy_digital/status/130845321534888755719:29
sorearIIRC litepcie is dependent on xilinx soft IP for that19:31
litghostsorear: Oh, :(19:31
litghostIs that also the case for the 7-series PCIe core?19:31
litghoste.g.: https://twitter.com/enjoy_digital/status/125798511146901504019:32
daveshahNot sure how much soft IP is involved. More like the Xilinx wrapper around their PCIe hard block19:35
mkruDo all projects using symiflow require nmigen?19:36
litghostThe verilog -> bitstream stuff does not.  But a lot of the example open IPs do use nMigen19:37
mkruLet's assume I have Xilinx part with PCIe, can I use it with symbiflow without being locked to nMigen?19:39
whitequarkyes, absolutely19:39
whitequarkI would not say that all symbiflow projects require nMigen, I'm pretty sure most of them don't19:40
whitequarkthough not like I have statistics19:40
whitequarkin fact, when I work on nMigen, I specifically aim to contribute components upstream when possible, e.g. CXXRTL19:40
mkruI struggle to find any tutorial. Everywhere there is nMigen in the first or second sentence ...19:41
daveshahI can't speak for the Xilinx side so well, but the official examples for ECP5, are Verilog19:45
daveshahhttps://github.com/YosysHQ/prjtrellis/tree/master/examples19:45
daveshahAlso note that the open Xilinx PCIe core, litepcie, being discussed is Migen not nMigen19:45
daveshahBut in general LiteX stuff is possible to use from Verilog too19:46
litghostThe examples for the 7-series are a mixture of Verilog and some LiteX generated19:46
litghostmkru: I also want to clarify something.  We have not demonstrated LitePCIe on an open place and route flow yet.  Only DDR and ethernet.  There is almost certainly more work required to do 7-series PCIe on a fully open flows.  However I have no reason to believe at this time it isn't simply a matter of expanding the fuzzers under prjxray to document the relevant bits.19:49
sorearis there a thing anywhere saying what is known to work on 7-series with fully open tools?  I had no idea you had DDR working19:50
litghostDDR was working back in march :/  Woops.  It is worth noting that it required hacking up the LiteX outputs to make it work, so we've been head down to remove those hacks.19:52
litghostWe are getting very close to the point where the outputs directly from LiteX just work.  There are just handful of XDC constraints we are working on finishing up19:53
litghostMMCM support is also needed for some targets, as LiteX sometimes wants to use the MMCM instead of the PLL19:54
litghostMMCM support is coming along, but not done yet19:54
daveshahI definitely had the output from LiteX working with nextpnr-xilinx directly at one point, maybe with reduced clock19:55
daveshahBut yeah since then there have been quite big changes to LiteX19:55
daveshahThat was also just ignoring those xdc constraints...19:55
litghostYa, we've been working on adding support for the XDC constraints19:56
litghostIt's mostly working, but still needs more iterations before it is fully baked19:56
daveshahMmm19:56
mkruLets assume I have some stuff written in VHDL, and I use yosys ghdl frontend for synthesis. How do I couple my part of the design with /DDR/Ethernet/PCIe or whatever part related? Do you I need to know LiteX, nMigen? I already use FuseSoc and I am more than happy, I do not want to learn another build tools.19:56
litghostAh, tcal might have exactly what you want19:57
daveshahLiteX has some generators for generating standalone verilog cores for dram etc19:57
mkruThe pictures on the symbiflow mentions tools such as yosys, nextpnr, Verilog to Routing, but examples on github all the time mention Litex or nMigen19:58
litghostSo I think we need to seperate something for a minute19:58
litghostyosys consumes VHDL/verilog and generates elaborated netlists.  nextpnr/VTR can then consume those elaborated netlists and generate place and routed designs19:59
litghostLiteX/nMigen/etc are generators that create VHDL/verilog/etc19:59
litghostThe open P&R tools (generally) don't care where the elaborated netlist originates or what made it20:00
litghostYou do need supply useful clock constraints, etc20:00
litghostSo there is some coupling there20:00
daveshahIts notable that in general, both LiteX and nMigen put at least equal effort into integration into vendor tools as into open tools20:01
mkruOk, so if you say, that you have added support for DDR, or you mention that you are working on MMCM, on which level are operating? Does support for such primitives depend on Litex or nMigen?20:01
litghostSo MMCM and PHY support (e.g. GTX) are at the place and route level generally20:02
litghostSo for 7 series that would be some prjxray work, and then support in the relevant P&R tooling20:02
litghostSo as a concrete example, the fact that we got DDR working translates to support OSERDES/ISERDES/IDELAY and relevant differential buffer modes20:02
daveshahIt is always possible to use such primitives without LiteX, nMigen, etc in Verilog or VHDL20:02
litghostExactly20:03
daveshahHowever, for things like DDR3, there might not actually be an extant raw-Verilog-or-VHDL open source core that uses those primitives20:04
daveshahbut that is simply because the people developing those cores have preferred to use a higher level HDL framework for more flexible meta-programming, not because anything stops you from developing one in Verilog20:05
mkruOk, maybe I should just buy some board and check how it works. I would like to use open source tool chain for FPGA development, and I really honor what you do, but as a new comer I have an impression, that Litex and nMigen are crucial parts on this tool chain.20:05
daveshahIt really depends what you are doing. You can, for example, simply treat LiteX the same way as the DDR3 core generator in Vivado which probably has some kind of scripting under its hood, but that's not something that end user considers an integral part of Vivado20:07
whitequarkbeyond that, as a part of working on nMigen I'm trying to improve cross-language integration; I would like to make it possible for people using Verilog to instantiate nMigen modules easily20:08
mkruWell, they should probably don't even care that some modules use nMigen20:11
tcalHi mkru: your your "part of the design" -- do you envision it as a bus master controlling its own access to ethernet and DDR peripherals (IP blocks)?    I am not yet familiar with FuseSoc -- does it use a standard bus to connect cores/blocks together?20:11
mkruno, it is rather build and dependency management tool. You can use any bus and cores you want, or no bus at all.20:12
mkruIt is not build tool focused on SoCs solely, it is much more generic20:15
tcalThanks mkru, I will probably learn it soon, I've had a few people recommend FuseSoc to me.20:16
sf-slack4<kgugala> you can always talk to @olof.kindgren20:17
sf-slack4<kgugala> :)20:17
mkruWhen you try it, you will realize how people coming from FuseSoc would like to use part related cores20:17
daveshahThere was some work on fusesoc+litedram integration: https://github.com/enjoy-digital/litedram/pull/90 but I don't know where that went in the end20:19
*** mkru has quit IRC20:27
umarcor@mkru: in https://im-tomu.github.io/fomu-workshop/hdl.html you will find Verilog, VHDL, Verilog + VHDL and VHDL + Verilog examples using GHDL + Yosys + nextpnr.20:31
tpbTitle: Hardware Description Languages FPGA Tomu (Fomu) Workshop documentation (at im-tomu.github.io)20:31
umarcorthose examples are for Fomu. But similar makefiles work for e.g. Icestick or TinyFPGA: https://github.com/dbhi/vboard/tree/main/vga, https://github.com/juanmard/screen-pong20:33
umarcorprecisely, those makefiles are based on https://github.com/antonblanchard/ghdl-yosys-blink20:34
umarcorAnton's microwatt (VHDL 2008) has been tested on several boards, using open and non-open tools20:35
*** az0re has quit IRC20:37
sf-slack4<olof.kindgren> Hi @mkru. As @daveshah mentions, there has been work on wrapping Litex cores in FuseSoC generators21:22
sf-slack4<olof.kindgren> But this will have to be done on a core-by-core basis as there is no common way of acheiving this. The first target will be be LiteDRAM and I have submitted some patches to make integration easier21:24
umarcoroverall, I also had the perception that LiteX and/or migen/nmigen are required, but as dave said, that's only because users contributing examples use Python rather than traditional HDLs.21:25
sf-slack4<olof.kindgren> I use a LiteDRAM core in the (otherwise fully verilog) SweRVolf SoC https://github.com/chipsalliance/Cores-SweRVolf21:25
umarcorin the context of Fomu, I'm looking forward to generating some black-box USB-to-UART core with litex/nmigen, which HDL designers can then instantiate "as a vendor component"21:26
sf-slack4<olof.kindgren> Right now I generate the LiteDRAM core manually and store the generated verilog, but the ambition is to (optionally) allow users to specify the LiteDRAM generation parameters in the .core file and have it generated on the fly21:26
umarcorFTR, the people working on microwatt is combining a VHDL 2008 SoC with Litedram (Verilog). Simulation is done with GHDL's VHPIDIRECT + Verilator: https://github.com/ghdl/ghdl/issues/1335.21:28
sf-slack4<olof.kindgren> Next in line would probably be liteETH. I have used the OpenCores ethmac for ten years (I'm even listed as a maintainer) but it just isn't very good and there are surprisingly few good ethernet macs21:28
sf-slack4<olof.kindgren> FTR, Microwatt has FuseSoC support too.21:29
umarcorindeed... microwatt and litedram have fusesoc *.core files: https://github.com/antonblanchard/microwatt/blob/master/litedram/litedram.core and https://github.com/antonblanchard/microwatt/blob/master/microwatt.core21:30
umarcorhowever, I'm not sure about microwatt being tested on open source boards using open source tools only21:33
sf-slack4<olof.kindgren> Don't know that either. I just submitted support for running on a Nexys A721:37
umarcoron the one hand, I know they have tested it on Digilent boards. on the other hand, I know that Anton was tinkering with GHDL + Yosys and the OrangeCrab. but I don't remember any tweet/comment combining both.21:39
umarcorhttps://youtu.be/N-_9dWdvLBA?t=77121:42
sf-slack4<cjearls> I have a Genesys2 board with a Xilinx Kintex-7 FPGA in it, what's the current status on the Kintex-7? Anything usable?21:50
litghostcjearls: Most focus has been on Artix and Zynq support, but we have the ability to create bitstreams for Kintex-7.  We have not had someone try to stand-up support for it and test it.  I believe if the Genesys2 part is in WebPack, it should be possible to add the fabric data for it, and add support for it.21:57
daveshahI don't think it is in WebPack21:59
daveshahUnless they've changed the threshold recently21:59
sf-slack4<cjearls> It is not in WebPack, Digilent provides board files for it21:59
litghostSo it not being in WebPack means that the current way we generate the prjxray data won't work without a significant amount of effort.  However, I believe if you have a version of Vivado that runs locally, you could in theory run the fuzzers yourself.   However because we haven't tested on that part, it means you will likely hit edge cases we are not prepared to handle22:01
daveshahDoes prjxray have hpio yet? I had a brief look at making it work a while ago, as I have that board too, but that was one of the limitations22:02
daveshahA lot of the interesting IO is hpio22:02
sf-slack4<cjearls> I see. I have a local version of Vivado, but I haven't ever used Symbiflow, so it sounds like getting it working for my board will probably be too difficult for me right now22:02
litghostprjxray does not have HPIO fuzzers right now22:02
litghostDo any WebPack parts have HPIO banks?22:03
daveshahYeah, that means you'd pretty much need an ROI with that board22:03
daveshahI think the k70 probably does22:03
litghostOh good22:03
litghostWell we have the basic database for the k70, so someone could write a HPIO fuzzer22:03
litghostGiven the focus on the Artix and Zynq parts, I don't believe there has been a need to get a HPIO fuzzer stood up22:04
daveshahAnd if you don't care about the fancier modes, the existing HRIO fuzzer with the higher voltages removed would probably be a good base22:05
daveshahLikewise the HPIO IOLOGIC is a tiny bit different (adds the ODELAY)22:06
sf-slack4<cjearls> Do you have a recommendation for hardware to use to get involved for someone new? I have my Bachelor's degree in Computer Engineering and am currently working on my Master's degree, so I have hardware and software design experience.22:06
daveshahDepends what you want to do. icebreaker, ULX3S and Arty A35T are all quite well supported boards22:07
umarcorcjearls, how much I/O do you want? do you need DDR?22:07
sf-slack4<cjearls> I'm not sure about how much I/O. I'd like to do some RISC-V designs in the future, so I think I'd like DDR22:09
umarcorfor tinkering with RISC-V from a computer architecture and SoC design perspective, I believe that absolutely any board will fit. just need to scale the design, and there are some really tiny cores out there.22:10
sorearyou may have trouble with ice40lp384 ;)22:11
umarcorif you want to then run Linux and do some "acceptable" processing, DDR might be desirable. but you should first have some application that needs to crunch data fast.22:12
sorearpossibly more important question: what is your budget22:12
umarcorsorear: that's true :), not the smallest, but UP5K, HX1K, HX4K, HX8K, ECP5, Artys...22:12
sorearthere are a lot of good ca. 100 USD boards, if you're trying to go much less than that there are difficult choices22:12
umarcorsorear: which boards are you thinking about? On the open source side, I think 50-75€ is an acceptable budget (60-120 USB).22:15
sf-slack4<cjearls> I don't have a set budget, just nothing too crazy into the several hundreds of US dollars22:16
sf-slack4<cjearls> Both of those budgets sound reasonable to me22:17
umarcorThere are a bunch of boards fiting that budget which are now listed in lattice's website: https://www.latticesemi.com/en/Solutions/Solutions/SolutionsDetails01/CommunitySourced22:18
tpbTitle: Community Sourced - Lattice Semiconductor (at www.latticesemi.com)22:18
sf-slack4<cjearls> Oh, awesome, I didn't realize that they were listed on their website, that's great22:19
umarcoricebreaker, icesugar, alhambra, doppler, blackice... all of those are the same concept: uC or FTDI + FPGA. the price is similar too. so it's mostly a matter of taste.22:20
umarcortinyfpga and Fomu don't have an auxiliary uC or FTDI. Instead, they have an HDL bootloader.22:21
umarcororangecrab, matt venn's ecp5 dev board, radiona's ULX3S... those have the more capable ECP5 FPGAs, instead of ICE40 family devices (as all the previous).22:23
sorearif you want to do computer architecture with more than 16 kB of RAM you want something with a ddr interface22:23
sf-slack4<cjearls> A DDR interface allowing for connecting external DDR, or DDR on the board itself?22:24
umarcorfrom there on, I would look into Digilent and AVNET boards. which are traditional vendors for Xilinx dev boards.22:24
umarcorcjearls: typically, on the board itself22:26
sf-slack4<cjearls> I see, so the amount of RAM the board comes with is the maximum that will be available22:26
umarcorfor the <150USD boards yes22:27
umarcorthose are "low-cost" development boards22:27
umarcorthe mid-range boards (500-2000 USD) might have RAM sockets for you to plug SODIMM or so22:28
sf-slack4<cjearls> Alright, sounds good. I'll probably start off with something cheap to get my feet wet22:29
sf-slack4<cjearls> Other than the amount of RAM, are there other things I should consider?22:30
umarcorI would look at what I expect to connect the board to: VGA/HDMI/Ethernet, camera interfaces, displays, etc. However, if you plant to focus on computer architecture and the full system stack, those are mostly irrelevant.22:33
sorearmake sure the fpga chip is compatible with the tools you intend to use22:35
umarcorcompare, for example https://1bitsquared.com/products/orangecrab and https://radiona.org/ulx3s/ Same heart (FPGA), but completely different target use cases22:36
tpbTitle: ULX3S (at radiona.org)22:36
sorearremember that "Kb" means kilobits, not kilobytes22:38
*** _whitelogger has quit IRC23:13
*** _whitelogger has joined #symbiflow23:15

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