Maybe @ben_eater, @eevblog, @benheck would know :)
-
Show this thread
-
Replying to @ferristweetsnow @ben_eater and
/cc
@marcan42 for FPGA wizardry1 reply 0 retweets 1 like -
Replying to @gsuberland @ferristweetsnow and
The answer is yes, it matters just like on an FPGA, and you can certainly get into sticky situations with setup/hold times. But as long as all your logic is the same type it should work well together in the slow case, and then it's just a matter of how high you can clock.
1 reply 0 retweets 1 like -
Replying to @marcan42 @gsuberland and
Discrete logic designs are rarely run at anywhere past a MHz or two, while FPGA designs are often pushing 100MHz. It's also much harder to simulate a physical circuit to come up with a theoretical timing model, because you don't know things like wire capacitance.
1 reply 0 retweets 1 like -
Replying to @marcan42 @gsuberland and
On an FPGA the physical layout is fairly uniform and you can derive a "safe" timing model that is consistent (in practice you can often go much faster than the timing report says, but no guarantees). With breadboard designs, well, just try and see.
1 reply 0 retweets 1 like -
Replying to @marcan42 @gsuberland and
Even at slow clocks though, you can definitely have timing and signal integrity problems. For example, bad clock routing can cause ringing/reflections and double-clocking of logic. In general mixing fast and slow logic can be a bad idea.
1 reply 0 retweets 1 like -
Replying to @marcan42 @gsuberland and
If you use fast logic then it's going to have fast rise/fall times, and that higher dV/dt can cause problems with clocks or clock-like signals if the signal integrity is not up to par. Slower buffers can mitigate this at the expense of being, well, slower.
1 reply 0 retweets 1 like -
Replying to @marcan42 @gsuberland and
Of course you can mitigate this with things like well placed resistors to limit current and thus rise times; sometimes adding capacitance helps too.
1 reply 0 retweets 1 like -
Replying to @marcan42 @gsuberland and
An example where mixing logic types causes a problem is with hold times. If your hold time is zero or negative, then you're good. But logic with positive hold times requires the prior stage to have a longer propagation time.
1 reply 0 retweets 1 like -
Replying to @marcan42 @gsuberland and
If you have a really fast chip driving data into a chip with a slow hold time, the input to the second chip can change after a clock faster than the chip's hold time and break timing. Families are designed to work well together with propagation time > hold time, but if you mix...
1 reply 0 retweets 1 like
BTW, where I say propagation delay I really mean clock-to-output time, and this is all really about clocked logic (flip-flops). For combinatorial logic portions, adding more or slower logic just means your maximum clock speed goes down.
-
-
Replying to @marcan42 @gsuberland and
Thank you very much for the detailed replies, this totally clarifies it for me! :)
0 replies 0 retweets 2 likesThanks. Twitter will use this to make your timeline better. UndoUndo
-
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.