View syllabus
LOGIC AND COMPUTER DESIGN FUNDAMENTALS
GIOVANNI STEA
Academic year2021/22
CourseCOMPUTER ENGINEERING
Code074II
Credits9
PeriodSemester 1
LanguageItalian

ModulesAreaTypeHoursTeacher(s)
RETI LOGICHEING-INF/05LEZIONI90
GIOVANNI STEA unimap
Obiettivi di apprendimento
Learning outcomes
Conoscenze

Lo studente che completa il corso sara' in grado di dimostrare conoscenze su: 1) teoria dei circuiti logici ed architettura del calcolatore; 2) linguaggi di descrizioni dell'hardware per circuiti logici; 3) descrizione e sintesi di circuiti logici. 

Knowledge

The student who successfully completes the course will be able to demonstrate knowledge on: 1) Switching theory and computer architecture; 2) Hardware Description Language for digital circuits; 3) Modeling and synthetizing digital circuits.

Modalità di verifica delle conoscenze

Le conoscenze verranno verificate 

a) durante la prova scritta, mediante domande a risposta chiusa 

b) durante la prova orale, mediante domande da rispondere per iscritto, sulla base delle quali si innestera' una discussione con il candidato.

Assessment criteria of knowledge

Knowledge will be assessed 

a) during a written exam, with multiple-choice questiosn

b) during the oral exam, with questions to which the student will respond in writing, based on which a discussion with the student will be carried out.

 

Capacità

L'insegnamento ha l'obiettivo di sviluppare la capacità (professionali) di descrivere formalmente con tabelle e linguaggi HDL circuiti di varia complessità e di sintetizzarli seguendo tecniche consolidate. Ha inoltre l'obiettivo di sviluppare capacita' di base di programmare in linguaggio Assembler.

Skills

The course aims at developing the professional capability to formally describe, through tables and HDL langugaes, logic circuits of growing complexity, and syntesizing them using well-known techniques. Moreover, it aims at developing basic Assembler programming skills. 

Modalità di verifica delle capacità

Le capacita' verranno verificate facendo svolgere al candidato esercizi di descrizione e sintesi di reti complesse, e di Assembler, sia nell'ambito della prova scritta che di quella orale. 

Assessment criteria of skills

Capabilities will be verified by having students solve exercises of description and synthesis of complex circuits, during both the written and the oral exam. Moreover, a practical exam involving Assmbler programming is required. 

Comportamenti

L'insegnamento ha l'obiettivo di indicare agli studenti un comportamento progettuale articolato in fasi successive da quella più creativa della modellazione, a quella più formale della descrizione a quella finale e più tecnica della implementazione.

Behaviors

The course aims at providing students with articulate design capabilities in successive phases, from the more creative one of modeling, to the more formal one of description, to the final and more technical one of implementation.

Modalità di verifica dei comportamenti

I comportamenti progettuali verranno verificati in sede di prova scritta, fornendo al candidato le specifiche di reti da descrivere formalmente e da sintetizzare. 

Assessment criteria of behaviors

Design capabilities will be verified during the written exam, by giving a students the specifications of a logic circuit to be described formally and implemented. 

Prerequisiti (conoscenze iniziali)

Gli studenti devono avere conoscenze approfondite dei fondamenti dell'informatica, in particolare di un linguaggio di programmazione di alto livello (e.g., C++). Devono inoltre possedere conoscenze di base dell'organizzazione a blocchi del calcolatore e della rappresentazione dell'informazione (numeri naturali ed interi).

Prerequisites

Students must have a deep knowledge of programming fundamentals, and more specifically of a high-level language (e.g., C++). They must also possess basic notions of the high-level organization of a computer and of information representation (natural and integer numbers). 

Indicazioni metodologiche

Metodo di insegnamento: lezioni frontali. 

Attivita' di apprendimento: frequenza delle lezioni (non obbligatoria, ma consigliata)

 

Teaching methods

Delivery: face to face

Learning activities:

  • attending lectures

Attendance: Advised

Teaching methods:

  • Lectures
