cr1901_modern has quit [Ping timeout: 250 seconds]
cr1901_modern1 has quit [Quit: Leaving.]
cr1901_modern has joined #m-labs
balrog has quit [Quit: Bye]
balrog has joined #m-labs
rohitksingh_work has joined #m-labs
_whitenotifier-f has quit [Ping timeout: 268 seconds]
_rht has quit [Quit: Connection closed for inactivity]
<rjo>
whitequark: there is a wrinkle to the nmigen syntax. if you populate multiple Module()s concurrently, the python indentation context and the per-Module contexts can easily conflict (with m1.If(): .. with m2.If(): ..). inheriting from Module and thus primarily just having the "self" Module context in get_fragmet would make that a bit harder.
<rjo>
and less likely to happen.
rohitksingh_work has quit [Ping timeout: 246 seconds]
rohitksingh_work has joined #m-labs
rohitksingh_work has quit [Ping timeout: 272 seconds]
<GitHub-m-labs>
artiq/master a7d4d3b Robert Jördens: ad9910: CONT_RECIRCULATE -> CONT_RAMPUP
<whitequark>
rjo: why are you populating multiple modules concurrently?
<rjo>
whitequark: i am not, i don't want to, and i don't want anybody to try. but it is made possible and seems to be the intention of the style of instantiating Module in get_fragment().
<whitequark>
rjo: the intention is to separate the DSL from the IR, and more so, remove the Module magic from user classes
<whitequark>
the former does not serve a major user facing purpose, the latter definitely does.
<whitequark>
for example, with your new DSL (which I like!) it is not possible to have a field called "d" in classes that would hypothetically inherit from Module
<rjo>
whitequark: yeah. ok. but then we should explicitly point out that populating logic for multiple Module()s concurrently can quickly lead to bad and confusing style.
<whitequark>
rjo: agree
<whitequark>
rjo: btw. the new Part/Array implementation uses a generic legalization algorithm. so it uses no intermediate signals.