In order to make our PicoBlaze processor simulator a really useful tool for real development we made it to meet a number of requirements:
- High speed of operation
- Our simulator is optimized for efficient use of processor time, it is one of its main design goals. Usually it takes couple dozens of instructions on your computer to simulate one PicoBlaze instruction cycle; considering the difference in clock rate of today average x86 processor and clock rate of device on which PicoBlaze is likely to run, we are talking about near real-time simulation. For instance on Intel Core i7 running at 2.0GHz, our PicoBlaze simulator reaches real-time performance in run mode at clock rate of 100MHz; theoretically on twice as fast processor, it would reach real-time performance at 200MHz of PicoBlaze clock. The simulator doesn't skip any simulation operations, it simulates every instruction in your program, including delay loops, etc. But please be aware that there are many factors affecting the actual simulator performance: current work load of your computer, clock rate of your main memory, processor cache, and many others. This simulator is very fast but don't rely on exact numbers, it might run even faster or slower on your machine.
- No limitations
- Unlimited support for all PicoBlaze processors according to their latest specifications:
- PicoBlaze 6
- PicoBlaze 3
- PicoBlaze II
- PicoBlaze for CPLD
- High reliability
- Our simulator has to pass hundreds of automated test cases with positive result before we ship it.
- It has to meet strict demands for low time complexity.
- It must not crash under any circumstances.
- It has to have no memory leaks.
- Useful debugging functions
- Our simulator supports various modes of simulation, supports breakpoints which can be added and removed on the fly; highlights recently changed values in registers, etc.; checks all attempts to access memory, ports, etc. for possible errors, when your code does something obviously wrong like stack overflow, simulator will inform you about it via some warning dialog, etc.
- Good interoperation with the rest of our tools
- Our macro-assembler and simulator are well fit together to provide transparent view of macros and other features of MDS assembler.
- Command line interface
- The main purpose of this tool is to provide means to use the MDS's processor simulator in user written scripts in which the user needs to simulate a processor. For instance you can write a script in Tcl, Python, Bash, etc. and use the
mds-proc-simto test your programs written for PicoBlaze. You can do things like: feed your program with some input and read its output, connect several processors together and make them exchange data, you can even view contents of registers, and all other memories, watch subroutine calls and interrupts, set breakpoints, and many other tasks. Please see the user manual for details.
This video demonstrates speed of this PicoBlaze simulator, PicoBlaze clock is set to 100.0MHz, simulator is running on 64-bit GNU/Linux machine with Intel Core i7-2630QM CPU at 2.00GHz, simulated code is Example6.psm from the MDS Tutorial Project, mode of simulation is "Run" (engaged by F7 key). Please notice that the simulator runs real-time! Of course, we don't want to convince you about something you can't see for your self so please feel free to download the Trial Version for free any time.
You should also know that 64-bit version of MDS runs faster than the 32-bit version, breakpoints significantly slows down the simulator (approximately by 30%), mode "Run" is the fastest but it also doesn't update GUI after each executed instruction so it provides only limited view of what exactly is going on in the simulator.