Digital Systems: From Logic Gates to Processors
Offered By: Universitat Autònoma de Barcelona (Autonomous University of Barcelona) via Coursera
Course Description
Overview
This course gives you a complete insight into the modern design of digital systems fundamentals from an eminently practical point of view. Unlike other more "classic" digital circuits courses, our interest focuses more on the system than on the electronics that support it. This approach will allow us to lay the foundation for the design of complex digital systems.
You will learn a set of design methodologies and will use a set of (educational-oriented) computer-aided-design tools (CAD) that will allow you not only to design small and medium size circuits, but also to access to higher level courses covering so exciting topics as application specific integrated circuits (ASICs) design or computer architecture, to give just two examples.
Course topics are complemented with the design of a simple processor, introduced as a transversal example of a complex digital system. This example will let you understand and feel comfortable with some fundamental computer architecture terms as the instruction set, microprograms and microinstructions.
After completing this course you will be able to:
* Design medium complexity digital systems.
* Understand the description of digital systems using high-level languages such as VHDL.
* Understand how computers operate at their most basic level (machine language).
Syllabus
- All you need to know to start the course
- Click on "v More" to read the purpose of this module
We have collected here everything you need to know before starting the course.
This week is divided into three sections:- The first is the one you're reading about now and includes a number of general explanations about how the course will run and about the virtual machine you should install on your computer to answer the different quizzes .
- The second (Previous knowledge: A review) presents a series of tests you can use to check your level of knowledge about numbering systems and the use of pseudocode to describe algorithms.
- The third block contains the first real topic of the course: What Digital Systems are?
- Previous knowledge: A review
- Check your knowledge about binary and hexadecimal numbering systems, and the description of algorithms using a pseudocode
- What Digital Systems are?
- Click on "v More" to read the purpose of this module
This module is an introduction to Digital Systems. Here you will find:- A set of videos_L covering issue 1 and the corresponding exercises,
- Two videos_P introducing the processor that we will design along the course, and
- Some video-based explanations; a wiki and some FAQs about how VerilUOC_Desktop tool functions.
You will have to use VerilUOC_Desktop in the next module
- Combinational Circuits (I)
- Click on "v More" to read the purpose of this module
This module introduces combinational circuits, logic gates and boolean algebra, all of them items necessary to design simple combinational circuits.
Read the "Index of lessons" for more information.
To solve the exercises in this module you will need to use VerilUOC_Desktop. Look at the module "VerilUOC_Desktop tools" to learn how to use it. - VerilUOC_Desktop tools
- Click on "v More" to read the purpose of this module
From this week you will need to use VerilUOC_Desktop to do some of the exercises in the quizzes. VerilUOC_Desktop is a software package based on Logisim, enhanced with a number of modules to enable:- Enter Boolean equations (BoolMin),
- Enter digital circuits and check them according the problem statement (VerilCirc), and
- Enter chronograms (time-charts) and check that they are correct (VerilChart).
- Combinational circuits (II)
- Click on "v More" to read the purpose of this module
We continue the study of combinational circuits. While in the previous module we were working on the classical design techniques of combinational circuits, this one is focused on other issues such as a brief introduction to computer aided design tools (CAD tools), or the direct synthesis of combinational circuits from its algorithmic description.
Read the "Lesson index" for more information.
To solve the exercises in this module VerilUOC_Desktop is needed. Remember that the "VerilUOC_Desktop" section in module 2 contains all the information you need about this tool. - Arithmetic components + Introduction to VHDL
- Click on "v More" to read the purpose of this module
Arithmetic circuits are an essential part of many digital circuits and thus deserve a particular treatment.- The first part of this module presents some implementations of the basic arithmetic operations. Only operations with naturals (non-negative integers) are considered.
- The second part of this module introduces the basics of VHDL with the goal of providing enough knowledge to understand its usage throughout this course and start developing basic hardware models.
- Sequential circuits (I)
- Click on "v More" to read the purpose of this module
This is the first module dedicated to Sequential Circuits (Digital Systems with Memory).
To solve the quizzes you will need VerilUOC_Desktop. Remember that the first week includes a complete description of VerilUOC_Desktop. In particular, VerilChart is presented in the second video. - Sequential circuits (II)
- Click on "v More" to read the purpose of this module
This second module dedicated to Sequential Circuits deals with particular sequential circuits that are building blocks of larger circuits, namely registers, counters and memory blocks. - Sequential circuits III and Finite State Machines
- Click on "v More" to read the purpose of this module
This module deals with two topics:- In previous lessons, the relation between algorithms (programming language structures) and combinational circuits has been commented. This relation also exists between algorithms and sequential circuits. We will explore this relation in the current module.
- The second topic we will see is the definition and VHDL modelling of Finite State Machines.
- Implementation of digital systems
- Click on "v More" to read the purpose of this module
This last module presents some basic information about manufacturing technologies, as well as about implementation strategies, and synthesis and implementation tools. - COURSE SUMMARY AND FAREWELL
Taught by
Lluis Terés, Jean-Pierre Deschamps, Merce Rullan, Elena Valderrama, Juan Antonio Martínez, David Bañeres and Joaquín Saiz Alcaine
Related Courses
An Introduction to Logic for Computer ScienceUniversity of Leeds via FutureLearn Logic II
Brilliant Build a Modern Computer from First Principles: From Nand to Tetris (Project-Centered Course)
Hebrew University of Jerusalem via Coursera Understanding Maths and Logic in Computer Science
Raspberry Pi Foundation via FutureLearn Computer Architecture
Codecademy