Digital systems and hardware description languages  

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.
Presential
English
Digital systems and hardware description languages
English

Funded by the European Union. Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union or HaDEA. Neither the European Union nor the granting authority can be held responsible for them. The statements made herein do not necessarily have the consent or agreement of the ASTRAIOS Consortium. These represent the opinion and findings of the author(s).