Sunteți pe pagina 1din 3

2019/10/29 14:38 1/3 Tema 1 - Înmulțirea numerelor cu semn

Tema 1 - Înmulțirea numerelor cu semn


● Responsabili: George Flurche, Ovidiu Moldoveanu
● Deadline soft (fără penalizări): 10.11.2019 ora 23:59; Deadline hard: 17.11.2019 ora 23:59
● Data publicării: 27.10.2019
● Data ultimei actualizări: 27.10.2019, 21:00
● Istoric modificări:
❍ 27.10.2019:
■ adăugat tester online și offline
❍ 29.10.2019
■ prelungire deadline temă (+4 zile)

Obiective

Tema are ca scop familiarizarea cu noțiunile limbajului Verilog studiate în cadrul primelor laboratoare:​
module, construcții de limbaj, blocul ​​always combinațional,​ prin implementarea unui algoritm dat.

Descriere și cerințe

Implementați un circuit care realizează înmulțirea a două numere întregi (cu semn), utilizând
algoritmul lui Booth, sau un algoritm la alegere, de aceeași complexitate, numerele fiind preluate
de la un afișaj digital pe două cifre, reprezentate în următoarea formă:

Valoarea 1 a biților asociați ledurilor din imagine semnifică activarea acestora. Observați în imaginea
de mai jos codificări de numere cu semn pe două cifre.

AC Wiki - https://elf.cs.pub.ro/ac/wiki/
Last update: 2019/10/29 13:28 teme:tema1 https://elf.cs.pub.ro/ac/wiki/teme/tema1

În procesul de decodificare a operanzilor, aveți în vedere reprezentarea valorilor în cod complementar


(complement față de doi).
Ieșirea va reprezenta rezultatul înmulțirii celor două intrări decodificate.

Ieșirea circuitului reprezintă rezultatul în forma sa binară al înmulțirii numerelor obținute prin
decodificare (fiecare având 8 biți: pentru a cuprinde valori între -99 și 99, sunt necesari 15 biți pentru
a stoca rezultatul)
Modulul implementat trebuie să respecte următoarea interfață (declararea ieșirilor de tip reg este
permisă):

module multiplier(
output[14:0] product, // rezultatul inmultirii in complement fata de
2
input [14:0] x, // codificarea primului numar
input [14:0] y); // codificarea celui de-al doilea numar

Modul de implementare a circuitului (structural sau comportamental) este la latitudinea voastră.


Motivați în cadrul documentației temei (format pdf) alegerea făcută.

În cazul în care alegeți să implementați multiplicatorul utilizând un alt algoritm decât Metoda lui Booth,
consultați un responsabil de temă pentru a vă confirma că algoritmul ales îndeplinește standardele de
evaluare propuse pentru această temă.

Notare

● 10 pct: corectitudine; sunt testate toate combinațiile valide de operanzi pe 15 biți; se vor codifica
valorile afișajului de la -99 la 99 pentru fiecare operand și se vor compara iterativ valorile produsului
cu ale unui circuit de referință
● -10 pct: folosirea construcțiilor nesintetizabile din Verilog (while, repeat, for cu număr variabil de
iterații, operatorul *, instrucțiuni de întârziere etc.)

-5 pct: folosirea algoritmului de înmulțire prin adunări repetate ( această depunctare este aplicată
de către corector, nu automat de către vmchecker)
● -1.5 pct: lipsa documentației temei
● -0.5 pct: pentru fiecare zi de întârziere; tema poate fi trimisă cu maxim 7 zile întârziere față de
termenul specificat în enunț (față de deadline-ul soft); vacanța și sarbătorile legale nu sunt
considerate zile de întârziere
● -0.2 pct: folosirea incorectă a atribuirilor continue (assign), blocante (=) și non-blocante (<=)
https://elf.cs.pub.ro/ac/wiki/ Printed on 2019/10/29 14:38
2019/10/29 14:38 3/3 Tema 1 - Înmulțirea numerelor cu semn

● -0.5 pct: indentare haotică


● -0.2 pct: lipsa comentariilor utile
● -0.1 pct: comentarii inutile (ex. wire x; // semnalul x)
● -0.2 pct: diverse alte probleme constatate în implementare (per problemă)

Dacă tema primește 0pct pe vmchecker, se pot acorda maxim 2pct pe ideea implementării, la
latitudinea asistentului. Ideea și motivele pentru care nu funcționează trebuie documentate temeinic
în pdf-ul încărcat și/sau comentarii. Temele care au erori de compilare vor fi notate cu 0pct.

Alte precizări

● Arhiva temei (de tip zip) trebuie să cuprindă în rădăcina sa (fără alte directoare) doar:
❍ fișierele sursă (extensia .v)
❍ documentația temei (pdf)
● Arhiva nu trebuie să conțină fișiere de test, fișiere specifice proiectelor etc.
● Documentația temei va conține minim:
❍ numele și grupa
❍ prezentarea generală a soluției alese (ex: descrierea de nivel înalt a algoritmului folosit)
❍ explicarea porțiunilor complexe ale implementării (poate fi făcută și în comentarii)
❍ alte detalii relevante
● Vmchecker ne permite să revenim la orice soluție încărcată de voi; cereți revenirea la cea mai
convenabilă soluție trimisă (punctaj teste automate + depunctare întârziere) printr-un mail
responsabilului de temă
● Tema trebuie realizată individual; folosirea de porțiuni de cod de la alți colegi sau de pe Internet (cu
excepția site-ului de curs) poate fi considerată copiere și va fi penalizată conform regulamentului.

Resurse

● Tester offline
● PDF temă
● Wikipedia - Booth's multiplication algorithm
● Ghidul studentului la AC
● Utilizarea vmchecker
● Debugging folosind Xilinx ISE

From:
https://elf.cs.pub.ro/ac/wiki/ - AC Wiki

Permanent link:
https://elf.cs.pub.ro/ac/wiki/teme/tema1

Last update: 2019/10/29 13:28

AC Wiki - https://elf.cs.pub.ro/ac/wiki/

S-ar putea să vă placă și