Project Karibu: Pretty lights for ECE2031.

[KNfLrPn Home]

- Navigation -

- Links -

- Download -


Here is the overall block diagram file (BDF) for Karibu. Don't bother trying to read it; all important subsections are covered in greater detail in other sections.

Karibu overview schematic.

It is not a very large design. Everything is done in hardware as opposed to having a general purpose processor. Everything more complicated than combinational logic is created with megafunctions and/or VHDL, with the BDF mostly serving to connect all the subsystems.

Here is a brief video showing the general operation of Karibu:

Clocks and reset pulse.

Clock and reset pulse systems

Currently, the 50MHz clock runs all clocked systems. The 27MHz clock is included as an input in the BDF simply for completeness. The block clk_div divides the 50MHz clock to provide 1Hz-100kHz in decades, which are used throughout the design.

The reset pulse generator provides an active-low reset for ~300ms after clk_div begins operating. This is used to ensure that power and clock are stable before certain systems begin to operate.


The LCD is used to display a static welcome message:
"ECE2031 - DDL"
"Don't Panic."

=> Main LCD discussion.

Push buttons and green LEDs.

The push buttons (PBs) control the green LEDs above them and the left half of the seven-segment displays.

=> Main PB/LED discussion.

Seven segment displays.

The left half of the 7-seg displays scroll "ECE2031", clocked by any of the PBs. The right half of the 7-segs loops a fading, scrolling display (see main discussion for visuals).

=> Main 7-seg discussion.

Switches and red LEDs.

Each switch directly controls the LED above it. When an LED lights, it propagates to adjacent LEDs, creating a ripple effect. If the ripple collides with an active switch, it reflects. See the main discussion for video.

=> Main switches discussion.

VGA display.

The VGA displays a gradually-changing rainbow, making use of the 10-bit video DAC.

=> Main VGA discussion.