Projects / VHDL problem sets / Virtual board

Practice · VHDL-2008

Virtual FPGA board

Write VHDL for the pins of this board, program it, and play with its switches and buttons while your design runs: LEDs light up, the display counts, and text arrives in the terminal. Start from one of the examples, or from your own code from the VHDL book.

How the board works

Programming compiles your design with the same VHDL-2008 simulator as the book, here in your browser, and connects its ports to the pins of the board by name: a port called led drives the LEDs, a port called sw reads the switches. The list of pins is below the board.

A real board runs at 100 MHz. A simulator in a browser manages a few hundred thousand clock cycles a second for a small design, so this board runs at a clock you choose, from 10 Hz to 1 MHz, and shows how close to real time it gets. Write timing with a generic, CLK_HZ: the board fills in its clock frequency, and the same code runs on a real board with CLK_HZ set to 100 MHz. A BAUD generic gets the speed of the terminal in the same way.

The LEDs and the display show how long each one was lit since the last screen update, as your eye would: a PWM output looks dimmed, and a display that lights its digits in turn looks steady, as long as it switches fast enough. Slow the clock down to watch either happen.

Ctrl+Enter programs · Tab indents

    VB-1 · virtual FPGA board not programmed
    Clock
     
    Serial terminal · tx and rx
    
                            
    The pins of the board