Digital Systems: From Logic Gates to Processors (Coursera)

Digital Systems: From Logic Gates to Processors (Coursera)
Course Auditing

MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Digital Systems: From Logic Gates to Processors (Coursera)
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.

MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

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).



All you need to know to start the course

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?

This module is an introduction to Digital Systems. Here you will find:

1. A set of videos_L covering issue 1 and the corresponding exercises,

2. Two videos_P introducing the processor that we will design along the course, and

3. 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.

Read the "Lesson Index" in the "Index and PDF files" section and the "README" in the VerilUOC_Desktop section for more information.


Combinational Circuits (I)

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

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).

This section contains two videos explaining how these three tools work. By now you only need to use VerilCirc and BoolMin, so if you are pushed for time, you might postpone VerilChart for later. Obviously, it is impossible to cover in these two videos all eventualities you can find while working with VerilUOC_Desktop tools. In case of doubt, look at the VerilUOC_Desktop wiki, look at the FAQs or post your problems in the forums. There are specific forums for VerilCirc, BoolMin and VerilChart.


Combinational circuits (II)

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

Arithmetic circuits are an essential part of many digital circuits and thus deserve a particular treatment.

1. The first part of this module presents some implementations of the basic arithmetic operations. Only operations with naturals (non-negative integers) are considered.

2. 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)

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)

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

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

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

MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.