FPGA IP Core
Flexible Solutions by Experienced Embedded Engineers
Our engineers are experienced in Field Programmable Gate Array (FPGA)
programming. FPGA technology accelerates time to market, reduces cost
and helps protect your embedded product from end of life issues
associated with proprietary chips. If your design could benefit from
custom logic in an FPGA one of our engineers would be happy to discuss
the features and options available with an FPGA solution.
Technologic Systems has ample experience integrating CPLD and FPGA
devices into our single board computer designs. We work with the most
advanced manufactures and development tools, including Xilinx, Altera
and Lattice. Most of our recent products include an FPGA. In the current
market, designing an SBC without an FPGA seems unlikely. The TS-7300 and
the TS-7800, for example, have extra functionality provided by FPGA IP
cores, such as extra DIO, extra serial ports, VGA video and SD card
support. In addition, extra flexibility is provided in the TS-7300 by
making the FPGA user-programmable through Linux utilities and bitstream
To give you an idea of what types of solutions are possible with an
FPGA, this page presents a sampling of designs we have completed.
TS-XDIO - Extended Digital I/O Port
Many of our products feature Digital I/O pins
(DIOs) directly on the SBC. The typical method of interacting
with these DIOs is to write a user-space program which maps DIO control
registers to pointers, allowing a user to directly read and set input
There are drawbacks to this approach to Digital
- The user program must constantly poll any
inputs for as long as it is interested in them
- User-space programs are limited in how fast
they can manipulate I/O pins
- User-space programs cannot control when they
might have to relinquish processing to allow another application to
run, and thus might miss pin changes
One approach to solving these problems is to write
a Linux device driver. However this can often be problematic as
there has been no standard API for dealing with DIOs, and the tendency
of Linux kernel APIs in general to change frequently makes an
investment in generic sample code hard to justify.
The solution our engineers found was to implement
a special "eXtended Digital I/O" or XDIO FPGA core which implemented
features convenient for user applications, some of which would be
difficult or impossible to do without hardware support. These
- detecting edges and pulses as fast as 13ns in
- edge and quadrature counting
- PWM generation
- one-shot programmable pulse
- pulse width measurement
Find out more about the TS-XDIO IP core reading the TS-XDIO Datasheet.
TS-SDCORE - Secure Digital Card IP Core
With the development of the TS-7300, our
engineering team was challenged with the problem of creating an SBC
which was booted entirely from removable flash media. The
TS-SDCORE formed the main portion of the solution,
providing a mechanism whereby many of our boards (the TS-7300, the
TS-7400, the TS-7800, several custom SBCs, and the TS-7260, if
retro-fitted) can access or even boot directly from a removable,
industry standard Secure Digital (SD) card.
Some of the benefits of the SD card over other
flash media include:
- compact size
- low profile for a removable media as compared
to CF or USB flash drives
- unlimited storage through removability not
available through soldiered-on flash
- available security functions such as encryption
and password protection of data
- "push-push" socket for ease of inserting and
With the development of the TS-SDCORE Technologic Systems has
positioned itself to take advantage of the ever-increasing storage
capacities and reduced costs of both SD and SDHC media.
TS-VIDCORE - Video Core with Framebuffer
In embedded development, it is often important to
create a product which can be manufactured indefinitely. In
developing a video product for an embedded system this can be
especially challenging due to difficulties finding a video chipset that
is guaranteed to never be end-of-lifed.
To overcome this obstacle, our engineers developed a custom FPGA core
- VGA or SVGA resolution (other custom
resolutions are possible)
- 16-bit color (5-5-5 RGB)
- Accelerated bit-blitting
This core debuted in the TS-7KV, and has since been used in the TS-7300
as well as custom projects for customers with LCD panels at various
TS-UART - Light RS-232/TTL Serial Ports
Many embedded designs require time-tested technologies like
RS-232. For products which require lots of serial ports,
the standard 16550 UART chip proved to be too resource intensive to
implement in large quantities in an inexpensive FPGA.
Further, our experiences with customer needs in a serial port suggested
that many of the features available on a 16550 UART were unused in most
designs. Armed with this knowledge our engineers set out to
design a compact UART design which contained the most important and
most used features of a serial port. The result is the TS-UART, a
compact yet versatile design that has been used in various forms in
more then 17 separate products, from the TS-7260 (our first product to
sport a TS-UART) to the TS-COMBOX (our product with the most UARTs...
The compactness of the TS-UART design begins with an interface of only
two registers (one for status and one for data) and FPGA resource usage
about 10% of a 16650. Yet, despite it's compactness, the
TS-UART features which have been implemented include:
- Tx, Rx, RTS, CTS signals
- special provisions to access additional port
signals can be provided in custom designs
- transmit and receive FIFO sizes that can be
customized as needed for a specific design
- serial BREAK functionality (detection and
- 9-bit serial
- support for the most common baud rates
(2400-115.2k), with any reasonable baud rate available in some designs
TS-NANDCORE - NAND Flash Controller
Technologic System has experience designing with the open-source FPGA cores provided by the OpenCores.org community of FPGA developers. For example, the TS-7300 FPGA design integrates the OpenCore Ethernet project, enabling one additional 10/100 Mbit ethernet port. It also provides a CAN interface through the use of the Philips SJA1000 CAN controller, available at the OpenCores.org website. We also make extensive use of the WISHBONE bus in our FPGA designs, making re-use and integration with other cores easier.
Contact us should you need OpenCores.org solutions integrated with our FPGA or single board computer.
Custom IP Cores for FPGA using HDL
Custom design functionality is a constant demand of our customers. Technologic Systems computers are designed to provide better solutions with faster time-to-market and higher flexibility via FPGA customization. We can either modify any of our existing FPGA IP cores or create a new custom core from scratch. Some examples are:
- We can provide RCA composite video by modifying the existing VGA video core.
- We can add additional serial ports, DIO lines, SD Card sockets, etc...
- We can integrate new custom cores to the TS-7800 FPGA default load and make the physical interface available through the PC/104 connector.
Contact Technologic Systems should you need custom FPGA solutions.