A First Project for the Boolean Board#

Learning Goals#

  • know the basic definitions of voltage, current, ohms law

  • design tools and technologies

    • (how to install the design tool)

    • know how to write a basic circuit description in Verilog

    • know how to connect general purpose IO (GPIO)

    • programming or configuring an FPGA


Exercise 2

What is the difference between a

  • programming language

  • hardware description language ?

Exercise 3

You probably heard the terms

  • programming an FPGA

  • configuring an FPGA

What is the difference?

Exercise 4

What are the typical design steps for developing a circuit for an FPGA?


A First Look at Circuits#

Exercise 5

What does a typical circuit consist of?

Exercise 6

The height of water stored in an elevated container gives the water a potential energy. Which of the following is the equivalent of this energy in electricity?

A) voltage B) current C) charge D) wire E) I don’t know

Exercise 7

How much current does a small LED like on the Boolean board typically draw (in terms of range)?

A) μA B) mA C) A D) kA E) I don’t know

Exercise 8

Which value should the resistor have if we connect this 0805 LED to a 5V supply?



The following figure from RealDigital seem to be erroneous:

The author calls everything between the load components signals, but how do these components draw power?

The wires that carry power supply are called rail wires. Power Rail is the voltage source. Signals are for information exchange.

There is a similarity to the railway transportation system, where rails can be used for electrification. Railways require also signalling

Exercise 9

An embedded module has typically a power supply interface and a communication interface based on a serial interface. Do you know an interface which can deliver both power and information?

Electric Vs. Electronic Circuits#

Exercise 10

What is the difference between

  1. electric and electrical?

  2. electric and electronic?

  3. Is an electronic device also an electrical device?

Exercise 11

Why are communication and information processing devices typically integrate more digital modules/components than analog?

Exercise 12

Do you know any communication technologies which use/used analog signals?

Exercise 13

You want to communicate a number ranging from 0 to 200 between two components. How many wires do you at least need if you communicate it using

  • analog signaling?

  • digital signaling?

Exercise 14

You have a digital system with 5V power supply voltage. How are the binary values 1 and 0 represented on the wires of such a system?

Electric Charges, Voltage, Current#


Exercise 15

  1. What are the voltages that you can encounter on the Boolean board?

  2. Are these dangerous for a human?


Exercise 16

Imagine that you are connect the positive the negative poles of a battery using a cable. This will typically heat the battery even there is no resistor in series with the conductor. Why does this happen?

Resistance & Ohm’s Law#

Ohm’s Law#

Exercise 17

What is the Ohm’s law triangle good for and how does it work?


Exercise 18

How much is the power dissipated on the series resistor connected to a single mono-colored LED on the board?

Electronic Components#


You can see several rectangular white boxes with RN on the Real Digital board silk-screen

This is not true for the resistors on the front side of the Boolean board. The resistors on the rear side are named.


Exercise 19

  • What are the capacitors very close to the FPGA good for?

  • Why are there different sizes?

Physical vs Model Circuits#

Physical Circuits#

Physical circuits are based on real physical parts. Building a physical circuit can be time consuming, but this will deliver the real behavior.

The alternative is to build a model of a component.

Model Circuits#

… behavioral design methods based on a “hardware definition language” such as …

HDL is typically called hardware description language.

Exercise 20

What is the difference between a behavioral and a structural representation?

Exercise 21

What is the advantage of modeling the circuit using a HDL?

Vivado Tools and Installation#

We should better install the latest version of the tools.

Seven Segment Display#

The text seems to be written for the Blackboard – do not let it trip you up, this page is mostly about seven-segment displays. For example the section Seven Segment controller FPGA IP is mainly for the Blackboard which focuses on IP development with software control.

Exercise 22

On page 4 of the schematic we see that the seven-segment display anodes are not directly connected to the FPGA, but through transistors. What could be the reason?

Exercise 23

How much current can an FPGA pin deliver maximum?

Exercise 24

You want to illuminate all of the seven-segment display LEDs. What should you output on the Boolean Board at the display pins?

A) anode: 0, cathode 0 B) anode: 0, cathode 1 C) anode: 1, cathode 0 D) anode: 1, cathode 1

Solution to Exercise 24

On page 4 of the schematic we see that the seven-segment display anodes are not directly connected to the FPGA, but with PNP transistors in between (refer to their symbol in the schematic). PNP transistors are activated if the FPGA drives a 0. Cathode pins are directly connected to the FPGA. So:

A) anode: 0, cathode 0

Strictly speaking resistors are also in series, but the resistors do not change which voltage level we should drive.

Exercise 25

The seven segment display is controlled in a scanning manner.

  1. What does scanning mean?

  2. What is its advantage?


1. Complete the first tutorial (A First Vivado Project)#

After becoming acquainted with the tool flow and you like to work on the command line, try this command line based flow using Makefiles.

I suggest that you use your favorite code editor instead of Vivado’s own editor and lint your code using a verilator, xvlog, etc and use Vivado only for simulation and synthesis. Especially in the beginning you may do a lot of syntax errors and using linting you get an immediate feedback compared to synthesis in Vivado which may take seconds.

Some examples:

Finally some useful resources if you want to implement your own makefile or scripts for your own synthesis flow:

2. Complete the second tutorial (Controlling LEDs using Slide Switches)#

In this circuit we want to connect slide switches to the LEDs with the FPGA in between. The FPGA will not contain any logic but only output the input logic level on specified pins.

Basic Input/Output Devices#

Source: Basic Digital I/O: Slide Switch, Push Button and LED

Basic Input Devices: Slide Switch and Push Button#

Exercise 26

On the board we have

  • slide switches, in other words, single throw double pole

  • push button

How do they communicate do the circuit that they are on a different pole or are pressed?

Basic Output Devices: LED#

Exercise 27

How can we determine the voltage drop on an LED?

Printed Circuit Boards (PCBs)#

Source: Printed Circuit Boards (PCBs)


Exercise 28

What is the advantage of breadboards, a.k.a., protoboards?

Printed Circuit Boards#

Exercise 29

Look at the FPGA PCB.

  1. Enumerate major steps from a a schematic to the end product that you have in your hands.

  2. Enumerate the board manufacturing steps from a blank board to the assembled board.


Source: Connectors

Exercise 30

Which connectors do you recognize on the board?

Integrated Circuits#

Source: Integrated Circuits

Exercise 31

Which integrated circuits are packaged as DIP on the board?

Exercise 32

How are tiny integrated circuits wired to the package pins?

Exercise 33

We see a lot of surface-mounted packages compared to through hole packages. What could be the reason?

A Brief History of Verilog#

Source: A Brief History of Verilog

Exercise 34

According to the text, Verilog and VHDL were created as specification languages for circuits.

  1. What was/is the advantage of specifying a circuit using a specification language?

  2. What did change in the coming decades?

A first look at Verilog#

Source: A first look at Verilog

Exercise 35

A module can have inputs and outputs. In the module definition we may see wires. What is the difference between an input and wire?