Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

What FPGA logic do constants consume

Status
Not open for further replies.

shaiko

Advanced Member level 5
Joined
Aug 20, 2011
Messages
2,644
Helped
303
Reputation
608
Reaction score
297
Trophy points
1,363
Activity points
18,302
Hello,

Suppose I have a large set of ~6000 vectors ( 16 bits each ) which I use as coefficients in my design.
There's no address decoding (each set is connected to a specific logic block) and all sets are constant during compile time.

Will these be implemented as simple wires to VCC / GND or there's a chance that the tool will use LUTs / Registers / RAM for some reason ?
 

If it's appropriate to store the constants in ROM (initialized RAM), you can do that. The tools won't do that "for some reason" rather than your decision.
 

If it's appropriate to store the constants in ROM (initialized RAM), you can do that.
I don't want to do that.
I need all values to be accessible simultaneously and (obviously) would prefer it consumes no resources other then routing to VCC / GND.

Again,
I have a large array of N vectors and N circuits.
Each vector is connected to a different circuit.
The vectors are all constant during compile time.

Intuitively, I see no reason why these constant vectors shall be implemented by something other than simple wires to either VCC or GND.
And this is exactly what I want...but I'm not 100% sure.

Do you agree that that's what would happen ?
 

Why not compile the design, and take a look?
 

I need all values to be accessible simultaneously and (obviously) would prefer it consumes no resources other then routing to VCC / GND.
Why did you ask about RAM then?

You'll surely get GND/VCC wires in RTL netlist. During synthesis, all possible logic minimizations will be made, pulling the constants into the logic terms. (Unless the logic blocks are locked).
 
  • Like
Reactions: shaiko

    shaiko

    Points: 2
    Helpful Answer Positive Rating
They just get connected to VCC/GND

Not really, it is more complicated than that. You don't want to have any logic lumped to the ground/vdd wires as they would bounce a lot. You'd typically provide a constant that comes from a special gate called tiecell. There are cells for tie high and tie low. The FPGA vendor might hide that from you, but internally that is how it works.
 
  • Like
Reactions: shaiko

    shaiko

    Points: 2
    Helpful Answer Positive Rating
Not really, it is more complicated than that. You don't want to have any logic lumped to the ground/vdd wires as they would bounce a lot. You'd typically provide a constant that comes from a special gate called tiecell. There are cells for tie high and tie low. The FPGA vendor might hide that from you, but internally that is how it works.

Exactly this....

Shown implemented in Vivado like this:
Capture.PNG
Capture2.PNG
 
  • Like
Reactions: shaiko

    shaiko

    Points: 2
    Helpful Answer Positive Rating
Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top