[libre-riscv-dev] pipeline sync issues

Luke Kenneth Casson Leighton lkcl at lkcl.net
Thu Apr 11 12:51:06 BST 2019

On Thu, Apr 11, 2019 at 6:49 AM Jacob Lifshay <programmerjake at gmail.com> wrote:
> one problem you will run into is what to do with logic that thinks it's
> assigning all of a Record, but after that logic has been generated, a new
> field is added. you'd have to either ensure you can't add new fields after
> code has visited the record or update already generated code.

 appreciated the heads-up.  it's turning out to be much more
challenging than that.  the layout needs to be updated as well...
except that that requires identification of the width of the object,
which may be any arbitrary object, also potentially modified after the

 so i tried looking at instead cut/pasting SyncFIFO and modifying it
to comprehend the ispec/ospec function... only to run into the
difficulty that SyncFIFO of course uses Memory()... and that in turn
implies an understanding of the *contents* of what is returned from
ispec/ospec in order to create a Memory as a mirror...

 ... Memory on the other hand could hypothetically be replaced by an
Array of ispec/ospec ... which is a major rewrite of SyncFIFO...

it's a massive chain of interlocked dependencies basically.


More information about the libre-riscv-dev mailing list