Forum Discussion
Altera_Forum
Honored Contributor
13 years ago --- Quote Start --- How I imagine the synthesizer would implement this is with a multiplexer. Therefore, the combinational logic should be very simple. So, I don't understand why it takes so long to settle. I can't think of any other logic that would be faster. --- Quote End --- This is what I'd say as well. Are b, and d* registers? --- Quote Start --- What's stranger to me, however, is the amount of time it takes for c to even begin to change from dn to dn+1. It's about 10 ns which means that the signal b must be taking a route of about 3 metres. 3 metres in a chip that is about a square inch in size! Unless for some reason the signal does not travel at the speed of light. --- Quote End --- The electrical field travels at speed of light. Though the speed of light in sillicon dioxide is slower than in vacuum. But that's a minor issue. The big issue is that the transistors take time to change state. That is the main contributor to the propagation delay. Since you're using a very old Quartus, I assume you're also dealing with a very old FPGA/CPLD. A 10 ns delay even for such simple logic does not look too surprising. --- Quote Start --- This last problem could be solved by somehow forcing the fitter to choose a shorter route. I had guessed that this is what timing assignments did. But are you saying that timing assignments cannot be used to solve my problem? Your sole suggestion seems like something that would simply tell the fitter to make all routes shorter rather than singling out a single problematic path. --- Quote End --- Your thinking is correct. Quartus does have timing driven synthesis and fitting: you specify timing constraints and the software tries to optimize the design as much as needed until your constraints are met. And this is the default approach nowadays. But with such an old version as 5.0.. IIRC it doesn't work so well. That's why I suggested a more modern Quartus and TimeQuest.