With model-based design, UAV engineers develop and simulate system models
comprised of hardware and software using block diagrams and state charts, as
shown in Figures 1 and 2. They then automatically generate, deploy, and verify
code on their
embedded
systems. With textual computation languages and block diagram model tools,
one can generate code in C, C++, Verilog, and VHDL languages, enabling
implementation on MCU, DSP[], FPGA[], and ASIC hardware. This lets system,
software, and hardware engineers collaborate using the same tools and
environment to develop, implement, and verify systems. Given their auto-nomous
nature, UAV systems heavily employ closed-loop controls, making system modeling
and closed-loop simulation, as shown in Figures 1 and 2, a natural
fit.
Testing actual UAV systems via ground-controlled flight tests is
expensive. A better way is to test early in the design process using desktop
simulation and lab test benches. With model-based design, verification starts as
soon as models are created and simulated for the first time. Tests cases based
on high-level requirements formalize simulation testing. A common verification
workflow is to reuse the simulation tests throughout model-based design as the
model transitions from system model to software model to source code to
executable object code using code generators and cross-compilers.
Used during system design
Reused as an entry point for software
design
Elaborated on during detailed software design (for example, by
discretizing continuous time blocks and changing double-precision data to
single-precision or fixed-point)
Used as input for
embedded code
generation
The test cases for system requirement validation likewise are
reused on the model, source code, and executable object code to perform
functional testing and collect coverage metrics.
refer to:
http://mil-embedded.com/articles/transitioning-do-178c-arp4754a-uav-using-model-based-design/