Dept. Logo
Lab Home page
Department of Microelectronic Systems, Faculty of Electronics, Telecommunications and Informatics, Gdansk University of Technology Logo Wydziału
Flaga PL Polska wersja

Driving LED display using Picoblaze processor

Introduction

The main goal of this exercise is to develop a microelectronic system with the processor Picoblaze, where the clock division and LED display multiplexing is done in hardware. Reading buttons, increasing and decreasing the displayed values are done by software.
To check the functionality, the sub-block has to be embedded in a circuit enabling setting (with switches and buttons) and displaying on LED display of Spartan 3 board any hex number with decimal points.

Proposed block diagram
Fig. 1. The proposed block structure. The sub-block ports that should be used in the project are indicated in the block diagram. The connections between blocks are not shown.

Operation scheme

Possibilities of enhancements (for volunteers)

Constraint file ucf, Digilent Spartan-3 board, Spartan-3 3S200 FT256-4:
#########################################################################################
# Clock:
NET "clk_i" LOC = "T9" ; # 50 MHz clock
#########################################################################################
# Reset:
NET "rst_i" LOC = "K13" ; # BTN0 active high
#########################################################################################
NET "led7_an_o<3>" LOC = "E13" ; # leftmost digit, active low
NET "led7_an_o<2>" LOC = "F14" ; # active low
NET "led7_an_o<1>" LOC = "G14" ; # active low
NET "led7_an_o<0>" LOC = "d14" ; # rightmost digit, active low
#
NET "led7_seg_o<7>" LOC = "E14" ; # segment 'a', active low
NET "led7_seg_o<6>" LOC = "G13" ; # segment 'b', active low
NET "led7_seg_o<5>" LOC = "N15" ; # segment 'c', active low
NET "led7_seg_o<4>" LOC = "P15" ; # segment 'd', active low
NET "led7_seg_o<3>" LOC = "R16" ; # segment 'e', active low
NET "led7_seg_o<2>" LOC = "F13" ; # segment 'f', active low
NET "led7_seg_o<1>" LOC = "N16" ; # segment 'g', active low
NET "led7_seg_o<0>" LOC = "P16" ; # segment 'dp', active low
#########################################################################################

#########################################################################################
# Push-buttons:
NET "button_i<3>" LOC = "L14" ; # BTN3 active high
NET "button_i<2>" LOC = "L13" ; # BTN2 active high
NET "button_i<1>" LOC = "M14" ; # BTN1 active high
NET "button_i<0>" LOC = "M13" ; # BTN0 active high
#########################################################################################

Additional information