??? 10/15/07 21:56 Read: times |
#145790 - as has been recommended ... Responding to: ???'s previous message |
Generally speaking, thinking in terms of building blocks, as once was necessary when one had to build logic out of building blocks, i.e. 74xxNNN, 4000-CMOS, or 10/100-K ECL stuff, is not "good form" in the context of programmable logic. Specifying the desired behavior is what's "in" these days. This works remarkably well for CPLD's and, with a little experience, often works quite well for FPGA's too. As the tools develop, they become smarter, and, with the additional "smarts," they can do a better job of estimating the timing, particularly post-fit, where it's pretty tricky to do it manually.
At one time, it was pretty desirable to use library components rather than specifying behaviors. Today, however, I prefer to specify behaviors for increasingly large blocks, and then concatenate the blocks on a top-level schematic, which most of my clients can then understand. The strength of this lies in that the tools can provide pretty good timing estimation regardless of logic configuration. The problem with using the old TTL/CMOS/ECL datasheets for estimating timing was that each datasheet claimed all the available headroom for itself. The result was that, in a complex circuit, the range between minimal and maximal timings often exceeded reality by a factor of 100. Using typical timings was risky, using all-maximal timings was just plain foolish. The current programmable logic is cheaper and the tools make design and implementation quicker and easier, though still not trivial. It's not like writing software, and it's not like stringing together TTL either. Unlike software, if it's not right, it often won't work at all. It can't very well be developed "incrementally" the way software is often done. Having lived through the *NIX CAE rage in the early '80's, I can assure you that hardware, no matter how it's designed, will never work at the level of quality that was prevalent in the electronic CAE field before 1995. Back then, they got the user interface working to where they could "snow" their superiors, and then relied on the fact that they could lie until the "next release" would compile, whereupon it was shipped with the promise that they'd "fix it in the field." (Yeah ... Right!) RE |