Filament/ADL Integration #346
Replies: 2 comments 3 replies
-
I used MachSuite to generate some HLS designs - for now, just
It might be more trouble than it is worth to figure out what source-level constructs each of these ports map to, but not impossible. The
My thinking is that if we want to make integrating with HLS designs easier on an RTL level, we might be limited by the annoying-to-use interfaces exposed by the compiler. It also might not scale well for designs that have more complicated data structures as inputs. |
Beta Was this translation helpful? Give feedback.
-
XLS DemoI think we were right; XLS seems easier to work with.
I thought multiplication would be a good and simple example because I wanted to parameterize this over pipeline stages (latency). I wasn't sure how the XLS compiler would implement multiplication, and thought that it might split up the computation over a few pipeline stages. The Verilog that gets emitted ends up being a little silly:
The multiplication is implemented combinationally and no computations happen until the last stage. I was having issues compiling XLS's StepsI think working through this example by hand reveals some important steps in going from ADL -> Filament that we would need to generalize in order to implement #364. I'll list them here with code snippets, though a working example is in the repo.
In general, I think nothing too crazy happens at any of these stages. One thing that might require some thinking is step 4, where we need to do something to transform the inputs and outputs. I guess the tool could stop at the |
Beta Was this translation helpful? Give feedback.
-
Exploring how we can use Filament as a way to integrate designs generated from tools like HLS and XLS. This is a running, exploratory-type thing so I figured it'd be better to put in a discussion rather than issues.
Beta Was this translation helpful? Give feedback.
All reactions