Differences

This shows you the differences between two versions of the page.

Link to this comparison view

soc:laboratoare:04:todo [2025/03/25 19:49]
horia.moroianu3101
soc:laboratoare:04:todo [2026/03/22 17:11] (current)
robert_fabian.tudor
Line 1: Line 1:
    
-**Task 1** (2p + 0.25p + 0.25p) **Implementați un modul** care să aprindă și să stingă un LED la un anumit ​interval de timp. Astfelvom folosi ​un FSM simplu, cu doar două stări. **Completați** fișierul ''​**xdc**''​ și **încărcați** soluția **pe FPGA**+**Task 1** (2p + 0.25p + 0.25p) **Implementați un modul** care să aprindă și să stingă un LED la un interval ​regulat ​de timp. Pentru a realiza acest lucruveți construi ​un automat finit simplu, cu doar două stări:  
-    *În prima stare, LED-ul va fi stins, se va aștepta un anumit interval de timp (1s), iar apoi trece in starea 2. +    ***Starea 1:** LED-ul este stinsAutomatul așteaptă timp de 1 secundă, după care tranzitează în starea 2. 
-    *Starea a doua, în care va petrece același interval de timp, dar aprins.+    ***Starea 2:** LED-ul este aprins. Automatul așteaptă același interval de 1 secundă, după care revine în starea 1. 
 +**Completați** fișierul ''​**xdc**''​ și **încărcați** soluția **pe FPGA**.
 Urmăriți TODO-urile din schelet! Urmăriți TODO-urile din schelet!
  
  
-**Task 2** (2.5p + 0.25p + 0.75p) Chiar dacă a trecut ​Craciunul, acum știm destul de multe pentru a realiza o simplă instalație de pom. Implementați un FSM care să producă ​următoarea ​secvență folosind LED-urile. **Completați** fișierul ''​**xdc**''​ și **încărcați** soluția **pe FPGA**.+**Task 2** (2.5p + 0.25p + 0.75p) Chiar dacă a trecut ​Crăciunul, acum știm destul de multe pentru a realiza o simplă instalație de pom. Implementați un FSM care să producă secvența de mai jos folosind LED-urile. ​
   * "​*"​ înseamnă că LED-ul este aprins;   * "​*"​ înseamnă că LED-ul este aprins;
   * "​-"​ înseamnă că LED-ul respectiv este stins;   * "​-"​ înseamnă că LED-ul respectiv este stins;
   * T00, T01, ..., T14 sunt stările posibile ale LED-urilor;   * T00, T01, ..., T14 sunt stările posibile ale LED-urilor;
-  * Durata tranziției ​de la starea ​Tn la Tn+1 trebuie să fie de 1 secundă. <​code> ​   t00 *-*-*-*-+  * Timpul petrecut ​de automat în fiecare stare (Tntrebuie să fie de 1 secundă, după care se face tranziția la următoarea stare (Tn+1). <​code> ​   t00 *-*-*-*-
     t01 -*-*-*-*     t01 -*-*-*-*
     t02 *-*-*-*-     t02 *-*-*-*-
Line 26: Line 27:
     t14 -**-*--*     t14 -**-*--*
     mergi la t00</​code>​     mergi la t00</​code>​
 +    ​
 +**Completați** fișierul ''​**xdc**''​ și **încărcați** soluția **pe FPGA**.
     ​     ​
 <note tip> **Hint!** \\ **Pentru întârzierea tranziției trebuie să folosiți un timer.** Timer-ul este un circuit simplu care numără într-un contor tranzițiile ceasului. Astfel, pentru cronometrare folosiți frecvența ceasului ca să aflați câte tranziții trebuie numărate. **Apoi, blocați FSM-ul în starea curentă până când contorul ajunge la valoare dorită.** \\ Pentru simulare, va trebui să micșorați intervalul cronometrat.</​note>​ <note tip> **Hint!** \\ **Pentru întârzierea tranziției trebuie să folosiți un timer.** Timer-ul este un circuit simplu care numără într-un contor tranzițiile ceasului. Astfel, pentru cronometrare folosiți frecvența ceasului ca să aflați câte tranziții trebuie numărate. **Apoi, blocați FSM-ul în starea curentă până când contorul ajunge la valoare dorită.** \\ Pentru simulare, va trebui să micșorați intervalul cronometrat.</​note>​
  
-**Task 3** (2.5p + 0.5p + 1p) Implementați un modul care să simuleze comportamentul unui semafor pentru mașini, controlat prin apăsarea unui buton. Pentru acest task vom folosi unul dintre **LED-urile RGB** de pe placă. ​**Completați** fișierul ''​**xdc**''​ și **încărcați** soluția **pe FPGA**.+**Task 3** (2.5p + 0.5p + 1p) Implementați un modul care să simuleze comportamentul unui semafor pentru mașini, controlat prin apăsarea unui buton. Pentru acest task vom folosi unul dintre **LED-urile RGB** de pe placă. ​Modul de operare al automatului este prezentat mai jos.
   - În starea inițială mențineți aprinsă culoarea verde.   - În starea inițială mențineți aprinsă culoarea verde.
   - La apăsarea unui buton, cronometrați un interval de 1 secundă.   - La apăsarea unui buton, cronometrați un interval de 1 secundă.
Line 35: Line 38:
   - Apoi, modificați culoarea în roșu și mențineți-o timp de 3 secunde.   - Apoi, modificați culoarea în roșu și mențineți-o timp de 3 secunde.
   - Reveniți la starea inițială.   - Reveniți la starea inițială.
 +**Completați** fișierul ''​**xdc**''​ și **încărcați** soluția **pe FPGA**.
  
 <note important>​ <note important>​
Line 58: Line 62:
   - Sistemul revine la starea inițială.   - Sistemul revine la starea inițială.
  
-**Completați** fișierul ''​**xdc**'' ​pentru modul și încărcați pe FPGA.+**Completați** fișierul ''​**xdc**''​ și **încărcați** soluția **pe FPGA**.
  
 <note tip> <note tip>
-Pentru ca LED-urile RGB să nu funcționeze la intensitate maximă, am folosit o metodă numită PWM (Pulse Width Modulation). Pentru cei interesați,​ vă recomandăm să citiți [[https://​ocw.cs.pub.ro/​courses/​apm/​laboratoare/​07#:​~:​text=Edit-,​PWM,​-Pulse%2Dwidth%20modulation|această]] secțiune din laboratul de APM. (mic spoiler)+Pentru ca LED-urile RGB să nu funcționeze la intensitate maximă, am folosit o metodă numită PWM (Pulse-Width Modulation). Pentru cei interesați,​ vă recomandăm să citiți [[https://​ocw.cs.pub.ro/​courses/​apm/​laboratoare/​07#:​~:​text=Edit-,​PWM,​-Pulse%2Dwidth%20modulation|această]] secțiune din laboratul de APM. (mic spoiler)
 </​note>​ </​note>​
  
soc/laboratoare/04/todo.1742924996.txt.gz · Last modified: 2025/03/25 19:49 by horia.moroianu3101
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0