© 2001-2017 HT-Lab
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
Supplied IP Cores
HTL80186, 16bits micro-controller
HTL8259A, Programmable Interrupt Controller
HTL8254, Programmable Interval Timer
HTL8255, Programmable Parallel Interface
HTL16550, Industry compatible 16550 UART with configurable FIFO's
WDT, 32bits Watchdog Timer
HTL146818, Real Time Clock compatible with the industry standard 146818 RTC
HTLDMA16, 4 Channel DMA Controller compatible with the 80186EC DMAC
All trademarks mentioned on this web page are trademarks of their respective owners.
80186 Embedded Controller
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.
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).
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.
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.
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.