Global Sources
EE Times-Asia
Stay in touch with EE Times Asia
EE Times-Asia > EDA/IP

Scripting language uses small instruction set

Posted: 01 Dec 2004 ?? ?Print Version ?Bookmark and Share

Keywords:scripting language? code? visualsim? smartmachine? multithread?

Proprietary design languages have had difficulty gaining traction, but Mirabilis Design Inc. believes its SmartMachine has unique features that will help it stand apart. The scripting language uses only 10 instructions to describe complex models in a few lines of code.

SmartMachine works with Mirabilis' VisualSim graphical design tool. VisualSim, based on the Ptolemy simulation kernel from the University of California at Berkeley, is used for both embedded software and hardware design.

Deepak Shankar, founder of Mirabilis, said VisualSim has been shipping for about a year and has several customers in the military/aerospace sector. Other customers use the product for high-performance network computing and wireless communications. The company hopes to enter the semiconductor market, given the growing need there for detailed modeling.

SmartMachine adds a textual language to the graphical VisualSim environment for quick prototyping of software instructions, algorithms or resource processing. Mirabilis claims SmartMachine users can accelerate process-intensive tasks, refine abstract blocks and compress large graphical descriptions.

To create SmartMachine, Shankar said, Mirabilis borrowed concepts from the 1930s-era Turing Machine, which had only three instructions. "We extended it to 10 instructions and created something that resembled a risc processor," he said.

SmartMachine can be used to create models very quickly, Shankar said. "If you wanted to run power analysis on bus traffic, it might take only 15 or 20 lines. The syntax is very similar to what you would do in a high-level programming environment."

Multithreading support

Shankar said Mirabilis had modeled a complete cache controller in about 200 lines of script. With five or six blocks, he said, one could probably create a complete microprocessor. SmartMachine allows up to 16 threads, permitting multithreaded operations and concurrent event processing.

Many systems designers use public-domain scripting languages, such as Tcl or Perl. Setting SmartMachine apart, aside from its instructions, are its just-in-time compiler and the debug environment that comes with the language, said Shankar.

An execution block reads the script at runtime and executes it internally during a VisualSim simulation. The block can access graphical VisualSim resources, including queues, memories, virtual resources and schedulers. The block has single-step debugging, code trading and syntax checking.

The debugger's trace mode allows the entire execution to be displayed graphically. Single-stepping allows breakpoints in the graphical environment. The built-in syntax checking points out errors during compilation. "The script is executed as part of the [graphical] model," said Shankar, "so you get native code performance, and at the same time you get graphical aspects."

SmartMachine instructions include define, action, jump if true, jump if false, while, go to, subroutine, go to with thread, return and label. Underlying those instructions, said Shankar, is a "built-in expression language" that provides arithmetic operators, logical operators, matrices, array manipulators, high-level signal-processing functions and image processing.

Shankar acknowledged there may be some resistance to a proprietary language. But he noted that Mirabilis is working on C or Java code generation, which should mitigate the concerns about a proprietary language. Down the road, he said, Mirabilis may also support HDL generation.

SmartMachine is available on Windows, Linux, Solaris, HP/UX and Macintosh platforms as an add-on to VisualSim. Pricing starts at $15,000.

- Richard Goering

EE Times

Article Comments - Scripting language uses small instru...
*? You can enter [0] more charecters.
*Verify code:


Visit Asia Webinars to learn about the latest in technology and get practical design tips.

Back to Top