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.

Inputs to a VHDL entity

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,

As a design methodology, would it be wise to register ALL inputs to a VHDL entity?
I don't mean only the entities that are inputs to the FPGA...but ALL inputs to ALL entities (except those that require zero latency for some reason).

To make a design in wich ANY input port to ANY entity is registered.
 

Inputs to the chip should be registered. But if you then pass the output of the register down 10 layers of heirarchy, you'll be going through 10 entities with what is just a wire (and it could be a really short wire - the heirarchy has nothing to do with the final routing), so they dont all need to be registered going into every single entity.

It wont hurt having them all registered though. just add latency (which may be unneccesary).

If you're developing a peice of IP that someone else may be using, it might be sensible to register the inputs at the top level at least, just incase the other user forgot to register his outputs.
So register all outputs.
 
  • Like
Reactions: shaiko

    shaiko

    Points: 2
    Helpful Answer Positive Rating
Thanks for the advice!

What about outputs?
Should we register after every time we pass a complex combinatorical circuit?
 

You should at least place pipeline registers, if timing closure can't be achieved otherwise.
 
  • Like
Reactions: shaiko

    shaiko

    Points: 2
    Helpful Answer Positive Rating
I take it as a yes...
Usually, at the time I write the code I don't even know what the target device will be,
This makes timing analysis harder.

When designing logic on an FPGA (not custom ASICs),
can you think of a "rule of thump" for how many combinatorical levels can be passed before it's advisable to reregister the signal?
(for speed lower than 200 Mhz).
 

it will really depend on the chip (and clock speed)
Newer devices will probably be quite a few luts. older ones not so many. you'll have to see from the timing analysis.
 
  • Like
Reactions: shaiko

    shaiko

    Points: 2
    Helpful Answer Positive Rating
With recent FPGA families, a LUT level involves e.g. 0.2 or 0.3 ns. So a lot of them can be cascaded between registers. The problem is however with complex logic, e.g. for arithmetic expressions. You'll find typical performance numbers for these complex units in FPGA data sheets.
 
  • 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