Objectives and Contextualisation
This is a basic training course, taught during the second academic year, first semester. Is the bridge between the courses “Theory of Circuits and Electronics” and “Fundamentals of Computing”, in the first year, and “Computer Architecture and Peripherals”, in the second year.
The objectives of this course are for students to understand the role of digital systems in the computer world, be capable of designing low-to-medium complexity digital systems using logic gates and reconfigurable devices, and understand that a computer is simply a digital system of a certain complexity.
In the last part of the course, methodologies based on "Process Unit – Control Unit (UP-UC)" architectures are addressed to solve digital systems of a certain complexity by introducing the basic concepts of these architectures both in their "wired" version (UC made with gates and logic blocks) and "microprogrammed" (UC based on ROM + sequencer). Finally a simple computer open source (RISC-V) is presented in order for the students to understand the concepts of process-unit, control-unit, instruction set, microinstructions, microorders and microprogramming and applying the previous UP-UC architectures.
Competences
Electronic Engineering for Telecommunication
Develop personal work habits.
Develop thinking habits.
Learn new methods and technologies, building on basic technological knowledge, to be able to adapt to new situations.
Work in a team.
Telecommunication Systems Engineering
Develop personal work habits.
Develop thinking habits.
Learn new methods and technologies, building on basic technological knowledge, to be able to adapt to new situations.
Work in a team.
Learning Outcomes
Analyse and design combinational and sequential, synchronous and asynchronous, microprocessor and integrated circuits.
Apply the basics of hardware device description languages.
Develop applications in real time.
Develop critical thinking and reasoning.
Develop independent learning strategies.
Develop systemic thinking.
Develop the capacity for analysis and synthesis.
Manage available time and resources.
Manage available time and resources. Work in an organised manner.
Use computer tools to research bibliographic resources or information on telecommunications and electronics.
Use the basics of software design, verification and validation in the description of hardware systems based on high level hardware description languages.
Work cooperatively.
Content
Block 1: Combinational Circuits (CC)
Digital signals and digital systems. Description of digital systems. Electronic digital systems (EDS). MOS transistors. AND, OR and INV logical gates. Synthesis of EDS as a process of successive refinements.
Combinational Circuits. Synthesis from a table I: ROM. Synthesis from a table II: logic gates.
Boolean algebra. Truth tables.
NAND, NOR, XOR, NXOR logical gates. 3-state buffers.
Features: Propagation time. Hardware cost
Other combinational blocks: multiplexers, decoders, AND-OR planes (PLAs).
Synthesis tools: Synthesis from algorithms.
Block 2: Sequential Circuits (SC)
The need for sequential circuits. Some examples. States and synchronization. Synchronous sequential circuits. Clock, reset and set.
Explicit functional description of SCs. State transition graphs and tables.
Basic components: Flip flops and latches.
Synthesis of SC from tables. Moore and Mealy machines. States encoding.
Registers, counters and memories. Structures, types and most common uses.
Finite state machines (FSM). Formal definition. Implementation. Propagation times.
Hardware description language: VHDL. Some examples of FSM description using VHDL.
Sequential implementation of algorithms.
Physical implementation of digital circuits. Field Programmable Gate Arrays (FPGA) and other implementation strategies.
Block 3: Process Unit-Control Unit (PU-CU) architecture and processors
PU-CU architecture.
PU with multiplexers. PU with busses.
ROM based Control Unit with sequencers.
Basic structure of a microprocessor. Von Neumann architecture vs Harvard. Functional units and busses.
Processor instruction set. Programming with machine language. Micro-orders and status signals.
Example of open source processor: RISC-V
Harvard architecture. Fetch, decoding and execution cycles.
Microinstructions and microprograms.
Microprogrammed implementation of the Control Unit.
Relations between hardware, firmware and software.