FPGA-Research-Manchester / FABulous

Fabric generator and CAD tools
https://fabulous.readthedocs.io/en/latest/
Apache License 2.0
147 stars 33 forks source link

Refactor file paths and imports in FABulous code #173

Closed KelvinChung2000 closed 4 months ago

KelvinChung2000 commented 5 months ago

This pull request refactors the file paths and imports in the FABulous code to improve code organization and maintainability.

This will be the first step into enhancing the API ability. This should make extending each building element much easier.

KelvinChung2000 commented 5 months ago

@mole99 I have something that I need for my research, and I will need to extend the FABulous in order to do so. I will start with something which should be useful in the long run, and I will slowly add things that I particularly need. Please let me know what you are aiming for in your project, and we might be able to help each other.

mole99 commented 5 months ago

Hi @KelvinChung2000, my goal is to automatically harden FPGA fabrics using OpenLane 2. Here is my work on that: https://github.com/EAS-DSD/fpga-stitching

It's not very useful so far as it only supports homogeneous fabrics and multiple scripts need to be called. For my master thesis I would like to improve it: I will probably create a custom step in OL2 that receives a tile map and generates the FPGA fabric for it with FABulous, then everything will be integrated into the OL2 run. Also, I will add support for heterogenous fabrics, as FABulous does anyway.

My first step will probably be to extend the FABulous API to allow the generation of an FPGA fabric without a config file by passing a Python data structure directly to FABulous.

What is it that you are aiming at?

KelvinChung2000 commented 5 months ago

I will extend the API for architectural exploration, such as changing the wire to the bus. I am now extending the API to allow me to generate a routing model without having any Verilog in the first place. So, I will be building APIs for everything required to create a nextpnr model, at least for now.

We have someone working on something similar; if I am matching the right people, @IAmMarcelJung might be someone you want to talk to.

IAmMarcelJung commented 5 months ago

@KelvinChung2000 Sorry, I am not doing anything related to the framework itself currently. Maybe you mean @EverythingElseWasAlreadyTaken or even someone else? I know there was/is also someone working with OpenLane, but I do not know his GitHub name, so I can't link him.

KelvinChung2000 commented 5 months ago

I thought you were that OpenLane person. Anyway, I will contact him directly on Skype and direct him here.

GennadiyKn commented 5 months ago

@KelvinChung2000 @mole99 I have almost finished the automated flow for the fabric generation. I need to fix some bugs and clean up the code then i can commit the extension. I will further work on optimizing the tile size and density, the automatic approach from the paper "Shrink my FPGAs" is already implemented in combination with OpenLane.

mole99 commented 5 months ago

@KelvinChung2000 thanks for connecting!

@GennadiyKn Hi, that sounds very interesting! Some questions from my side: Is your approach FABulous-centric or OpenLane-centric? Are you using OpenLane 1 or do you also make use of OpenLane 2's API? Maybe we should talk somewhere else so we don't spam this PR 😄️

GennadiyKn commented 5 months ago

@mole99 Hey, yes we can :) Let us connect via mail and then exchange further contact details. Mail: gennadiy.knis@stud.uni-heidelberg.de

mole99 commented 5 months ago

@GennadiyKn Sent you an email 👍️

EverythingElseWasAlreadyTaken commented 4 months ago

Could you please wait with this PR for #110 ? Since I've also done many file movements and also had to change all include statements.

KelvinChung2000 commented 4 months ago

Yes, that's what I am planning to do.