<Stormwind_mobile>
Hey everyone! I follow the progress of Glasgow loosely on twitter, and @esden suggested I join this channel and ask if I can help.
<Stormwind_mobile>
I'm still new to FPGAs but have some experience programming uCs, designing PCBs, debugging, generally poking around until I find the root cause of something that's not working as intended.
<sorear>
welcome!
<whitequark>
hi!
Stormwind_mobile has quit [Ping timeout: 268 seconds]
Stormwind_mobile has joined #glasgow
<Stormwind_mobile>
I'm looking for a guideline how to getting to know the project and where I can contribute. It would help me tremendously if someone could take a few minutes to point out some areas, instead of me having to invest hours in order to find those, and figuring out if I actually know enough to be of use.
<whitequark>
one issue is that most of the current outstanding issues are design issues
<whitequark>
i think the best way to start contributing right now is to convert Migen code in applets to nMigen
<whitequark>
but even that is definitely not trivial
<Stormwind_mobile>
Design issues means PCB design, verilog design, ...?
<whitequark>
Python API design. there is no Verilog in glasgow
<Stormwind_mobile>
Esden suggested I could work on documentation.
<Stormwind_mobile>
nMigen is completely unknown to me, besides the occasional tweet I saw.
<Stormwind_mobile>
What might be a good approach when I would start looking into Migen?
<whitequark>
i'm not entirely sure unfortunately, nMigen doesn't really have much docs right now either
<whitequark>
you know Amdahl's law?
<sorear>
I volunteer to answer quickly about the current design to the best of my ability
<Stormwind_mobile>
whitequark: heard of it. What are you hinting at?
<whitequark>
Stormwind_mobile: it's true for people too
<whitequark>
more contributors do not generally mean project advancing faster
<ZirconiumX>
Stormwind_mobile: if you have questions about [n]Migen, they're generally posted in #m-labs. I'm still learning about it as I go, but I'm increasingly confident with it at least.
<Stormwind_mobile>
Then I was guessing correctly: poor parallelization of the development process.
<sorear>
that’s one of Fred Brooks’ laws
<sorear>
adding programmers to a late project, in general, makes it later
<Stormwind_mobile>
I get that it's hard to be of "real" use as a complete newcomer, but OTOH, one learns a new skill best if there's an application and a problem to be solved, opposed to learning just for the sake of learning.
<ZirconiumX>
The mythical person-month
<whitequark>
Stormwind_mobile: to put it bluntly, i do not have the bandwidth to implement essential features. do you think i have the bandwidth to manage people?
<Stormwind_mobile>
I hear you.
<whitequark>
due to chronic pain i have maybe 1-2 usable days per week effectively. there is at least half dozen projects that actively need my attention *right now*, more in general
* ZirconiumX
wishes they were good at writing documentation so they could help
<Stormwind_mobile>
Well, that's why I ask for small things to help with. If there really isn't anything that I can do, so be it. I know I can't ask you to bring me up to speed from zero.
<ZirconiumX>
We might not be able to help with Glasgow; I don't know too much about the gateware stack (sorear probably knows more), but we can bring you up to speed on nMigen, and you can try to start from there if you want.
<whitequark>
most of the current issues with glasgow, in my view, are conceptual: "how should this be done in every applet?"
<Stormwind_mobile>
What is the design process there?
<Stormwind_mobile>
ZirconiumX: I got an icebreaker board last year, is this useful for working with Migen?
<Stormwind_mobile>
Also there is the arrow FPGA design contest, which provides a chance to get one of three small FPGA devboards (all altera/Intel IIRC)
<ZirconiumX>
Stormwind_mobile: just to clarify, there's a very important distinction between Migen and nMigen
<whitequark>
you can use nMigen on an icebreaker, yep
<ZirconiumX>
It's like referring to either GTK2 or GTK3 as "GTK" despite the two being fairly different
<ZirconiumX>
Stormwind_mobile: good thing you're talking to the person who - with help from WQ - added Intel toolchain support to nMigen
<ZirconiumX>
*with lots of help from WQ
<ZirconiumX>
(thank you)
<whitequark>
Stormwind_mobile: re design process: there's no particular procedure, we just collect requirements and discuss them
<whitequark>
and then someone implements it
<whitequark>
I think ktemkin had some good ideas
<whitequark>
unfortunately I doubt I'll be able to participate much in it in the next ... month or so
<whitequark>
the story about nMigen is that Migen has needed a redesign for a very long time, but at some point while working on Glasgow I had finally decided to do it
<whitequark>
and now, like with Glasgow, lots of people are interested in it and want to make things based on it
<whitequark>
unfortunately, there is only one whitequark, and she can't work 24 hours per day
<Stormwind_mobile>
She better don't! She will break eventually, and that would be bad!
<Stormwind_mobile>
Okay, so takeaway so far: understand what Migen and nMigen is, and the difference between them.
<whitequark>
I would suggest starting with nMigen
<whitequark>
Migen suffers from organically growing over the course of many years
<whitequark>
it's a bit like Python 2 vs Python 3
<Stormwind_mobile>
ZirconiumX: is either the MAX10 or the Cyclone 10 series supported?
<ZirconiumX>
It uses Quartus as a backend, so they should be supported fine
<Stormwind_mobile>
The AnalogMAX board looks interesting, as I might actually have a useful application in the lab
<ZirconiumX>
I have a Cyclone V board, wq has a Cyclone III (by accident)
<Stormwind_mobile>
I was at CCCamp at @mithro's fomu workshop. I noticed that there's a lot of deeply technical "under the hood" stuff going on, but documentation of the basic layout, what connects to what, what framework and toolchain exists, was basically nonexistent, so everyone picking one up needs to figure out what they need to know all by themselves.
<Stormwind_mobile>
Down to really basic stuff like copy/pasting commands from the tutorial to the command line was awful due to formatting/extra characters etc.
<Stormwind_mobile>
I actually have a cyclone II board floating around somewhere. Tried to dig into FPGAs some five years ago for the first time, got that board via Ebay for what I hoped was a good deal. Turned out to be a cheap Chinese knockoff with poor to nonexistent documentation, which made it too high of an entry barrier for me back then.
<Stormwind_mobile>
I enrolled in a course about FPGAs at my university, but we only did theory and simulation. I was sad that we didn't got to the point of programming an actual board.
<ZirconiumX>
from nmigen_boards import DE10NanoPlatform; DE10NanoPlatform().build(YourCode(), do_program=True)
<ZirconiumX>
Sorry
<ZirconiumX>
from nmigen_boards.de10_nano import DE10NanoPlatform
<Stormwind_mobile>
I assume nobody cares about cyclone II anymore?
<whitequark>
it's supported by nmigen
<whitequark>
if you use quartus 13.1
<ZirconiumX>
If you have an old enough Quartus version, it should work with a board description
<sorear>
you live in a world where project2064 is a thing
<sorear>
.oO( nmigen for that )
<Stormwind_mobile>
What OSes do I use? Quartus is windows only, correct?
<gruetzkopf>
hello fellow camper! :)
<Stormwind_mobile>
sorear: that means what?
<whitequark>
sorear: i mean sure?
<whitequark>
Stormwind_mobile: linux and windows should both work
<whitequark>
nmigen is primarily developed on linux, but i take a lot of care to make sure windows works well
<ZirconiumX>
I have a kind of hacky WSL thing
<ZirconiumX>
Where the Windows binaries get invoked by a shell script in my $PATH
<whitequark>
is there a reason you don't run it directly on windows?
<ZirconiumX>
Because migrating my workflow to cmd requires enough yak shaving to not be worthwhile.
<whitequark>
ah
<ZirconiumX>
I'm too attached to the UNIX command line
<whitequark>
no, makes sese
<whitequark>
*sense
<ZirconiumX>
On the other hand the WSL interop is not always great
<ZirconiumX>
Quartus is very happy to work inside WSL
<ZirconiumX>
Sublime Text breaks pretty badly
<gruetzkopf>
windows being able to mount 9p is extremely useful
<Stormwind_mobile>
I used Linux mostly for many years, turned to windows when I began picking up gaming again, so I can use both.
<whitequark>
i solve this by only playing games that run on linux :p
<whitequark>
not to say it's a good approach tbh
<Stormwind_mobile>
I spent much more time with Linux shell, windows power shell is still arcane to me.
<Stormwind_mobile>
Well, there is/was also a lot of vendor specific tools that are windows only, e.g. AVR studio
<Stormwind_mobile>
Also Quartus, most EDA suites and such
<whitequark>
most CAD/EDA stuff runs under wine just fine
<Stormwind_mobile>
I began playing with msp430 on Linux first, actually.
<whitequark>
oh!
<whitequark>
you could finish the msp430 applet
<whitequark>
there's some reliability issue with the current applet code
<whitequark>
talk to tnt about it, I forgot everything
<Stormwind_mobile>
Well, using the energia tools, kind of TI's spin on Arduino. Without proper debugging, of course.
<Stormwind_mobile>
Msp430 applet in Glasgow?
<whitequark>
yes, there is one in a branch somewher