VHDL/Verilog FPGA programming


In some of our designed circuit boards used Field-programmable gate array (FPGA) chips. Using FPGA needed when not enough CPU power for certain operations, for example for parallel computing or computing on the fly, so as FPGA can be used as universal converters interfaces speed interfaces, devices with minimum delay processed signal receiving, processing data in real time, etc. In order to FPGA chip perform the desired function is specially designed "program" (you can often limited to circuit solutions), this program is loaded into the FPGA memory or external specialized ROM loader chip. Also, often the code for FPGA is stored in the onboard CPU and loaded them into the FPGA by boot protocol, this makes it possible to change the firmware for FPGA together in the firmware of the processor.

  • Used languages Verilog, VHDL, circuit decision
  • Work with Xilinx, Altera, Lattice
  • Interfaces both standard and specialized by customer specification

What we did

Writing code on hardware description languages: Verilog, the VHDL, simulation code (testbench), loading code into FPGA in various ways, functional test and indirect ways by using instrumentation. Experience with FPGA Xilinx Spartan series, Altera Cyclone series, Lattice Mach series and others in development environments ISE WebPACK, Quartus Software, Lattice Diamond. Working with cores, modules, DDR2 interfaces, SRAM, DMA, I2C, Camera Parallel Interface (CPI), PCI Express, etc.

Project list

  • High resolution IP camera based on processor i.MX27 and FPGA Spartan 6 (work with DDR2 memory controller, tone mapping image processing from the image sensor and its transmission to the processor through the interface CPI)
  • Controller module on base of Freescale P1011/P2020 processor (work with DDR2, SRAM memory controller, Local Bus converter in the user interface on the differential pairs)
  • Four-channel hardware video encoder PCI board supporting IRIG-G standard
  • PCIe hardware accelerator TCP/IP packets
  • Multi-channel synchronous generator signal at predetermined time cycles and high precision synchronization of onboard equipment
  • TV tuner board on base of i.MX27 processor (translation MPEG stream to the CPI interface)

More projects


HTML5 RTSP player

html5_rtsp_player.js is a Javascript library which implements RTSP client for watching live streams over websocket in your browser that works directly on top of a standard HTML element.


U-Boot and RedBoot modification for embedded boards

Changes to the boot code in accordance with the peculiarities and differences from the reference designed board to prepare the board to boot the OS.


System and Drivers programming for Windows, Linux, Mac OS

Development of drivers to connect a hardware devices to your PC and work with them, as well as the accompanying software on user level.