[libre-riscv-dev] [Bug 178] first coriolis2 tutorial, workflow and "test project" page

bugzilla-daemon at libre-riscv.org bugzilla-daemon at libre-riscv.org
Thu Mar 12 11:23:20 GMT 2020


http://bugs.libre-riscv.org/show_bug.cgi?id=178

--- Comment #205 from Jock Tanner <tanner.of.kha at gmail.com> ---
(In reply to Luke Kenneth Casson Leighton from comment #204)
> ermmm ermermerm i like the idea of keeping things in an external file
> 
> *thinks*... actually, CSV format would be better, because it's 3 lines of
> code:
> 
>     import csv # standard python library
>     with open(file_path, 'r') as csvfile:
>         return list(csv.DictReader(csvfile))
> 
> remember, we need to minimise the dependencies (see HDL_workflow, and see
> discussion we just had!)
> 
> in CSV format, it could be:
> 
> SIDE,pinname,offset,comment
> NORTH,clk,,,
> 
> the defaults would be, if there is no offset, to make one.  the order of
> the pins in the CSV file would define the order in which they appear on
> that side.
> 
> i think that would work really well.  later we can consider actually
> embedding
> the CSV file contents *into* the docstring (or a function) of the actual
> nmigen source code.

Looks like I implied too much.

First of all, I thought of keeping all the ioring logic intact as of a
requirement, or at least as a generally good approach. That's why I didn't
consider adding, say, CSV support into 'coriolis2.ioring' or
'Configuration.loadConfiguration()'.

Second, I don't think that introducing an additional file with a special format
would do us any good. I suppose that 'coriolis2.ioring' is ok as it is for
passing pad configuration between stages. If I am just not aware of the issues
with it, please point me in a right direction.

What I did thought is necessary, is to eliminate the need for the user to
configure the pads at all, or at least to configure them separately from
top-level logic. I thought we can just set up formal rules (like putting pins
with names ending on '_i' to the left, '_o' − to the right), and implement the
reusable 'create_pads()' to inspect the list of pins according to these rules
and generate 'coriolis2.ioring'.

Of course, I'm not yet proficient enough in the current workflow to see all the
right implications. So I have to ask of you to specify my task.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the libre-riscv-dev mailing list