Programma (contenuti dell'insegnamento)

Linguaggio Assembler: Descrizione Linguaggio macchina, mnemonico, assembler. Indirizzamento degli operandi. istruzioni operative: trasferimento, aritmetiche, traslazione/rotazione, logiche. Istruzioni di controllo. Istruzioni per operandi stringa. Assemblaggio e debugging. Utilizzo del debugger GDB. Sottoprogrammi e passaggio dei parametri. 

Reti combinatorie: Le porte AND, OR, NOT, NAND e NOR; il decodificatore/demultiplatore; il multiplatore. Le porte a tre strati e le loro applicazioni. Modalità di descrizione, trattazione algebrica e sintesi ottima delle reti combinatorie. 

Reti sequenziali asincrone: I flip-flop SR, D latch e D edge-triggered. Le memorie RAM.

Reti sequenziali sincronizzate: L'elemento di registro; i registri in traslazione e i contatori. Reti sequenziali sincronizzate di Moore, di Mealy e di Mealy Ritardato: modelli funzionali, modalità di descrizione, modelli implementativi. Il flip-flop J-K. Reti sequenziali complesse: descrizione in un linguaggio di trasferimento tra registri, sintesi in accordo al modello strutturale con parte operativa e parte controllo (con particolare riferimento ai modelli microprogrammati).

Struttura fisica di un calcolatore: Moduli di base e loro collegamento. Struttura interna del processore; della memoria e di alcune interfacce (parallele, seriali, di conteggio e per la conversione A/D e D/A). L'ingresso/uscita dati a controllo di programma. Cenni al meccanismo di interruzione. (La trattazione della maggior parte degli argomenti elencati in questo capoverso costituisce anche una esemplificazione sull'uso di reti combinatorie e sequenziali).

Algoritmi e reti di tipo aritmetico: Richiami sulla rappresentazione dei numeri naturali, interi e reali; gli algoritmi e le reti fondamentali per una aritmetica dei numeri naturali e dei numeri interi.

Syllabus

Assembly language: machine language, mnemonic, assembly. Operator addressing. Operating instruction: transfer, arithmetic, logic, translation/rotation. Control instructions. Assembling and debugging. Using the GDB. Subprograms and parameters. 

 Combinational logic: Gates NOT, AND, OR, NAND, NOR; decoder/demultiplexer; multiplexer; description, algebraic manipulation and synthesis of optimal circuits; transitions and glitches.

Asynchronous Sequential Logic: RS latch, D latch, positive-edge-triggered D flip-flop; RAM.

Synchronous Sequential Logic: registers and counters; Moore and Mealy models; JK flip-flop; complex sequential circuits: description in register transfer notation, circuit synthesis according to the operating part and control part mode (particular focus on microcoded models).

Structure of a computer: basic modules and their interconnection; internal structure of the CPU, memory and some interfaces; program-controlled I/O. Introduction to interrupt-controlled I/O. Arithmetic: natural and integer numbers representation; fundamental algorithms and digital circuits for natural and integer arithmetic operations.

Bibliografia e materiale didattico

Testi ufficiali:

  • Paolo Corsini, “dalle porte AND, OR, NOT al Sistema calcolatore”, edizioni ETS
  • Paolo Corsini, “circuiti logici per le operazioni sui numeri naturali e sui numeri interi”, edizioni ETS
  • Paolo Corsini, "Il Calcolatore Didattico C86.32", edizioni ETS

Sulla pagina web del docente sono disponibili dispense che coprono gran parte del programma. 

Bibliography

Required reading

  • P. Corsini: Dalle porte AND OR NOT al Sistema Calcolatore - un viaggio nel mondo delle reti logiche in compagnia del linguaggio Verilog, Ed. ETS Pisa
  • P. Corsini: Circuiti Logici per le Operazioni sui Numeri Naturali e sui Numeri Interi, Ed. ETS Pisa
  • Paolo Corsini, "Il Calcolatore Didattico C86.32", ed. ETS Pisa

The course webpage maintained by the teacher contains handouts covering most of the syllabus.

 

 

Modalità d'esame

L'esame consiste in:

  • una prova scritta, ulteriormente divisa in:
  1. domande a crocette, riguardanti tutto il programma svolto ed il cui superamento e' condizione necessaria per il prosieguo dell'esame (durata 20 minuti)
  2. esercizi di Assembler e di descrizione e sintesi di reti complesse, da svolgersi al calcolatore (durata 2.5-3 ore)
  • una prova orale, che puo' essere svolta da chi ha superato la prova scritta (durata 1.5-2 ore). 

Modalita' d'esame straordinarie a seguito dell'emergenza CoVid19

Fino alla ripresa della normale operativita' delle universita', l'esame verra' tenuto in questo modo:

  • una prova scritta, da tenersi online ulteriormente divisa in:
  1. domande a crocette, riguardanti tutto il programma svolto ed il cui superamento e' condizione necessaria per il prosieguo dell'esame (durata 20 minuti)
  2. esercizi di Assembler e descrizione e sintesi di reti complesse (durata 2.5-3 ore)
  • una prova orale, che puo' essere svolta da chi ha superato la prova scritta (durata 1.5-2 ore). 

Entrambe le prove vengono tenute in remoto, utilizzando Google Meets e/o Microsoft Teams. 

Ulteriori istruzioni sono riportate alla pagina del docente.

Assessment methods

The exam consists in:

  • a written test, further divided into:
  1. multiple-choice questions, regarding all the course program, failing which implies failing the exam (20 minutes)
  2. an Assembly-language program and exercises of description and synthesis of complex logic circuits (2.5-3 hours)
  • an oral test, which only those that have passed the previous two can sit for (1.5-2 hours).
Updated: 14/09/2021 14:51