*** tpb <[email protected]> has joined #litex | 00:00 | |
*** jersey99 <[email protected]> has quit IRC (Ping timeout: 246 seconds) | 00:14 | |
*** lexano <[email protected]> has quit IRC (Ping timeout: 260 seconds) | 01:12 | |
*** Degi <[email protected]> has quit IRC (Ping timeout: 250 seconds) | 01:36 | |
*** Degi <[email protected]> has joined #litex | 01:36 | |
whitequark[cis] | finalization is such a broken concept in Migen | 03:58 |
---|---|---|
whitequark[cis] | (so broken that Amaranth does not have anything like it at all, intentionally, and never will) | 03:58 |
whitequark[cis] | the main problems with it is that (a) you only get one finalization order and if you don't like it, tough luck and (b) if you add another module to the tree in the finalizer, that one is never finalized | 04:14 |
*** FabM <FabM!~FabM@2a03:d604:103:600:2e60:8c7c:e8fb:7990> has joined #litex | 04:54 | |
*** sakman_ <[email protected]> has joined #litex | 06:34 | |
*** SpaceCoaster_ <SpaceCoaster_!~derek@user/spacecoaster> has joined #litex | 06:34 | |
*** TMM__ <[email protected]> has joined #litex | 06:37 | |
*** gurki_ <gurki_!~gurki@user/gurki> has joined #litex | 06:37 | |
*** TMM_ <[email protected]> has quit IRC (*.net *.split) | 06:39 | |
*** sakman <[email protected]> has quit IRC (*.net *.split) | 06:39 | |
*** SpaceCoaster <SpaceCoaster!~derek@user/spacecoaster> has quit IRC (*.net *.split) | 06:39 | |
*** minute <[email protected]> has quit IRC (*.net *.split) | 06:39 | |
*** gurki <gurki!~gurki@user/gurki> has quit IRC (*.net *.split) | 06:39 | |
*** SpaceCoaster_ is now known as SpaceCoaster | 06:39 | |
*** minute <[email protected]> has joined #litex | 06:46 | |
*** lkcl <[email protected]> has joined #litex | 07:52 | |
*** GNUmoon <GNUmoon!~GNUmoon@gateway/tor-sasl/gnumoon> has quit IRC (Remote host closed the connection) | 08:39 | |
*** GNUmoon <GNUmoon!~GNUmoon@gateway/tor-sasl/gnumoon> has joined #litex | 08:40 | |
*** gurki_ is now known as gurki | 08:44 | |
*** TMM__ <[email protected]> has quit IRC (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) | 10:13 | |
*** TMM_ <[email protected]> has joined #litex | 10:13 | |
*** GNUmoon <GNUmoon!~GNUmoon@gateway/tor-sasl/gnumoon> has quit IRC (Quit: Leaving) | 10:48 | |
*** GNUmoon <GNUmoon!~GNUmoon@gateway/tor-sasl/gnumoon> has joined #litex | 10:51 | |
*** lambda <[email protected]> has quit IRC (Quit: WeeChat 4.0.2) | 11:28 | |
*** lambda <[email protected]> has joined #litex | 11:28 | |
*** GNUmoon <GNUmoon!~GNUmoon@gateway/tor-sasl/gnumoon> has quit IRC (Read error: Connection reset by peer) | 11:48 | |
*** GNUmoon <GNUmoon!~GNUmoon@gateway/tor-sasl/gnumoon> has joined #litex | 11:48 | |
*** Wolfvak <Wolfvak!~Wolfvak@user/wolfvak> has quit IRC (Ping timeout: 260 seconds) | 13:34 | |
*** Wolfvak <Wolfvak!~Wolfvak@user/wolfvak> has joined #litex | 13:35 | |
*** Foxyloxy <Foxyloxy!~foxyloxy@cpc151593-shef16-2-0-cust343.17-1.cable.virginm.net> has quit IRC (Quit: Textual IRC Client: www.textualapp.com) | 14:05 | |
*** Foxyloxy <Foxyloxy!~foxyloxy@cpc151593-shef16-2-0-cust343.17-1.cable.virginm.net> has joined #litex | 14:09 | |
*** lexano <[email protected]> has joined #litex | 15:19 | |
*** cr1901_ <cr1901_!~cr1901@2601:8d:8600:226:6712:3a8e:7f64:543a> has joined #litex | 16:31 | |
*** cr1901 <cr1901!~cr1901@2601:8d:8600:226:bc7f:ccf1:49c0:41ee> has quit IRC (Killed (NickServ (GHOST command used by cr1901_!~cr1901@2601:8d:8600:226:6712:3a8e:7f64:543a))) | 16:34 | |
*** cr1901_ is now known as cr1901 | 16:34 | |
*** jersey99 <[email protected]> has joined #litex | 18:12 | |
jersey99 | whitequark[cis] I hear you .. What is final and when is final. It's a hack, but it's been working. If we have distinctive phases of the transpilation with some sort of callbacks, that can be nice! | 18:14 |
whitequark[cis] | I actually think that is the wrong approach entirely | 18:20 |
whitequark[cis] | Amaranth only has one phase: elaboration. but before it, you can do whatever you want with the objects, so that they know exactly what to elaborate to | 18:21 |
whitequark[cis] | by the time you are in def elaborate, there should be no order dependence, no mutation whatsoever, nothing like that | 18:21 |
whitequark[cis] | if you are doing something really complicated that needs multiple phases of preprocessing? great! I am sure you can express that as a normal Python program better than I could anticipate :) | 18:22 |
jersey99 | Like, how do you take care of automatic address assignment? | 18:29 |
jersey99 | The HDL you write needs a phase where addresses need to be assigned, it would be great if they can even be used back inside the HDL as constants. There is a parse phase that would be useful here. | 18:33 |
jersey99 | After thinking about it a little more, what I said can still be achieved with a single elaboration phase. The address assignment can be part of the elaboration stage and made available to the user at the end in some form | 19:00 |
jersey99 | simplicity is good | 19:00 |
jersey99 | Also, good to see you back. Is Amaranth a happening place these days? | 19:01 |
*** jersey99 <[email protected]> has quit IRC (Ping timeout: 246 seconds) | 19:06 | |
whitequark[cis] | you can look at the changelog | 19:23 |
whitequark[cis] | <jersey99> "After thinking about it a little..." <- nope | 19:23 |
whitequark[cis] | you assign addresses while constructing a representation of your design | 19:24 |
whitequark[cis] | this in no way relates to anything "HDL" | 19:24 |
whitequark[cis] | it's just manipulation of normal Python object | 19:24 |
whitequark[cis] | s/object/objects/ | 19:24 |
whitequark[cis] | and if all you want to do is to e.g. write JSON metadata containing your SoC's addresses, you don't ever need to make any netlist or AST or anything like that | 19:26 |
*** jersey99 <[email protected]> has joined #litex | 19:28 | |
*** FabM <FabM!~FabM@armadeus/team/FabM> has quit IRC (Ping timeout: 245 seconds) | 19:49 | |
*** cr1901_ <cr1901_!~cr1901@2601:8d:8600:226:b186:2e75:9ad1:f375> has joined #litex | 19:58 | |
*** cr1901 <cr1901!~cr1901@2601:8d:8600:226:6712:3a8e:7f64:543a> has quit IRC (Ping timeout: 246 seconds) | 20:02 | |
*** cr1901__ <cr1901__!~cr1901@2601:8d:8600:226:9897:2987:ba0c:c9f9> has joined #litex | 20:03 | |
*** cr1901__ <cr1901__!~cr1901@2601:8d:8600:226:9897:2987:ba0c:c9f9> has quit IRC (Read error: Connection reset by peer) | 20:05 | |
*** cr1901__ <cr1901__!~cr1901@2601:8d:8600:226:9897:2987:ba0c:c9f9> has joined #litex | 20:05 | |
*** cr1901_ <cr1901_!~cr1901@2601:8d:8600:226:b186:2e75:9ad1:f375> has quit IRC (Ping timeout: 246 seconds) | 20:07 | |
jersey99 | I am seeing that the philosophy is let the user figure out bells and whistles by empowering them with python object introspection. Is that right? | 20:15 |
*** cr1901__ is now known as cr1901 | 20:22 | |
jersey99 | I am now actually curious to see how one would do something like Litex's AutoCSR around Amaranth | 20:29 |
*** ElfenKaiser <ElfenKaiser!~deadsalmo@2a0a-a541-7975-0-b37f-5d86-29c9-d62b.ipv6dyn.netcologne.de> has joined #litex | 20:37 | |
jersey99 | AutoCSR in Amaranth would be some form of a trait/MixIn where member functions of it would introspect and provide information about some submodules, and the address assignment be something that it would return (in the form of some some Amaranth objects) which then Amaranth can use to generate RTL | 20:47 |
jersey99 | Looks promising! | 20:47 |
*** jersey99 <[email protected]> has quit IRC (Ping timeout: 246 seconds) | 20:52 | |
*** jersey99 <[email protected]> has joined #litex | 21:06 | |
*** cr1901_ <cr1901_!~cr1901@2601:8d:8600:226:9897:2987:ba0c:c9f9> has joined #litex | 21:26 | |
*** cr1901_ <cr1901_!~cr1901@2601:8d:8600:226:9897:2987:ba0c:c9f9> has quit IRC (Read error: Connection reset by peer) | 21:27 | |
*** cr1901 <cr1901!~cr1901@2601:8d:8600:226:9897:2987:ba0c:c9f9> has quit IRC (Ping timeout: 245 seconds) | 21:28 | |
*** cr1901 <cr1901!~cr1901@2601:8d:8600:226:9897:2987:ba0c:c9f9> has joined #litex | 21:30 | |
*** cr1901 <cr1901!~cr1901@2601:8d:8600:226:9897:2987:ba0c:c9f9> has quit IRC (Quit: Leaving) | 21:56 | |
*** cr1901 <cr1901!~cr1901@2601:8d:8600:226:4455:6f46:4ebc:3999> has joined #litex | 22:04 | |
*** TMM_ <[email protected]> has quit IRC (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) | 22:08 | |
*** TMM_ <[email protected]> has joined #litex | 22:08 |
Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!