June 19, 2006
Your UML Tutorial- UML, XML, ESL, MATLAB & Simulink, too
Please note that contributed articles, blog entries, and comments posted on EDACafe.com are the views and opinion of the author and do not necessarily represent the views and opinions of the management and staff of Internet Business Systems and its subsidiary web-sites.
When I think about any perceived overlap between UML and our products, it's due to what is in the UML definition, not the use of the tools. In practice, many users have a good sense of what each tool is well suited to, and they continue to refine that understanding. We know that UML is well suited for some tasks. We sometimes use UML tools in-house for some architecture work in our own product development.
Whose UML tools do we use? We would prefer not to say which ones, but we use several. We prefer to stay agnostic and maintain relationships with a number [of different UML vendors].
Q - ESL & The MathWorks?
Ken - Well, there's a similar situation in the ESL realm, because ESL means different things to different people. But, the concept of ESL is coming from the electronic design world and recognizes that ICs are getting more complex and more software-centric than ever before. The largest source of error in those systems - and the reason why so much money is being spent on reducing those errors - is that the up-front specifications are incorrect. Therefore, there are a growing number of tools in the ESL space, but they address a range of sub-problems within electronic system design.
Most ESL tools today are internally developed by customers and are used to define virtual platforms that describe SoC architectures, including elements like buses, processors, and so forth. How do you model such a device adequately? Some of these customers use MATLAB and Simulink to describe the functional behavior of that system, and what the system or component will do. Then we provide a route to implementation with automatic code generation as well as links to the downstream tools. For hardware, we have a path to implementation through our partnerships with the FPGA vendors. And, there is some capability for direct HDL generation for digital filters.
ESL is addressing the definition of SoC platforms that include programmable devices such as microprocessors and DSP cores. Model-based design with Simulink also encompasses other components that make up the complete end product as well as its environmental effects on system performance. MATLAB provides a higher level of abstraction and productivity than the current ESL languages for algorithm development.
To some extent, our products have always been addressing problems that are now being recognized by the EDA industry and reflected in the ESL market definition. At the same time, we have extended our products from simulation and algorithm development to implementation. It happened first on the embedded software side, starting 10 years ago, and now the connection to the EDA side is happening for both implementation and verification. For example, our Link for ModelSim product provides a way for people in the hardware domain to use Simulink models as a kind of a testbench.
Q - MATLAB versus Simulink?
Ken - People need to distinguish between MATLAB and Simulink.
Jim - MATLAB deals with algorithms, while Simulink deals with various aspects of system complexity. Simulink can be used for hardware, software, analog, digital, or mechanical systems. If you have a block within the system that is an algorithm, you can purchase IP blocks from us, or build blocks out of lower-level blocks, or create new blocks written with MATLAB or a C wrapper. We're open in terms of how the components are created.
As Ken says, you can describe both hardware and software using Simulink. More importantly, you can describe the algorithmic behavior of the components of a system using MATLAB, and then you can implement it down to the production level through automatic code generation. So, we have these relationships with Xilinx and Altera for implementation of such flows into FPGAs.
Ken - Simulink is being used by development teams for model-based design, both hardware and software. Those systems can even include mechanical or hydraulic systems. Starting with models in Simulink allows the specification to be unambiguous and testable from the start. Then they can be refined as the algorithm is developed, whether in MATLAB or Simulink.
People tend to recognize MATLAB more than Simulink, because a lot of people have used MATLAB for certain aspects of system design. In fact, we have many documented cases showing that MATLAB is more efficient for writing algorithms than C or C-based languages.
Q - Was The MathWorks at DAC last year in an educational mode?
Ken - We were not at DAC last year in a tutorial mode. We were invited to participate in a panel discussion.
Jim - [In fact], The MathWorks was at DAC last year, because the panel discussion was motivated by the users. It was recognition from the marketplace that our tools are being used. It was far more than just our being in an evangelical mode.
Q - The concept of a UML tutorial at DAC?
Jim - Since there is a gap between the definition and practical use of UML, a UML tutorial would be useful if it involves users showing other users what it's good at - if it is presented from the user perspective, not a tool vendor or evangelist perspective. There definitely needs to be an acknowledgement of what things UML is well suited for, and what things other tools are well suited for.
Editor's Note - Here are the answers to your pop quiz:
You can find the full EDACafe event calendar here.
To read more news, click here.
-- Peggy Aycinena, EDACafe.com Contributing Editor.
Be the first to review this article