80186 Embedded Controller

The HTL186C is a light-weight 80186 based embedded controller on an FPGA. As shown in the diagram below the HTL186C consist of a number of standard PC/XT IP cores configured in a semi IBM XT/PC compatible mode. The design is delivered with all the individual IP cores and the top level wrapper. Each IP core is written in vendor neural VHDL and can be simulated/synthesised using any commercial or Vendor supplied tool. The HTL186C can easily be customised for more or less peripherals.

Supplied IP cores

Development tools

There is no question regarding the wealth of free and commercial software available for the x86 family processors. Although 16bits support has disappeared from most high-end development tools for many years, there are still a large number of free and commercial packages available.

is probably the best known commercial embedded development tool for the x86 family. Apart from supporting the wide range of x86 processors and controllers it also supports the 16bits 8086/186 processors and the Turbo186 mode (16MByte extended addressing real mode).  Paradigm provides a full IDE, C/C++ compiler, linker, locator, monitor and debugger (including a remote embedded debugger).

OpenWatcom is an excellent free high-level C/C++/Fortran compiler/IDE for the x86 family. Originally sold by Sybase as Watcom C/C++ it has since been donated as Open Source. Apart from the free Paradigm and Borland C++ 4.52 compiler this is probably the best free C/C++ compiler for the 80186. OpenWatcom is the default compiler used by HT-Lab.

Of all the high-level compilers Borland is no doubt the best known compiler producer from the DOS era. Borland's compiler products have long disappeared from the commercial world but some of its famous products such as TurboC and BorlandC++ can still be downloaded freely from the web. You might find later versions of these compilers on abandonware sites but they are not 100% legal in spite the fact that these compilers will most likely never see the commercial daylight again.

For assemblers the choice is plentiful with excellent free products such as NASM, MASM and A86, many more assemblers can be found on the TheFreeCountry website. Any firmware delivered with our IP cores are written for NASM.

Apart from the Paradigm locator there aren't many locators available, however, you can't go much wrong with TurboLocator from Xellsoft which has been available for many years.  For standalone EXE files the HTL186C core is supplied with the EXEWrap utility, this utility enables an EXE file to be executed on the HTL186C without any DOS support.

Deliverables

The HTL186C is delivered as a set of IP cores as listed under the above Supplied IP Cores section. All IP cores are fully documented and written in vendor neutral VHDL. A top level wrapper instantiates the cores to create the HTL186C embedded processor. The ROM can be set (using a package variable) to either a small serial bootstrap loader (BOOT86) or to an embedded BIOS (BIOS186).

BOOT86

The serial bootstrap loader is a small 256bytes Intel Hex loader which can be used to upload software via one of the serial ports.  A Windows based utility is provided to convert a binary/.com file to the required Intel Hex format. EXE files needs to be processed by EXEWrap first before converting to hex and uploading to the HTL186C. BOOT86 is written in x86 assembly.

BIOS186

The HTL186C ROM can also be configured for a small 4Kbyte embedded BIOS. The BIOS186 initialises all the HTL186C peripherals, initialises the interrupt vector table, sets up the Bios Data Area (BDA, required for booting DOS) followed by either booting from a memory Disk Image or running the serial bootstrap loader. The BIOS186 provide most of the standard XT/AT BIOS calls, the I/O calls (INT10/INT16) are redirected to one of the serial ports thus only a serial connection is required to communicate with the HTL186C. The BIOS also include INT13 support to boot from a Flash/SDRAM based disk image. The image can be either a floppy or Harddisk image.

MON186

A 8Kbyte debug monitor is supplied which provide similar functionality to DOS's debug.exe. Users can upload, disassemble, debug test programs using one of the serial ports. The Monitor also provide some additional commands to read/write disk sectors and to move memory blocks between real mode (<1Mbyte) and extended memory (>1Mbyte) area's.

 
EXEWrap
is a command line utility which enables a (limited functionality) EXE file to be executed on the HTL186C without any DOS support. The minimum requirements for EXEWrap is the 4Kbyte BIOS186. EXEWrap adds a Program Segment Prefix,  an Environment, memory management and an INT21 support layer. Relocation is performed before producing a binary or Intel Hex image.


A FreeDOS image and porting guide are supplied with the HTL186C. The porting guide describes how to generate a custom image and modify the BIOS186 for the required disk geometry.


The FreeRTOS operating system (using an existing unmodified PC port) is available for the HTL186C. Using the EXEwrap utility FreeRTOS can be executed standalone without any DOS support.

A free bitstream of the HTL186C is available for a number of FPGA prototype boards such as the Enterpoint Drigmorn1/2, Digilent Nexys2 and Actel's Cortex M1 board. A porting service to other FPGA boards is available.


Nexys2 Board


Drigmorn2 Board


Actel Cortex M1 Board

Pricing

HTL186C Full VHDL Source.............. *** Contact HT-Lab for the latest price ***
Drigmorn2 Evaluation Board.............. *** Contact Enterpoint ***

Preferred payment is via PayPal but other methods are available upon request

Solution Graphics

 

 

 

Contact HT-Lab for further information.

All trademarks mentioned on this web page are trademarks of their respective owners.