As model driven and meta-model driven design take hold, interesting paradigms for complex system design and verification are evolving. The line between modeling, design and verification is actually blurring.
As an example, when one builds an architectural model for a processor, the model can often be used for simulating the processor, for synthesizing the processor to RTL (often using a VHLS engine), for generating C/C++ tools as well as for automating verification by generating instruction sequences (test cases) and reference results.
Generally a particular team may only be interested in performing one of the above activities. However, the model driven approach results in "free" side-effects.
Again, taking the above example, a verification team creating a processor architecture model for the purpose of verification, will in fact be creating tools like compilers, assemblers and linkers, simulators and the ability to actually synthesize the model to RTL as a "side-effect"
When different teams use different modeling strategies (which is not that uncommon), this results in teams racing their models, where models as they mature are also used continuously to check each other !
Racing models then is an interesting agile technique to leverage competitive collaboration in an organization using model driven
development.
用户1406868 2013-9-13 12:01