Course Overview
The “Elaboration System Architectures” (ASE) course starts in the first semester of the Computer Science master course first year. It comprehends 9 CFU, split in 51 hours in lessons, 18 hours in exercises and 18 hours in practical laboratories, for a total of 87 hours. Student's estimated effort is of 2h per hour of lesson; 1h per hour of exercise and 1h per hour of practical laboratory. As 1 CFU = 24h, whose 12h are for lesson, 6h for exercises and 6 for practical laboratory, from the course 9 CFU derives a load for the student of 9 CFU x 24h = 216h. These hours of work are so divided: 12 x 9 = 108h of lesson, 54h of exercises and 54h of practical laboratory. The professor will have to distribute, according to this load: 108/3 = 36h of lesson; 54/2 = 27h of exercises; 54/2 = 27h of practical laboratory; for a total of 90 hours in 13 weeks, with 7h per week.
Prerequisites
The course widely refers to the arguments already treated by the courses of “Fundamentals of Computer Science I and II”, “Logical Networks” and “Computers Architectures I” of the bachelor course of studies.
Educational Goals
The course supplies the student with designing methodologies basics, needed for modern digital systems realisation (microprocessor systems, sensors and I/O devices). The student will acquire methods and techniques for the components design of dedicated elaboration systems (embedded systems) and general purpose elaboration systems. Moreover, he/she will acquire skills on the usage of hardware design tools and languages, needed by the entire development cycle of a medium complexity system, including the synthesis on FPGA and functional tests.
Course Organisation
The course comprehends face-to-face lessons and seminars on specific arguments for an in-depth analysis. Exercises and practical laboratory are hold in classroom. Students attending the course are split in groups (from 3 to 4 students each), which will realise concrete projects of digital systems make with the help of professional CAD tools. The course, mandatory for the master course computer science students, is strongly oriented to the digital design and attendance is required.
Final Examination
Exams happen monthly, excluding March. Students who are repeating the year can hold the examination following the program of the year in which they attended the course, or, under request, following the program of the current year after having agreed upon the lessons they will have to follow to integrate. The examinations consists of:
- An oral examination discussing all the topics treated during the course, with possible written exercises.
- A description of the papers developed during the exercises and of the group assigned project. All the papers have to be well documented and well written, according a given template.
Lessons organisation according to the course program
- Source introduction. Level organisation of a digital system; general purpose, special purpose and embedded systems.
- Informations and signals; positive and negative logic representation; 0-active and 1-active signals.
- Digital systems design: technological and methodological aspects, support environments; digital system development, design flow and verification.
- Sequential and combinational Logical networks; combinational multi-output networks; realisation of boolean functions through digital circuits; delays analysis and evaluation, signals deformations, power consumption.
- Boolean functions minimisation with canonical forms and more; single and multi output combinational networks minimisation with exact methods (McCluskey) and heuristics, with the utilisation of automatic tools like Berkeley SIS.
- Multi level minimisation of combinational networks; representation methods; algebraic model; algebraic and boolean transformations.
- Synchronous and asynchronous, impulsive and level sequential machines; Huffmann and Muller models; sequential networks systems (open and closed chain sequential networks, pipeline architectures).
- Synchronous sequential machines design.
- Elements of asynchronous machine design working according to Huffmann and Muller models.
- Handshaking types; C-Muller synchronisation network.
- Programmable devices: PAL, PLA, FPGA and ASIC.
- Develop process of digital systems design, synthesis and technological mapping.
- Digital systems; functions and structural models of systems; micro operations and their description; system logic components; system operations; complex digital system architecture; Operative Part and Control Part model (PO/PC).
- Wired-up control and micro controlled PC systems, micro languages and their classification.
- HDL languages for hardware design: VHDL, Verilog and SystemC.
- VHDL in-depth analysis; basic examples of VHDL devices description.
- Arithmetic circuits design: adders and subtracters (ripple carry; carry save; carry look ahead) with VHDL description and simulation.
- Arithmetic circuits design: multipliers (rows, columns and diagonals; MAC cells; Robertson and Booth) and divisors (sequential and with no restoring) with VHDL description and simulation.
- System Data Path and its principal components: bus and interconnection networks; registers; Multiplexer and Demultiplexer; Decoder; Shifter; ALU; memories (ROM, PROM, E2PROM, static and dynamic RAM, Flash, etc..).
- Synchronous and asynchronous bus.
- Pipelined systems architectures.
- General model of I/O devices architecture used in digital systems.
- Transmission I/O devices project examples: parallel transmission, asynchronous serial transmission (UART) and synchronous serial transmission (USART).
- Signals encoding and transmission: bit cell concept; tranmission channels; line encoding; Non Return to Zero (NRZ) encoding; Non Return to Zero Inverted encoding; Return to Zero encoding; Manchester encoding; Miller encoding; differential Manchester encoding; modified Manchester encoding; serial and parallel transmission; signal modulation.
- Memory devices.
Exercises
- Single and multi output combinational networks synthesis with SIS design tool.
- Synchronous and asynchronous sequential networks synthesis.
- Function and characteristics of IDE digital design environments.
- Design process of a system described in VHDL.
- VHDL digital design methodology.
- Logical networks optimisation and technological mapping.
- I/O device development (UART/PIO).
- Digilent Nexys 2 board architectural description.
- Digilent Nexys 2 board devices description (switch, buttons, seven segments display, serial port, usb, etc)
Practical Laboratory
(during the practical laboratory hours, the student will synthesise circuits proposed during the course).
- SIS tool installation and utilisation for the logical networks design.
- Combinational networks synthesis exercises with SIS tool and delays analysis.
- Sequential networks synthesis exercises with SIS tool and delays analysis.
- Xilinx ISE environment description for FPGA synthesis and design of devices.
- VHDL description of basic combinational and sequential circuits. Simulation and synthesis on FPGA.
- Datapath basic components (mux, demux, decoder, etc...) VHDL description. Simulation and synthesis on FPGA.
- Adders and subtracters description. Simulation and synthesis on FPGA.
- Multipliers and divisors description. Simulation and synthesis on FPGA.
- Clock generators. Simulation and synthesis on FPGA.