EEL 510389 – Digital Systems and Reconfigurable Devices


Graduate Program in Electrical Engineering
Course code: EEL 510389
Course name: Digital Systems and Reconfigurable Devices
Course name (in Portuguese): Sistemas Digitais e Dispositivos Lógicos Reconfiguráveis
Credits: 4

Professor: Eduardo Augusto Bezerra
Term: 2021/1 - Thursday 17:10-18:00-18:50-19:40-20:30
Google meet: https://meet.google.com/okn-prsq-euu


Syllabus

Introduction to digital systems; Combinational and sequential circuits; Digital systems design at the register transfer level (RTL); CPU classical model with datapath and control unit; Reconfigurable devices; Digital systems prototyping.

Ementa

Conceitos introdutórios de sistemas digitais; Circuitos combinacionais e sequenciais; Projeto de sistemas digitais no nível de transferência entre registradores (RT); Modelo clássico de CPU com bloco de dados e bloco de controle; Dispositivos lógicos reconfiguráveis; Prototipação de sistemas digitais.


Methodology

  • The contents will be introduced through lectures with the aid of multimedia resources.
  • Laboratory sessions where the students follow tutorials provided by the lecturer with instructions for using tools and development boards.
  • Reading and discussion of classical and state-of-the-art scientific papers.
  • Presentation of seminars prepared by the students.
  • The supporting texts and source codes used in the lectures and in the laboratory sessions are available on the course’s page and on the Moodle platform.
  • Hardware Description Languages (HDLs) will be used throughout the course to describe the circuits and digital systems presented.

Synopsis

  1. Introduction
    • Combinational circuits
    • Sequential circuits
    • Reconfigurable logics
    • The design flow of digital systems using EDA tools
  2. Digital systems and hardware description languages
    • Boolean Algebra and Boolean Expressions
    • Encoders, Decoders, Multiplexers, Demultiplexers
    • Arithmetic circuits, adders, comparators, counters, shifters, multipliers
    • Arithmetic and Logic Unit (ALU): synthesis and simulation with a hardware description language
  3. Sequential circuits and controllers
    • Latches and flip-flops
    • Finite State Machines (FSMs)
    • Controllers design using FSMs
    • FSMs synthesis using a hardware description language
  4. Case study
    • Datapath and control unit design for a processing unit
    • Register Transfer Level (RTL) description of a processing unit using a hardware description language
    • Simulation, logical synthesis, physical synthesis, and hardware prototyping of a processing unit

Student assessment

  • The final grade (FT) is calculated through the geometric mean: FT = sqrt(P x S), where P is the end-of-term project grade, and S is the grade for the preparation/presentation of the seminars.
  • Pass conditions: class attendance > 75% and FT >= 7,0

Reading list

  • David A. Patterson, John L. Hennessy, “Computer Organization and Design RISC-V Edition: The Hardware Software Interface”, Morgan Kaufmann, 2017.
  • Frank Vahid, “Digital Design”, 1st ed., Wiley, 2007.
  • Eduardo Bezerra and Djones Lettnin, “Synthesizable VHDL Design for FPGAs“, Springer, 2014.
  • Randy Katz, Gaetano Borrielo, “Contemporary Logic Design””, 2nd ed., Prentice Hall, 2005.
  • John F. Wakerly, “Digital design: Principles and practices”, Prentice Hall, 2005.
  • Volnei A. Pedroni, “Circuit Design with VHDL”, The MIT Press, 2004.
  • Frank Vahid, “VHDL for Digital Design”, 1st ed., Wiley, 2007.
  • Pong P. Chu, “FPGA Prototyping by VHDL Examples: Xilinx Spartan-3 Version”, Wiley-Interscience, 2008.

 


Supporting tools


End-of-term project


Schedule

Lecture Contents
1 Digital systems and VHDL synthesis for FPGAs:

2 Digital systems and VHDL synthesis for FPGAs:

3 Digital systems testing and VHDL Test Benches:

4 Sequential circuits and FSMs:

  • Sequential circuits and FSMs described in VHDL [slides]
  • Case study: Vending machine controller [slides].

Supporting papers:

