Home Commercial IP FreeIP SCBuilder Forum Contact
© 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 less peripherals.

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


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