tpb has quit [Remote host closed the connection]
tpb has joined #symbiflow
ASHR has joined #symbiflow
ASHR has quit [Quit: Leaving]
proteusguy has quit [Ping timeout: 264 seconds]
TMM has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
TMM has joined #symbiflow
proteusguy has joined #symbiflow
ASHR has joined #symbiflow
futarisIRCcloud has joined #symbiflow
ASHR has quit [Quit: Leaving]
ASHR has joined #symbiflow
ASHR has quit [Quit: Leaving]
<sf-slack> <mpictor> litghost, umarcor: thanks!
<sf-slack> <mpictor> > If you are not modifying the arch-defs support, we recommend you use https://github.com/SymbiFlow/symbiflow-examples/ which pulls down the outputs of arch-defs. the getting started page on the site seemed to be directing me to arch-defs. didn't seem quite right but it was the best lead I had :)
<sf-slack> <mpictor> maybe should change the docs to point to the examples repo
rvalles has joined #symbiflow
rvalles_ has quit [Ping timeout: 256 seconds]
sadoon_albader has joined #symbiflow
sadoon_albader has quit [Client Quit]
sadoon_albader has joined #symbiflow
citypw has joined #symbiflow
sadoon_albader has quit [Client Quit]
Degi_ has joined #symbiflow
Degi has quit [Ping timeout: 256 seconds]
Degi_ is now known as Degi
gvb has joined #symbiflow
gvb has quit [Client Quit]
hansfbaier has joined #symbiflow
futarisIRCcloud has quit [Quit: Connection closed for inactivity]
citypw has quit [Ping timeout: 240 seconds]
ASHR has joined #symbiflow
anon has joined #symbiflow
anon is now known as Guest4447
<Guest4447> I am a beginner. I need some help. I have hx8k board from olimex and I intend to use flashrom utility on RPI3 with FreeBSD to program my fpga
<Guest4447> I also intend to use clash (haskell) for coding logic
<Guest4447> My question is, what do the steps look like? What is yosys, arachne-pnr and icestorm?
kgugala_ has joined #symbiflow
kgugala has quit [Ping timeout: 256 seconds]
Guest4447 has quit [Quit: Connection closed]
mkru has joined #symbiflow
mkru has quit [Quit: Leaving]
kgugala_ has quit [Quit: -a- Connection Timed Out]
kgugala has joined #symbiflow
ASHR has quit [Quit: Leaving]
kgugala_ has joined #symbiflow
hansfbaier has quit [Quit: WeeChat 2.8]
hansfbaier has joined #symbiflow
kgugala has quit [Ping timeout: 240 seconds]
schultz_ has joined #symbiflow
citypw has joined #symbiflow
<sf-slack> <schris15> Hello, I'm interested in contributing to this project. I'm new to FPGAs. I have some basic knowledge of HDL languages and Docker. I'm have some experience with Python and C++. Where can I start contributing to the project?
zisis_a has joined #symbiflow
citypw has quit [Remote host closed the connection]
citypw has joined #symbiflow
phiren has quit [Quit: ZNC - http://znc.in]
phire has joined #symbiflow
<hansfbaier> sf-slack: Are you interested in Xilinx 7 series reveng? Here you can get started:https://symbiflow.readthedocs.io/projects/prjxray/en/latest/db_dev_process/readme.html
<tpb> Title: Project X-Ray Project X-Ray 0.0-3318-g77e8b24c documentation (at symbiflow.readthedocs.io)
<hansfbaier> sf-slack: See also the other nodes in the documentation page. That should keep you busy for some time...
<hansfbaier> sf-slack: Also in the issue there are issues marked as ´good first issue´: https://github.com/SymbiFlow/prjxray/labels/good%20first%20issue
<hansfbaier> sf-slack: This is all for Xilinx series 7
<hansfbaier> sf-slack: For Intel/Altera there is #prjmistral
<hansfbaier> sf-slack: and for Lattice project trellis
schultz_ has quit [Ping timeout: 264 seconds]
ASHR has joined #symbiflow
ASHR has quit [Remote host closed the connection]
hansfbaier has quit [Read error: Connection reset by peer]
sadoon_albader has joined #symbiflow
sadoon_albader has quit [Client Quit]
sadoon_albader has joined #symbiflow
schultz_ has joined #symbiflow
citypw has quit [Ping timeout: 240 seconds]
schultz_ has quit [Remote host closed the connection]
dnltz has joined #symbiflow
citypw has joined #symbiflow
citypw has quit [Ping timeout: 240 seconds]
infinite_recursi has joined #symbiflow
<infinite_recursi> Hello, I'm a beginner in FPGA. I have an Olimex HX8K which I wish to program using flashrom utility in RPI3 with FreeBSD. I need some help.
<infinite_recursi> Can someone help me with the basic steps on how FPGA programming is done. I intend to write code in clash (haskell), get hdl code, and then somehow use yosys, arachne-pnr and icestorm.
<infinite_recursi> However, I have no idea what yosys, arachne and icestorm do! Can someone please explain in simple words to me these processes? Thanks in advance!
<lambda> infinite_recursi: first of all, you probably want nextpnr, arachne-pnr's successor
<infinite_recursi> ok, I'll see nextpnr. But why?
<lambda> arachne-pnr is deprecated and not maintained anymore
<infinite_recursi> I get how gcc converts C code to CPU instructions, etc. What are we doing here going from hdl to bitstream I presume at the end?!
<sf-slack> <pgielda> @hansfbaier, sf-slack is a gateway bot that is forwarding messages from slack not a real username.
<sf-slack> <pgielda> (just FYI)
<lambda> infinite_recursi: yosys does the synthesis, i.e. converting your HDL to a netlist (circuit) of FPGA components (LUTs, flipflops, RAM blocks, ...), then nextpnr places these components into a concrete model of the specific FPGA you're using and routes the connections between them
<infinite_recursi> got it and icestorm?
<infinite_recursi> So do we have to control parameters of these compilation steps or is this automatic? Like as FPGA programmers, do we have to worry about internal things of these 3 softwares?
<infinite_recursi> Like setting config params?
<lambda> infinite_recursi: icestorm is the project that reverse-engineered iCE40 FPGAs, resulting in both the model (chipdb) used by nextpnr as well as a collection of tools to create bitstreams, etc
<lambda> infinite_recursi: not really, for simple projects all you have to configure is the FPGA you want to build for
<lambda> e.g. use `synth_ice40` in yosys, and run nextpnr-ice40 --hx8k with the correct --package
<infinite_recursi> Noted. And where to find standard projects where I can build on top of others' code? Is hdl code specific to a particular board or chip like say iCE40?
<zyp> depends whether the code is instancing primitives that only exists in a particular chip or not
<lambda> "it depends" - the main logic of any design will probably be pretty generic, but especially when it comes to IOs, you often need to manually instantiate your device's primitives
<infinite_recursi> By instancing primitives, do you mean functions specific to an fpga board?
<infinite_recursi> ok
<infinite_recursi> I guess I'll learn this when I do things.
<lambda> no, hard logic blocks inside the chip - things like PLLs, SERDES, etc
<zyp> if you're familiar with microcontrollers, it's analogous to how some code is accessing hardware registers present in a specific chip, while other code might be compiled for any chip
<infinite_recursi> Yes, got it. Thank you lambda and zyp! :D
<zyp> so in practice you often end up with some files of portable code along with some «glue» code to help it work on a particular chip
<zyp> and by replacing the glue code, you can build it for different targets
<infinite_recursi> Would the glue code be long enough or some big structure changes or it would just be some minor edits?
<infinite_recursi> And would I have to take care about it while structuring code?
<lambda> infinite_recursi: if you want to simulate your code, it may just come naturally if there are no simulation models for the primitives you're using, so you'll have to stub them out anyway :)
sadoon_albader has quit [Quit: Leaving]
<infinite_recursi> ok.
infinite_recursi has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
sadoon_albader has joined #symbiflow
dnltz has quit [Ping timeout: 260 seconds]
dnltz has joined #symbiflow
dnltz has quit [Remote host closed the connection]
dnltz has joined #symbiflow
schultz_ has joined #symbiflow
dnltz has quit [Ping timeout: 272 seconds]
<_whitenotifier> [prjxray] tmichalak opened issue #1546: Add baseaddresses for GTPE2_CHANNEL sites - https://git.io/JtJEM
gromero_ has quit [Quit: Leaving]
maartenBE has quit [Ping timeout: 256 seconds]
maartenBE has joined #symbiflow
gromero has joined #symbiflow
schultz_ has quit [Ping timeout: 256 seconds]
zisis_a has quit [Quit: Leaving.]
schultz_ has joined #symbiflow
TMM has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
TMM has joined #symbiflow
infinite_recursi has joined #symbiflow
infinite_recursi has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
infinite_recursi has joined #symbiflow
<umarcor> schris15: what's your preference? HDL, Docker, Python or C++? All of them? Do you want to work on hardware designs or on tooling for hadware design?
<sf-slack> <schris15> I only have around 6weeks of FPGA design experience with even less being on HDL, so unless its something simple I would prefer python.
<umarcor> @infinite_recursi, you might want to have a look at https://workshop.fomu.im. Very precisely https://workshop.fomu.im/en/latest/background.html and 'Turning code into gates'. That's not the most exhaustive explanation, but it will let you find yourself.
<tpb> Title: Background FPGA Tomu (Fomu) Workshop 0.1-320-gd1e14dc documentation (at workshop.fomu.im)
<sf-slack> <schris15> ok thank you
<umarcor> schris15, that second message of mine was for another user. However, you might also want to read the workshop. You will already know most of that, but it's always interesting to read a different point of view.
<sf-slack> <schris15> oh yeah i didn't notice
<sf-slack> <schris15> yeah i'm familiar with those
<umarcor> Then, if you are comfortable with Python, I would recommend two working areas:
<umarcor> 1. HDL generators | embedded HDL languages, such as migen/nmigen. That will allow you to do hardware design without learning Verilog/VHDL specifics. Not my cup of tea, but very used in the open source community. Search e.g. litex-hub on GitHub.
<infinite_recursi> umarcor: Thanks, read it. It's fomu specific but helped.
infinite_recursi has left #symbiflow ["https://quassel-irc.org - Chat comfortably. Anywhere."]
<umarcor> 2. HDL project packagers|managers, such as edalize/fusesoc, PyFPGA, tsfpga, pyIPCMI, cheby, hdlmake... All of those are written in Python. All of them need love, and any integration effort would be delightful for the community.
<cr1901_modern> What is cheby? A filter maker?
<sf-slack> <schris15> ok thanks for the info, i will take a look
<umarcor> 2. (bis) Tool packagers|managers for easily distributing and installing environments. Antmicro/SymbiFlow is focused on Conda for that, which is Python. Again, not my cup of tea (I'm not very fond of Python's packaging environments), but it has traction.
<umarcor> cr1901_modern: https://gitlab.cern.ch/cohtdrivers/cheby It's for HW/SW interfaces. It generates files for hardware and for software to match. I believe that tsfpga and other projects have similar built-in features.
<tpb> Title: Projects · cohtdrivers / cheby · GitLab (at gitlab.cern.ch)
<umarcor> I think that cheby is based on Wishbone, but I cannot confirm that.
<umarcor> I'm aware of it because the main author is also the author of GHDL.
<cr1901_modern> ahhh
<umarcor> cr1901_modern: you might want to have a look at the following docs:
<umarcor> about packaging and project management for simulation and/or synthesis: https://docs.google.com/document/d/1qThGGqSVQabts-4imn5zY5BMptp1-Q2rGiNKHDH1Pbk
<tpb> Title: EDA integration: managing projects for simulation and implementation - Google Docs (at docs.google.com)
<umarcor> with regard to building and distributing tools: https://docs.google.com/document/d/10_MqFjTIYVVuOJlusJydsp4KOcmrrHk03__7ME5thOI/
<tpb> Title: Open Source EDA: building, packaging, installing - Google Docs (at docs.google.com)
<umarcor> infinite_recursi: related to managing HDL projects targeting multiple boards/FPGA, I would suggest to have a look at https://github.com/dbhi/vboard/tree/main/vga, precisely https://github.com/dbhi/vboard/tree/main/vga#how-to-add-a-board.
<umarcor> That is a "traditional" approach for VHDL/Verilog designs, using makefiles only. The repository was created as an example of how to organise sources (src, board, device, test...) for newcomers to have a reference about how to structure their code, and avoid later refactorisations.
<umarcor> However, there are "higher level" approaches to the problem. Fusesoc is one of them, which uses `.core` files. LiteX has a litex-boards repository, which contains the same infor as hdl/constraints, but embedded in a Python tool.
<umarcor> In fact, one of the main inspirations for the structure was https://github.com/PLC2/Solution-StopWatch. PLC2 is a german HDL training company, which organises FPGA Kongress.
kgugala has joined #symbiflow
kgugala_ has quit [Ping timeout: 246 seconds]
kgugala_ has joined #symbiflow
kgugala has quit [Ping timeout: 256 seconds]
ASHR has joined #symbiflow
kraiskil has joined #symbiflow
kraiskil has quit [Read error: Connection reset by peer]
kraiskil has joined #symbiflow
kraiskil has quit [Ping timeout: 256 seconds]
sadoon_albader has quit [Ping timeout: 264 seconds]
kraiskil has joined #symbiflow
MikeB74 has joined #symbiflow
ASHR has quit [Ping timeout: 240 seconds]
MikeB74 has quit [Quit: Connection closed]
<sf-slack> <kgugala> @mithro @litghost this change https://github.com/SymbiFlow/prjxray/pull/1539/commits/082e98291177fc8194ac71b1680641df119476e7#diff-4f8a3806dcb8d938999[…]318fd2c997d4e5de2f082dR64 implicitly introduces db/mapping/devices.yaml file requirement for xc7-fasm. We need to publish new database with this file, otherwise binary toolchain is crashing
<litghost> True...
lambda has quit [Ping timeout: 260 seconds]
kraiskil has quit [Ping timeout: 265 seconds]
unrznbl[m] has quit [Ping timeout: 260 seconds]
unrznbl[m] has joined #symbiflow
lambda has joined #symbiflow
<litghost> We really need to not having endpoint users using bleeding edge
<sf-slack> <kgugala> yep - we need to fix the package on certain commit
<sf-slack> <kgugala> doing this in the examples repo should be fine (as it is our official user guide)
<sf-slack> <kgugala> and the docs are generated from it
<litghost> I'm not convienced about using commit, rather than package versions
<litghost> for Python packages
zisis_a has joined #symbiflow
<sf-slack> <kgugala> I don't think we publish prjxray python package (I agree this will be better than pointing to a commit)
<litghost> We need to get PyPI publishing started, biggest issue I see is that PyPI doesn't really have a "organization" concept, just an owning account
<sf-slack> <kgugala> yep
<sf-slack> <kgugala> I opened PR hotfixing the prjxray version https://github.com/SymbiFlow/symbiflow-examples/pull/117
<sf-slack> <kgugala> Once we have a proper python package we should reverse this
<litghost> We'll also want to bump it once the new db is propigated
<sf-slack> <kgugala> yep
maartenBE has quit [Ping timeout: 256 seconds]
maartenBE has joined #symbiflow
zisis_a has quit [Quit: Leaving.]
ASHR has joined #symbiflow
ASHR has quit [Quit: Leaving]