[libre-riscv-dev] pipeline sync issues

Luke Kenneth Casson Leighton lkcl at lkcl.net
Thu Apr 11 03:57:59 BST 2019


hiya jacob,

ok so i am starting to understand why you went with the "visitor"
function, as to support the deployment of SyncFIFO as a building-block
it will be necessary to have a data-scruncher and unscruncher, which
means being able to support the free-form
list-plus-objects-plus-records-etc of the 'eq()' function to perform
*other* tasks... such as... ooo... scrunching data down into flat
linear *single signal* formats, and unpacking them again afterwards.

that is basically what ArrayProxy, Cat, and eq assignment are all
supposed to be for, as part of nmigen.

in effect what all of that means is the *duplication* of code that
*already* exists in nmigen, but that does not have the exact and
precise capability that we need.

last week i spoke to whitequark on irc about the possibility of
extending Record to support object-style dynamic alterations and
assignments: effectively adding __getattr__ and __setattr__ as a
transparent means and method of *dynamically* altering (adding to)
Record's field dictionary.

so you were along the right lines with the idea of using Record...
except it's an *augmented* version of Record that we need.

i'm going to try some code-morphs to get vaguely in the right direction, ok?

l.



More information about the libre-riscv-dev mailing list