Eugene
|
In my opinion, a specification quantifies functionality by defining: 1) performance metrics, 2) interfaces, and 3) minimal acceptable performance. I believe the combination of behavioral models and simulation test benches (also known as an executable specification) is the best mechanism for defining performance metrics and interfaces. For example, with a behavioral model of an LNA in a noise figure simulation test bench, there is no way to confuse double side band and single side band noise figures. In this application, tolerances and drifts are not the issue; all that matters is how noise figure is measured. The measurement defines the specification. One convenient feature of a true executable specification is the ability to replace a behavioral model with the detailed model of a particular block. Thus, if the behavioral model of a programmable gain stage produces increasing gains while the device level model produces an unrecognizable gain pattern for the same command sequence, chances are the detailed model has the bits in the command word reversed. The executable specification detects interface errors. The executable specification is indeed a precise way to implement a specification but it is unwieldy. A specification is also a negotiation tool. The systems engineer uses the specification to budget impairments and hardships among the designers of the various subsystems. Negotiations take place in meetings where a nimble summary of the complete system is essential. Furthermore, even the fastest simulators and models are usually too slow for exploring the initial design space. In these applications, the spreadsheet is unbeatable. The spreadsheet can summarize minimal acceptable performances that account for tolerances and drifts. The spreadsheet can also couple various metrics as well as summarize measurements, simulations, and requirements. I believe executable specifications and classical spreadsheets are both important in writing precise and practical specifications.
Maintaining a specification in two formats requires time and discipline. I think tools linking the two formats would sell well. In the absence of better links, I sometimes keep my behavioral models and spreadsheets synchronized by writing visual basic routines to automatically create parameter files that my VerilogA files can read.
|