Skip to content

Conversation

@ThomasPluckMU
Copy link
Collaborator

HDL21 is a Python-based HDL which makes Verilog style module definitions and routing simple and intuitive where it is then boiled down to a protobuf interchange format that can be translated into any desired format, eg. SPICE netlists, GDS Layouts, etc.

My main interest in p-computing is that I need to build large PSL circuits fast, and it'd be good to have it as a part of one-stop shop where folks could get the circuit of their hearts desire and run whatever algorithms they want against it.

To this end, this PR will go out of draft once it has the following deliverables:

@ThomasPluckMU
Copy link
Collaborator Author

So for simplicity, I've decided to just borrow lessons from the HDL21 core to implement what is useful, generally we have a @psl.pcircuit decorator which produces named instances of PCircuit and @psl.module decorator which is a big port handling object ModuleContext in psl/context.py which effectively keeps track of multiple @psl.pcircuit instantiations so that they be connected with the modes with the ConnectionType class in p_kit/psl/port.py:

Directly as in the Onizawa's Framework [1]
Camsari's COPY gates [2]
a weighted version of COPY gates (which apparently is an outstanding engineering problem when I spoke with Camsari).

There are also two synthesis modes sparse which returns a directed edge list and dense which returns a full numpy array.

@ThomasPluckMU ThomasPluckMU marked this pull request as ready for review February 23, 2025 12:22
Copy link
Member

@gcattan gcattan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ThomasPluckMU thank you for your hard word.
Please find below a few comments.

…Circuit, added heatmap, examples, tidied docs, deleted .core, formatted with black .
@ThomasPluckMU
Copy link
Collaborator Author

Okay, I think this addresses most of the points that came up in review.

Let me know if anything else comes up that's of interest to you.

I could try to take a stab at #62 unless you want to leave that for the next PR?

@gcattan
Copy link
Member

gcattan commented Feb 23, 2025

Sure. We can keep #62 for another PR :)

I see the Ci is failing:

image

Do you also want to keep the util module at the end?

@ThomasPluckMU
Copy link
Collaborator Author

Works on my computer! (Will patch this tomorrow)

Copy link
Member

@gcattan gcattan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your work @ThomasPluckMU !
Looking forward to your next contribution

@gcattan gcattan merged commit 8d699a4 into IBM:main Feb 24, 2025
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants