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: 2019/1 Thursday 8:20-09:10-10:00-10:50-11:40


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 lecturers 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. Sequencial 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

Lecturer Contents
1 Digital systems and VHDL synthesis for FPGAs:

2 Digital systems and VHDL synthesis for FPGAs:

3
  • Sequential circuits.
  • Sequential circuits described in VHDL
  • DE1-SOC exercises: Multiplier described in Altera slides.
4 Introduction to reconfigurable devices:

5 DE1-SOC exercises: Multiplier described in Altera slides.
6 DE1-SOC exercises: Vending machine controller.
7 DE1-SOC exercises: Vending machine controller.
8
  • Functional description of a contemporary architecture – The RISC-V case study: instruction set, registers, and addressing modes.
  • Seminars: Slides presentation – Chapter 2 of the Patterson and Hennessy book “Computer Organization and Design RISC-V Edition: The Hardware Software Interface”.
9 RISC-V case study:

10
  • Seminars: Presentations describing the instructions execution in the RISC-V architecture, using slides 25 to 27 of Chapter 4 (pages 510 to 515 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) during a single instruction execution. The explanation must consider a single-cycle RISC-V architecture.
    add x19, x0, x1 addi  x20, x20, -32 sub x2, x19, x3
    sub x4, x1, x5 and  x5, x1, x4 or x7, x8, x9
    ld x1, 0(x2) ld  x2, 8(x0) ld  x4, 16(x0)
    sd  x3, 24(x0) sd   x15,100(x2) blt x22, x20, 64
    beq x1, x3, 16 beq x1, x0, 40
11 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.
  • The Ripes simulator (available on github), can be used not only to simulate RISC-V programs executions, but also as an assembler for the instructions (to generate the binary code for the instructions).
12 End-of-term project (10%): Technical report describing the proposed RISC-V architecture, including block diagrams of the datapath and control unit. The block diagrams must be prepared by the students. Slides/book copies will not be considered!
13 End-of-term project (10%): VHDL + testbench of the datapath (source codes and technical report updated).
14 End-of-term project (10%): VHDL + testbench of the control unit (source codes and technical report updated).
15 End-of-term project (20%): VHDL + testbench of the datapath and control unit integration (source codes and technical report updated).
16 End-of-term project (30%): Demonstration of RISC-V assembly programs running in the developed architecture, and implemented in an FPGA development kit (source codes and technical report updated).
17 End-of-term project (20%): Final report upload in the Moodle platform. The final report must include also the user’s guide and the datasheet). 

2019/1 Schedule – Seminars and End-or-term project deliveries:

  • 25/04 – Seminars.
  • 09/05 – Seminars.
  • 23/05 – [10%] Technical report – preliminary.The block diagrams used in the text must be prepared by the students. Slides/book copies will not be considered!
  • 30/05 – [10%] VHDL + testbench of the datapath.
  • 06/06 – [10%] VHDL + testbench of the control unit.
  • 13/06 – [20%] VHDL + testbench of the datapath and control unit integration.
  • 27/06 – [30%] Demonstration of the RISC-V implementation in an FPGA development kit.
  • 04/07 – [20%] Final report upload in the Moodle platform.

 

Selected papers (last update in 2015):