Many applications would benefit from a small degree of local ‘intelligence’ and PT13 is designed for that very function. Whilst most available microprocessor IP cores require external FLASH memory and even external data memory, PT13 is optimized to be completely embedded and use as little FPGA resources as possible allowing it to fit it CPLDs and small FPGAs or even permit multiple instances in the same FPGA.
PT13 uses just 374 logic elements and only as much data and program memory as your application requires; the stack pointer registers are implemented in logic.
PT13 can address up to 64kB of program memory and 64kB of user memory or memory mapped I/O peripherals and has over 45 instructions. An editor and assembler allow easy generation of code which can be directly compiled into an Altera FPGA ROM download file, (MIF file).
PT13 is ideal in real time control applications allowing such functions as TV tuner control, I2C control, RC5/RC6 decoding, LCD display control, user interface control, closed caption/Teletext decoding and general housekeeping duties to be run without burdening the main control processor. These functions can also be run in very low power applications such as STB/DVD recorder standby conditions or mobile applications.
PT13 is available as a free download. The Verilog source code may be downloaded here:
This is the PT13.tdf file which produces more compact code, but can only be used with Altera FPGAs.
This is the user manual for the PT13 and assembler.
This is a link to the editor that I use for the PT13. Below is the highlighter file that when used with the editor highlights the PT13 op-codes.
And this is the link to the PT13 assembler.
Below are the schematics and PCB layout for a PT13 evaluation board. The PT13 is loaded into a small Altera FPGA and peripherals include a 8x2 character LCD display, buttons, digital encoder and 2 Digilent Pmod ports.
The above board was designed using Express PCB software which is available as a free download.
Below is example code for the PT13. This code used a switch and digital encoder to control menus for a 8x2 character LCD display. It includes HEX to BCD conversion and other code examples for the PT13.