Tuesday, 2022-12-13

*** gnucode <gnucode!~gnucode@user/jab> has quit IRC01:30
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc07:06
sadoon[m]I feel like this was discussed before but07:07
sadoon[m]I found two different "nmigen"s07:07
sadoon[m]One is now called Amaranth HDL07:08
sadoon[m]What's up with that?07:08
sadoon[m]I'm trying to learn nmigen for an upcoming project of mine and to be able to work on libre-soc stuff, I know ours is the one on gitlab because I see Luke and Jacob's names on the commits, but that other one seems weird07:12
*** ghostmansd <ghostmansd!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC07:40
*** octavius <octavius!~octavius@92.40.171.199.threembb.co.uk> has joined #libre-soc08:16
octaviusnmigen is the original project, and the official project (coming from m-labs) and the name "nmigen" is trademarked08:21
octaviushttps://m-labs.hk/gateware/nmigen/08:21
octaviusAmaranth is a fork made by one of the lead developers who left nmigen, but it was done in a way that breached the nmigen trademark. Sadly this fork had a great deal of publicity, so most people think this is the continuation of nmigen. It is not!08:23
octaviuslkcl may clarify here, but Sebastien from m-labs authorised for us to maintain nmigen (see the gitlab repo)08:24
*** ghostmansd <ghostmansd!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc08:53
lkclsadoon[m], amaranth is an Unlawful Trademark-violating fork of nmigen09:58
sadoon[m]I suspected as much09:59
sadoon[m]I remember some conversation happening about that09:59
lkclthe repository contains things like "Amaranth (formerly known as nmigen") which creates what's called a "Trademark Alias"09:59
lkcl(an "also-known-as")09:59
sadoon[m]Yeah09:59
lkclvery interestingly - it is really really brief - blink and you miss it -09:59
lkclthe latest Marvel "She-Hulk" episodes cover this10:00
lkclShe-Hulk proves in court that she was using the name "She-Hulk" and the judge says, "Ownership is granted to Defendent, **ALSO KNOWN AS** She-Hulk"10:01
sadoon[m]Nmigen looks quite cool and despite never using it before I could understand the example code almost fully10:01
sadoon[m]lkcl: Lol10:01
lkclyes, it's really "blindingly obvious" and natural10:01
sadoon[m]Can't say the same about VHDL :p10:01
lkclyeah VHDL takes getting used to10:02
sadoon[m]SystemVerilog was nice to work on when I did work on it but let's see how nmigen goes10:02
lkcli trained / learned electronics at the gate level10:02
lkclso i thoroughly recommend using yosys "show top" command10:02
sadoon[m]I'll try that10:02
sadoon[m]Is the verilog generated code readable in any way?10:03
lkclget the nmigen design converted to verilog, then "view" it.  you need graphviz and xdot installed, which the devscripts automatically do10:03
sadoon[m]Or is it similar to assembly10:03
lkclyes it is10:03
sadoon[m]Nice!10:03
lkclnames of any variables are preserved, but any intermediary expressions are given signal names "$1", "$938" and so on10:03
lkclwhich is why "show top" (or "show <press tab twice and get a list of modules>") is really useful10:04
lkclsadoon[m], https://libre-soc.org/docs/learning_nmigen/10:04
sadoon[m]Yeah I bookmarked it10:04
sadoon[m]Will start after work10:05
sadoon[m]Blinky and such10:05
lkclblinky's fun-but-not-immediately-obvious10:05
lkclthe HDL is completely abstracted out from the platform (your target FPGA, or even an ASIC platform)10:06
lkclthe interface is the pin-definitions which are again given in "abstracted" form, such as "give me one UART pinset please"10:06
lkclor "give me SPI interface 2" please10:06
lkclnmigen - just like migen - connects the two together10:07
lkclthe abstraction ensures that you don't end up wasting time writing completely unportable HDL that is incapable of being run on e.g. a Xilinx FPGA because your entire HDL is chock-stuffed with Lattice ECP5-isms10:07
lkclso you:10:08
lkcl* declare an instance of Blinky()10:08
lkcl* declare an instance of the FPGA "Platform"10:08
lkcl* the "platform" instance is passed to the Blinky "elaborate()" function10:09
lkcl* the elaborate function requests an "LED" I/O pin from the platform instance10:09
*** ghostmansd <ghostmansd!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC10:13
sadoon[m]That's very nice10:27
programmerjakea more complex but still quite simple example that demos using the nmigen platforms: https://salsa.debian.org/Kazan-team/mirrors/utils/-/blob/991b9e0b1165054fa0144ffc6347e9c25fd4f34b/uart_demo.py10:29
programmerjakeI got that to program a FPGA from inside gitlab-ci10:29
programmerjakeby simple I mean not a whole cpu, not that you can see it all on one page or anything...10:30
sadoon[m]I'll bookmark it as well10:34
sadoon[m]I like blinky or a simple adder to start because I like to see the most basic form of the workflow, it's less about the language itself10:35
sadoon[m]i.e. getting the pinmap complete, assigning a clock, inputs and outputs10:35
sadoon[m]My usual hello world is a counter that displays on 7-segments10:36
sadoon[m]So that covers clocks, interfacing, and pin mapping10:36
programmerjakewell, the url i posted is a transmit-only uart that writes some text over and over, so not too complex (except maybe the frequency conversion logic...)10:37
sadoon[m]I bookmarked it anyways, the more examples the better :)10:37
programmerjake:)10:37
lkclprogrammerjake, that was an awesome bit of coding11:56
lkcli used it for the University of Oregon demo for the India students11:56
lkclit worked really well and allowed the students to get at least some kind of "interactivity" by changing the ASCII text, they could get feedback11:57
lkclsadoon[m], basically it's a Finite State Machine that implements RS232/Uart, "from scratch".12:20
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC13:11
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.53.103> has joined #libre-soc13:12
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.53.103> has quit IRC13:17
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.160.249> has joined #libre-soc13:18
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.160.249> has quit IRC13:46
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc13:46
*** octavius <octavius!~octavius@92.40.171.199.threembb.co.uk> has quit IRC14:06
*** choozy <choozy!~choozy@75-63-174-82.ftth.glasoperator.nl> has joined #libre-soc14:46
*** octavius <octavius!~octavius@92.40.171.202.threembb.co.uk> has joined #libre-soc15:19
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC16:07
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc16:07
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC16:29
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.160.5> has joined #libre-soc16:30
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@176.59.160.5> has quit IRC16:49
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc16:50
*** ghostmansd <ghostmansd!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc18:43
*** gnucode <gnucode!~gnucode@user/jab> has joined #libre-soc19:03
lkclghostmansd, 939 looks good. no point having 1000 EUR "on the table" - it means nobody can get that money until absolutely every single task in the entire Grant is 100% completed19:31
lkclbest to allocate it to "something"19:31
*** gnucode <gnucode!~gnucode@user/jab> has quit IRC19:40
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC19:40
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc19:42
ghostmansddone, assigned to cavatools test API support (985)19:50
programmerjakemeeting in 9min19:51
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC19:55
*** gnucode <gnucode!~gnucode@user/jab> has joined #libre-soc19:55
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc19:59
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC20:07
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc20:07
*** ghostmansd <ghostmansd!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC20:09
*** ghostmansd <ghostmansd!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc20:32
*** octavius <octavius!~octavius@92.40.171.202.threembb.co.uk> has quit IRC22:24
*** choozy <choozy!~choozy@75-63-174-82.ftth.glasoperator.nl> has quit IRC22:43
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC22:52
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has joined #libre-soc22:53
*** ghostmansd <ghostmansd!~ghostmans@broadband-109-173-83-100.ip.moscow.rt.ru> has quit IRC23:58

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