MDS Features

We are aware that besides reliability you need software equipped with variety of features to make your work easier and preferably even comfortable. We focus on advanced and reliable macro-assembler, backwards compatibility with other tools you might use, transparent and yet fast simulation, and comfortable code writing. Feature set of our software is expanding with every new version, and we are opened to suggestions for further improvements to make our tools better fit your needs.

 

Source Code Processing Tools

VHDL Wizard

This tool is can be used for easier setting-up of connections between your PicoBlaze implementation and the other parts of your VHDL design. It can help you when you do not want spend too much time writing peripheral logic for PicoBlaze and your VHDL components. This tool automatically takes port addresses from your symbol table file (generated by assembler) and generates corresponding port constants and input/output multiplexers. Final output of this tool is a VHDL entity containing your custom defined components, port constants, all necessary signals/constants, and declaration of KCPSM design.

VHDL Wizard main window
VHDL Wizard main window
Edit VHDL port parameters
Edit VHDL port parameters
Edit Generic parameters
Edit Generic parameters

Delay Loop Generator

This tool might prove especially useful when you need to write a delay loop for the exact amount of time and for some reason you want this task to be done by machine automatically so you don't have to spend any time with it. This tool can generate delay loops using up to six registers as iterators. All you have to do is enter desired time of delay or number of cycles and clock frequency.

Assembler Translator

This utility implements function sometimes called "code import". It can translate assembly language source code for PicoBlaze from one variant to another, the aim is to make MDS backwards compatible with some other tools including Xilinx assembler, Mediatronix assembler, and openPICIDE assembler. To use this tool all you need to do is select source code file which you want to convert, choose language syntax variant (e.g. Xilinx), and click on Ok, code will be converted to MDS assembler syntax. Optionally you can choose whether you prefer instruction in uppercase or lowercase, what indentation you want (spaces of tabs), and other options.

 Learn more about MDS code compatibility

Disassembler

Disassembler is a tool that translates machine language into assembly language. The inverse operation to that of an assembler. MDS disassembler can read machine code from VHDL and Verilog files generated by the MDS assembler or a tool similar enough like Xilinx assembler, and from Raw Hex files, Intel 8 HEX files, Motorola S-Rec files, binary files, and MEM files. Output generated by this disassembler is human readable source code which is syntactically compatible with MDS assembler and generates the same binary output when assembled by MDS assembler. Optionally you can specify indentation options, letter casing, and other options.

Disassembler
PicoBlaze Disassembler
Assembler translator
PicoBlaze Assembler translator
Delay Loop Generator
PicoBlaze Delay Loop Generator

Simulation Related Tools

Reg Watcher

This panel might help you to keep track of specific locations in registers, scratch-pad RAM, and ports. You can add arbitrary locations in memory which you consider to be the most important for your current work.

Call Watcher

From here you can see all subprogram and interrupt calls in your program. For each entry there you can see whether it is a call or an interrupt, return address and address from which the call was invoked. And you can force each of them to premature return.

 

Reg Watcher
Reg Watcher
Call Watcher
Call Watcher

LED Panel

This simple LED panel simulator allows you to observe output port behavior with visual representation of eight LEDs. You can set BCD and Gray decoder to simulate common FPGA logic.

7 Segment Display

Simulator of 7-segment display with common anode, the display is connected to an output port. Port bits can be assigned to any display segment. Multiple instances of this simulator can be opened at once. You can set BCD decoder to simulate commonly used FPGA logic.

Switch Panel

This simple switch panel simulates eight switches connected on an input port of your processors through common FPGA logic.

LED Panel
MDS LED Panel
7 Segment
MDS 7 Segment
Switch Panel
MDS Switch Panel

Code navigation

List of bookmarks

From here you can easily navigate trough all bookmarks made in the source code file. Bookmarks have no other function than help navigate in a source code especially in a long one.

List of breakpoints

Pretty much the same as list of bookmarks, but this panel shows breakpoints instead of bookmarks, that is the only difference. The sole purpose of breakpoints is to stop simulator in modes Run and Animate in order to help you cope with long program simulations.

List of macros

All macros defined in your code are listed here to allow you better orientation in your project.

List of bookmarks
MDS List of bookmarks
List of breakpoints
MDS List of breakpoints
List of macros
MDS List of macros

Other Utilities

Radix Converter

This tool is very useful when you want to quickly convert some number to another radix.

Data File Converter

This tool allows you to convert selected data file to another. Mutual conversion can be made between MEM, Raw Hex (suitable for JTAG loaders), Intel 8 HEX, Motorola S-Rec, and Raw Binary files. This tool can also fill VHDL or Verilog template from file in any of the mentioned formats, and can even extract memory initialization data for PicoBlaze from VHDL or Verilog file has been previously created by filling a template, and save this data as Ras Hex, Intel 8 Hex, etc.

 Learn more about MDS code compatibility

8 Segment Editor

With this tool you can easily determine what value you have to set on a port to display a digit on a numerical LED display. In the left part of the dialog window, you can find numerical values corresponding to the displayed digit in the middle part. These values are represented for both common cathode and common anode and in three numerical bases: hexadecimal, decimal, and octal. Buttons on left side from entry boxes copies value from the adjacent entry box to clipboard. In the right part of the window you can set what port pin is connected to what LED segment, this sets permutation of the resulting value(s).

Data File Converter
MDS Data File Converter
Radix Converter
MDS Radix Converter
8 Segment Editor
MDS 8 Segment Editor

Command Line Tools

Assembler

MDS assembler can be used from command line, both Windows and Linux, and provides the same functionality as in GUI, there are no limitations. Command is: mds-compiler. For those of you who want to use this tool for example in your scripts, this might prove to be a useful feature. On Linux, there is also manual page available: man mds-compiler.

 Learn more about MDS assembler

Disassembler

Command: mds-disassembler, manual page: man mds-disassembler.

Assembler Translator

Command: mds-translator, manual page: man mds-translator.

Assembler CLI
MDS Assembler CLI
Disassembler CLI
MDS Disassembler CLI
Assembler Translator CLI
MDS Assembler Translator CLI

Processor Simulator

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-sim to 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.

Simulator CLI
MDS simulator CLI