5
6 RISC-V case study

  • Functional description of a contemporary architecture – The RISC-V case study: instruction set, registers, and addressing modes.
  • Seminars (22-Jul-2021): Slides presentation – Chapter 2, Patterson and Hennessy book “Computer Organization and Design RISC-V Edition: The Hardware Software Interface”.
7 RISC-V case study

8 RISC-V case study

  • Seminars (5-Aug-2021) Chapter 4 – slides 49 to 76:
    • single-cycle: slides 49 to 57 – Giordano
    • multi-cycle: slides 58 to 63 – Felipe
    • forwarding 1: slides 64 to 66 – Renan
    • forwarding 2: slides 67 to 69 – Roniere
    • forwarding 3: slides 70 to 72 – Andre
    • hazard: slides 73 to 76 – Raphael

 

Exercises

  • VHDL implementation and ModelSim simulation of the fetch instructions unit, shown in the block diagram on slide 13 (Chapter 4). This development will result in a better understanding of the remaining slides (14 to 27), and also the basic concepts of RISC-V presented in the previous classes.
  • VHDL implementation and ModelSim simulation of the instructions memory shown in slide 13.
  • VHDL implementation and ModelSim simulation of the data memory shown in slide 15.
  • VHDL implementation and ModelSim simulation of the registers file shown in slide 14.
  • VHDL implementation and ModelSim simulation of the ALU shown in slide 14 (see the ALU’s operation table in slide 21).
  • VHDL implementation and ModelSim simulation of the full datapath shown in slide 20.

 

Tools

  • Ripes: RISC-V simulator. The Ripes simulator (available on Github), can be used not only to simulate RISC-V program executions, but also as an assembler for the instructions (to generate the binary code for the instructions).
9 RISC-V case study

  • Seminars (12-Aug-2021) Presentations describing the execution of the instructions in the RISC-V architecture, using slide 72 of Chapter 4 (pages 542 to 600 of Patterson e Hennessy “Computer Organization and Design RISC-V Edition: The Hardware Software Interface”). The students must find out the binary codes for the instructions listed next, and explain all the activities performed by the architecture (datapath and control unit). The explanation must consider a multi-cycle (pipeline) RISC-V architecture, using a VHDL implementation to show where in the code the respective instruction is described (which parts of the VHDL hardware are exercised by the instruction).
    Andre add x19, x0, x1 ld x1, 0(x2) blt x2, x3, 32
    Felipe addi x20, x20, -32 sd x3, 24(x0) beq x1, x3, 16
    Giordano sub x4, x1, x5 ld x4, 16(x0) blt x4, x5, 40
    Raphael add x2, x19, x3 sd x15, 100(x2) beq x5, x6, 8
    Renan and x5, x1, x4 ld x2, 8(x0) blt x6, x4, 4
    Roniere addi x4, x2, 12 sd x1, 10(x3) beq x1, x0, 40
10 End-of-term project definitionDiscussion on the expected architecture for the end-of-term project (memories, I/O, datapath, control unit).
11
12 End-of-term project (10%): Technical report – preliminary. The block diagrams used in the text must be prepared by the students. Slides/book copies will not be considered!
13 End-of-term project (10%): VHDL + testbench of the datapath.
14 End-of-term project (10%): VHDL + testbench of the control unit.
15 End-of-term project (20%): VHDL + testbench of the datapath and control unit integration.
16 End-of-term project (50%): Demonstration of the proposed RISC-V implementation in a simulator, and final report upload in the Moodle platform.

 

2021/1 Seminars schedule:

  • 15/Jul. [10%] Seminars – Research papers
  • 22/Jul. [20%] Seminars – RISC-V
  • 05/Aug. [40%] Seminars – RISC-V
  • 12/Aug. [30%] Seminars – RISC-V

2021/1 End-or-term project deliveries:

  • 02/Sept. [10%] Technical report – preliminary. The block diagrams used in the text must be prepared by the students. Slides/book copies will not be considered!
  • 09/Sept. [10%] VHDL + testbench of the datapath.
  • 16/Sept. [10%] VHDL + testbench of the control unit.
  • 23/Sept. [20%] VHDL + testbench of the datapath and control unit integration.
  • 30/Sept. [50%] Demonstration of the proposed RISC-V implementation in a simulator, and final report upload in the Moodle platform.

 

Papers presented in past editions (last update in 2021):