While doing research on articles for ESL I came across several references to MATLAB and Simulink from The MathWorks. These products were identified as tool for algorithmic development and simulations in the early stages of system design. I thought I would investigate further.
The MathWorks was founded in 1984 and employs more than 1,000 people worldwide, with headquarters in Natick, Mass. The MathWorks produces technical computing and model-based design software for engineers, scientists, mathematicians, and researchers across a board range of industries. In 2003 The MathWorks had revenue of around $240 million. The firm claims more than 1,000,000 customers in over 100 countries, on all seven continents. The MathWorks products are in use at 3,500 universities.
The two core packages are MATLAB, used for performing mathematical calculations, analyzing and visualizing data, and writing new software programs and Simulink, used for modeling and simulating complex dynamic systems. The company also develops and markets an extensive family of add-on products to meet the more specific needs of vertical-markets.
MATLAB is a high-level technical computing language and interactive environment for algorithm development, data visualization, data analysis, and numerical computation. MATLAB is used in a wide range of applications, including signal and image processing, communications, control design, test and measurement, financial modeling and analysis, and computational biology. Add-on toolboxes (collections of special-purpose MATLAB functions, available separately) extend the MATLAB environment to solve particular classes of problems in these application areas.
The MATLAB language provides all the features of a traditional programming language as well as supporting vector and matrix operations while eliminating the need for memory management and variable declaration. It also enables visualization of engineering data via 2D and 3D plots and volume visualization. Functions are provided for integrating C and C++ code, Fortran code, COM objects, and Java code with application codes. It can read data from popular file formats, such as Microsoft Excel; ASCII text or binary files; image, sound, and video files; and scientific files. It can also acquire data from hardware devices.
MATLAB tool boxes include Statistics and Data Analysis, Control System Design and Analysis, Signal Processing and Communications, Image Processing Test & Measurement, Financial Modeling & Analysis.
Simulink is a platform for multidomain simulation and model-based design of dynamic systems. It provides an interactive graphical environment and a customizable set of block libraries that let you accurately design, simulate, implement, and test control, signal processing, communications, and other time-varying systems. With Simulink one can build complete end-to-end simulations, integrating components such as analog/mixed signal, DSP, digital communications, and control logic. Through simulation, one can ensure the system performs to specifications, explore design trade-offs, and tune parameters to optimize performance. Add-on products extend the Simulink environment with tools for
specific modeling and design tasks and for code generation, algorithm implementation, test, and verification.
Simulink enables one to build a detailed block diagram of a system models by dragging and dropping blocks from the library browser onto the graphical editor and connecting them with lines that establish mathematical relationships between the blocks. One can define and control the attributes of signals and parameters associated with the model. Signals are time-varying quantities represented by the lines connecting blocks. Parameters are coefficients that help define the dynamics and behavior of the system. Solvers are provided to support the simulation of a broad range of systems, including continuous-time (analog), discrete-time (digital), hybrid (mixed-signal), and multirate systems of
any size. The model is simulated and refined until it performs as expected. The refined system model then becomes the executable specification that's shared among design teams for system testing, verification, and implementation.
Real-Time Workshop generates and executes stand-alone C code for developing and testing algorithms modeled in Simulink. The resulting code can be used for many real-time and non-real-time applications, including simulation acceleration, rapid prototyping, and hardware-in-the-loop testing. You can interactively tune and monitor the generated code using Simulink blocks and built-in analysis capabilities, or run and interact with the code outside the MATLAB and Simulink environment.
On June 2nd MathWorks announced the availability on Windows, UNIX/Linux, and Macintosh systems of the latest versions of its core products, namely MATLAB 7 and Simulink 6. MATLAB pricing starts at $1,900, while Simulink Pricing starts at $2,800.
In October 2003 MathWorks and Mentor Graphics announced the release of Link for ModelSim, a cosimulation interface that integrates MATLAB and Simulink into the hardware design flow for FPGA and ASIC development. It provides a fast bidirectional link between MATLAB and Simulink and Mentor Graphics' HDL simulator, ModelSim. It enables direct cosimulation and lets you efficiently verify and cosimulate ModelSim RTL-level models from within MATLAB and Simulink. Link for ModelSim supports the developing software test benches in MATLAB or Simulink for HDL entities, including HDL models in larger-scale system models developed and simulated in Simulink , generating test vectors to test,
debug, and verify HDL code against its original MATLAB or Simulink specification and providing behavioral modeling capabilities for HDL simulation in MATLAB and Simulink and verifying, analyzing, and visualizing HDL implementations in MATLAB and Simulink.
The MathWorks Connections Program directory is a broad collection of commercially-available products and services based on the MATLAB technical computing environment. Relevant listings in the directory are offerings from Altera, Xilinx, Accel, Synplicity and startup Catalytic.
The Xilinx System Generator for DSP is a plug-in to Simulink that enables designers to develop high-performance DSP systems for Xilinx FPGAs. Designers can design and simulate a system using MATLAB, Simulink, and Xilinx library of bit/cycle-true models. The tool will then automatically generate synthesizable Hardware Description Language (HDL) code mapped to Xilinx pre-optimized algorithms. This HDL design can then be synthesized for implementation in Virtex-II Pro Platform FPGAs and Spartan-IIE FPGAs. As a result, designers can define an abstract representation of a system-level design and easily transform this single source code into a gate-level representation. Additionally, it
provides automatic generation of a HDL testbench, which enables design verification upon implementation.
The Xilinx System Generator for DSP bridges the gap between the high-level abstract version of a design and its actual implementation in a Xilinx FPGA. New capabilities include HDL Co-Simulation, Hardware in the loop (HIL), and the ability to estimate FPGA resources from within Simulink.
AccelChip's high-level DSP synthesis tool provides a direct path from the MATLAB technical design language to industry-standard FPGA and ASIC design flows for DSP designers. With AccelChip, designers can easily load DSP algorithms as script M-files and the tool automatically determines the design's structure and provides an intuitive debugging environment. AccelChip automatically performs floating- to fixed-point conversion and then produces synthesizable RTL (VHDL, Verilog) models and simulation testbenches to eliminate the time-consuming and error-prone manual creation process. AccelChip uses the Resource Description Language (RDL) to optimize the creation of RTL models based on the resources available within the targeted FPGA device.
Altera's DSP Builder links MATLAB/Simulink environment to its own Quartus II environment. Designers can use the blocks in the DSP Builder library to create a hardware implementation of a Simulink system modeled in sampled time. The DSP Builder library contains bit and cycle accurate Simulink fixed-point blocks, which cover basic operations such as arithmetic or storage functions, as well as complex functions such as forward error correction or filtering. The DSP Builder library SignalCompiler block reads Simulink model files (.mdl) and writes out VHDL files and Tcl scripts for hardware implementation and simulation. This HDL design can then be synthesized for implementation in Altera APEX II, APEX E, FLEX 10K, FLEX 6000, and Mercury device families.
Starting from a floating-point algorithm in MATLAB, Catalytic users will rapidly convert to fixedpoint versions, analyze them with accelerated simulation and explore them with MATLAB visualization features, saving development time and eliminating difficult-to-find errors. Catalytic's products augment MATLAB with the ability to define, simulate and test true fixed-point math and include a convenient user interface to manage the conversion process. Catalytic's simulation acceleration expands the user's ability to verify and test his floating-point as well as fixed-point algorithms. Catalytic is now in an extensive Beta testing period prior to launching products later in 2004.