Would timing tool check this path?

Status
Not open for further replies.

kaz1

Full Member level 6
Joined
Aug 15, 2019
Messages
398
Helped
19
Reputation
37
Reaction score
55
Trophy points
28
Location
UK
Activity points
2,282
c1 and c2 are constants (wires).
sel selects one of them for output(out). There is timing path from sel register to out register but none from c1/c2 to out
How does Quartus or Vivado check the c1/c2 to out path since it is not a timing path by definition:

.


 

Attachments

  • timing_path.png
    6.4 KB · Views: 183

It doesnt matter if C1/2 are 1,2 100 or 500 bits. Each output is still only a function of SEL, and 1 register is needed per bit.
 

Maybe a simple example will help clarify what others have been writing:

for example if c1 and c2 are:
c1 = 0110
c2 = 1011

then the mux (in verilog syntax)
always @(posedge clk) out <= sel ? c1 : c2;

the mux specifies the following and-or logic for generating out
out = sel & 0110 | ~sel & 1011;

expanding the logic to select each bit of the bus by the sel signal:
out = { sel & 0, sel & 1, sel & 1, sel & 0} |
{~sel & 1, ~sel & 0, ~sel & 1, ~sel & 1}
sel: invert, same, constant, invert

looking at each bit separatedly you can see that the following applies to each bit of out
this can be done using a truth table (in this case it's easy to see just written out)
out = {~sel, sel, 1, ~sel}

out is based entirely on sel or a constant there isn't a path from a c1 or c2 that exists in
the resulting circuit (after synthesis).
 
Reactions: kaz1

    kaz1

    Points: 2
    Helpful Answer Positive Rating
Thanks ads-ee,

That makes very good sense. What comes out from your reply is that after synthesis the constant values are translated direct to logic and no node exists as a separate constant.
Without considering synthesis I guess this doesn't apply. That is why I mentioned "away from tools or platforms".

I think others replied in a similar way but less direct as far as I see.
 

I am finally writing this recap if you don't mind.
The fact remains that when we say '0' or '1' as constants before synthesis or '0' & '1' after synthesis is really same concept. Only the diagrams may differ. Eventually they are wires connected to source or ground and entering the logic decision.

As such timing concepts still apply but since wiring to source/gnd is not a big deal and doesn't really need extra routing effort then I assume timing is going to be ok and nobody will need to care about defining such paths or not for assessment.
Thanks to all replies.
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…