Make PipelineC LUT aware #216
Replies: 13 comments
-
Related paper: https://www.icsi.berkeley.edu/~nweaver/papers/2003-cslow.pdf |
Beta Was this translation helpful? Give feedback.
-
Good idea for next stages of the project aka ultra fine tuning. BTW. synth tools should infer regs automatically. |
Beta Was this translation helpful? Give feedback.
-
Yeah I think suggesting something like some basic FPGA arch modeling as part of pyrtl - to accompany their asic modeling - makes alot of sense (like you said pick a LUT-N arch of some sort) |
Beta Was this translation helpful? Give feedback.
-
In context there is the lowest level of feedback (which pyrtl recently newly can provide) which is Then there is slightly better There is next a currently-broken And then how fun to think about this |
Beta Was this translation helpful? Give feedback.
-
Or well I suppose for LUT level you dont need to know what part of the HDL it maps from if you know the delays across LUTs, etc - are modeling those paths - can probably just start turning on regs in the comb. path based on delay alone. |
Beta Was this translation helpful? Give feedback.
-
To me initially it shouldn't support all kinds of chips, only the ones
supported by open source tools (yosys and nextpnr).
Having all the data at hand, a better tool can be designed. Then, when it
works, it could be ported to commercially supported chips.
…On Fri, Nov 19, 2021 at 11:33 AM Julian Kemmerer ***@***.***> wrote:
Or well I suppose for LUT level you dont *need* to know what part of the
HDL it maps from if you know the delays across LUTs, etc - are modeling
those paths - can probably just start turning on regs in the comb. path
based on delay alone.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#45 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACBHVWKM6ITCP4JAFIXBFDLUMZN4TANCNFSM5ILGJJ4Q>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
I think if we took every PipelineC 'raw VHDL' pipelineable primitive, for ex. simple add operator (can divide up an N bit add into however many stages you want*). What I would want to know is something like Maybe could start at the maximum and reverse - what is the upper limit of pipelining a ex. 64b adder - ex. how many bits per stage maps to the highest fmax pipeline I did some experimenting once and there are defintely things like idk a Blah blah let me know if this rant makes sense |
Beta Was this translation helpful? Give feedback.
-
Remembered this issue why not call it the -O3 flag and say 'now your rendered HDL is unreadable/a netlist of LUTs'? So the PipelineC HDL gets synthesized to LUTs first -> re imported as a PipelineC Dataflow to be pipelined= each LUT/~prim is a C func kinda thinking |
Beta Was this translation helpful? Give feedback.
-
To be clear it is possible today to write C functions wrapping raw VHDL that instantiated LUTs |
Beta Was this translation helpful? Give feedback.
-
Thanks Bartus: |
Beta Was this translation helpful? Give feedback.
-
This Bartus' paper is so good |
Beta Was this translation helpful? Give feedback.
-
Likely part of #46 and #48 too Once dealing with device specific netlists, might as well also see if tools provide .sdf output which should detail timing of each LUT IIUC Thanks @suarezvictor for bringing up |
Beta Was this translation helpful? Give feedback.
-
A whole world of optimizations exists at the LUT level. Especially post PNR.
@suarezvictor was quick to point out that FPGAs have essentially 'free' registers that make pipelining easy. You could even turn on the registers between every single LUT for maximum FMAX.
Beta Was this translation helpful? Give feedback.
All reactions