This shows you the differences between two versions of the page.
ac-is:lab:lab02 [2021/10/03 13:57] eduard.ciurezu [Exerciții] |
ac-is:lab:lab02 [2023/10/21 14:51] (current) teodor.dicu [Resurse] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Laboratorul 2 - Operatori. Atribuire continuă. Parametrizare. Testare ====== | ====== Laboratorul 2 - Operatori. Atribuire continuă. Parametrizare. Testare ====== | ||
- | |||
În laboratorul anterior au fost prezentate elementele Verilog necesare pentru descrierea structurală a circuitelor logice. Aceasta poate deveni complicată și dificil de înțeles pentru circuite ce îndeplinesc o funcționalitate complexă. | În laboratorul anterior au fost prezentate elementele Verilog necesare pentru descrierea structurală a circuitelor logice. Aceasta poate deveni complicată și dificil de înțeles pentru circuite ce îndeplinesc o funcționalitate complexă. | ||
Line 200: | Line 199: | ||
my_beautiful_parameterized_module #(.a_width(3), | my_beautiful_parameterized_module #(.a_width(3), | ||
.b_width(2), | .b_width(2), | ||
- | .c_width(5)) inst2(out, a, b); | + | .out_width(5)) inst2(out, a, b); |
// Sau, menținându-se ordinea parametrilor, doar prin specificarea noilor // dimensiuni: | // Sau, menținându-se ordinea parametrilor, doar prin specificarea noilor // dimensiuni: | ||
Line 213: | Line 212: | ||
Pentru testarea unui modul folosind simulatorul se creează module speciale de test, în care, printre altele, se vor atribui valori intrărilor. Simularea permite detecția rapidă a erorilor de implementare și corectarea acestora. | Pentru testarea unui modul folosind simulatorul se creează module speciale de test, în care, printre altele, se vor atribui valori intrărilor. Simularea permite detecția rapidă a erorilor de implementare și corectarea acestora. | ||
- | Pentru a creea un modul de test și a-l simula puteți urma tutorialul de simulare, iar această secțiune va prezenta câteva din construcțiile de limbaj pe care le puteți folosi într-un astfel de modul. | + | Pentru a creea un modul de test și a-l simula puteți urma tutorialul de simulare [[https://ocw.cs.pub.ro/courses/ac-is/tutoriale/2-ise-simulare|aici]], iar această secțiune va prezenta câteva din construcțiile de limbaj pe care le puteți folosi într-un astfel de modul. |
{{ :ac-is:lab:lab02:circuit_tb.png }} | {{ :ac-is:lab:lab02:circuit_tb.png }} | ||
Line 269: | Line 268: | ||
* //Hint//: Utilizați atribuirea continuă pentru implementare | * //Hint//: Utilizați atribuirea continuă pentru implementare | ||
* //Hint//: Atenție la dimensiunea semnalelor de ieșire | * //Hint//: Atenție la dimensiunea semnalelor de ieșire | ||
- | - (2p) Folosind tutorialul de simulare, implementați un modul de test care să stimuleze sumatorul în cât mai multe situații posibile | + | - (2p) Folosind [[https://ocw.cs.pub.ro/courses/ac-is/tutoriale/2-ise-simulare|tutorialul de simulare]], implementați un modul de test care să stimuleze sumatorul în cât mai multe situații posibile |
* //Hint//: Variabilele pe care le atribuim în modulul de test vor fi de tip //reg//. | * //Hint//: Variabilele pe care le atribuim în modulul de test vor fi de tip //reg//. | ||
- | * //Hint//: Imaginați-vă atât situații obișnuite de adunare, cât și situații speciale (ex. carry = 1) | + | * //Hint//: Testați atât situații obișnuite de adunare, cât și situații speciale (ex. carry = 1) |
* //Hint//: Consultați forma de undă pentru a determina corectitudinea implementării.Verificați corectitudinea sumatorului vizualizând semnalele în baza 10. | * //Hint//: Consultați forma de undă pentru a determina corectitudinea implementării.Verificați corectitudinea sumatorului vizualizând semnalele în baza 10. | ||
- (1p) Analizând implementarea din [[ac-is:lab:lab01|Laboratorul 1]] și varianta curentă, analizați cele două tipuri de implementări. | - (1p) Analizând implementarea din [[ac-is:lab:lab01|Laboratorul 1]] și varianta curentă, analizați cele două tipuri de implementări. | ||
Line 282: | Line 281: | ||
* //Hint//: Considerând experiența exercițiului 2, există vreo posibilitate să parametrizați comparatorul? | * //Hint//: Considerând experiența exercițiului 2, există vreo posibilitate să parametrizați comparatorul? | ||
- **(2p)** Implementați și simulați un **multiplexor 4:1**. Urmăriți diagrama de semnale generată: | - **(2p)** Implementați și simulați un **multiplexor 4:1**. Urmăriți diagrama de semnale generată: | ||
- | * //Hint//: Consultați laboratorul 0 pentru implementarea unui multiplexor 4:1. | + | * //Hint//: Consultați [[ac-is:lab:lab00|laboratorul 0]] pentru implementarea unui multiplexor 4:1. |
* //Hint//: Respectați interfața cerută în scheletul de cod. | * //Hint//: Respectați interfața cerută în scheletul de cod. | ||
- (1p) Implementați multiplexorul folosind ecuația logică dedusă din tabelul de adevăr. | - (1p) Implementați multiplexorul folosind ecuația logică dedusă din tabelul de adevăr. | ||
Line 290: | Line 289: | ||
===== Resurse ===== | ===== Resurse ===== | ||
- | * <html><a class="media mediafile mf_pdf" href="https://ocw.cs.pub.ro/courses/ac-is/lab/lab00?do=export_pdf">PDF laborator</a></html> | + | * {{.:lab02:lab2_skel.zip|Schelet de cod}} |
+ | * <html><a class="media mediafile mf_pdf" href="https://ocw.cs.pub.ro/courses/ac-is/lab/lab02?do=export_pdf">PDF laborator</a></html> | ||
+ | * {{.:lab02:sol:lab2_sol.zip|Soluție laborator}} | ||
- | <ifauth @user> | + | <ifauth @ac-is> |
---- | ---- | ||
+ | * {{.:lab02:sol:lab2_sol.zip|Soluție laborator}} | ||
* [[ac-is:internal:guidelines|Ghid asistent]] | * [[ac-is:internal:guidelines|Ghid asistent]] | ||
</ifauth> | </ifauth> |