Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LUT6 instantiation support? #240

Open
peepo opened this issue Feb 21, 2024 · 1 comment
Open

LUT6 instantiation support? #240

peepo opened this issue Feb 21, 2024 · 1 comment

Comments

@peepo
Copy link

peepo commented Feb 21, 2024

does Trellis/Yosys support LUT6 instantiation for ECP5?

as in: LUT6 #(
.INIT(64’h0000000000000000) // Specify LUT Contents
)
LUT6_inst (
.O(O), // LUT general output
.I0(I0), // LUT input
.I1(I1), // LUT input
.I2(I2), // LUT input
.I3(I3), // LUT input
.I4(I4), // LUT input
.I5(I5) // LUT input
);

or similar?

if not, is there an intention to, in the future?

AFAICT Lattice Diamond does, but am having other issues there...

Apologies as Google has not as yet provided a solution, and as I have not instantiated previously, it might be quite difficult to prove either way??

thanks again

@Ravenslofty
Copy link
Collaborator

This repo isn't checked very often; for something like this it would have been better to ask on YosysHQ/yosys.

Anyway, to answer your question: for the ECP5, we consider the maximum LUT size to be a LUT4, so for a LUT6, you would need to construct it out of 4 LUT4s, plus a layer of PFUMX to turn these into LUT5s, then a L6MUX21 to get your final LUT6.

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

No branches or pull requests

2 participants