CPLD Fitting problem

May 23, 2005 3 Replies

Hello eveyone,



I have a design involving a Lattice ispMACH4384. The pinout is already fixed. I have to make a 5:1 24bit MUX. Unfortunately, the output pins are all located in GLB H, J and K. As the expert clearly sees, the 24bit MUX overloads the input signal capabilities of the GLBs (36 max.). So I want to split up the MUX into two cascaded MUXes. I tried the VHDL attribute syn_keep, but this is ignored by the fitter tools. How can I prevent the node collapsing for this 2 MUXes? Iam using ispLEVER with Synplify.



Regards Falk


Falk Brunner schrieb:

already

are

MUX

want to

the

Why do you want to use the KEEP attribute at all ? What does the fitter do you want to prevent, why do you want to prevent that? Some code?

Rgds Andr=E9

If you have a spare i/o pin attach the intermediate mux o/p to that. It is a dirty trick but usually works. I used to do something like this in the old days with Intel (later Altera) flexlogic which had a 24V10 structure and forever was running out of block fan-in signals. I don't often see problem now with the CPLDs I tend to use.

Similar vein - if you can register an intermediary o/p then you can get the same result. You can use opposite clock edges if your design uses a clocked o/p and the device supports if you want to avoid an extra clock latency.

You can also look at synthesiser switches but I'm slightly rusty of Synplify to tell you exactly the switches.

Taking some of the logic to files lower in your structure and ensuring no boundry optimisation can work as well.

You can also instantiate components such as final OR for the intermediate term may also give the desired result.

John Adair Enterpoint Ltd. - Home of Broaddown2. The Ultimate Spartan3 Development Board.

formatting link

Thanks for the valuable hints. I registered the second MUX on the falling edge and everything is fine. Quick'n'dirty. ;-)

Regards Falk

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required