Differences

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

Link to this comparison view

apm:laboratoare:00:continut [2024/02/29 15:06]
127.0.0.1 external edit
apm:laboratoare:00:continut [2026/09/23 19:33] (current)
daniel.dosaru [Vivado]
Line 1: Line 1:
 ==== Vivado ==== ==== Vivado ====
  
-Vivado Design Suite înlocuiește programul folosit la CN1: ISE Design Suite.  +[[https://​en.wikipedia.org/​wiki/​Xilinx_Vivado | Vivado Design Suite]] e un pachet software dezvoltat de compania Xilinx ([[https://​www.amd.com/​en/​corporate/​xilinx-acquisition.html|achiziționată]] de AMD) pentru a programa [[https://​ocw.cs.pub.ro/​courses/​soc/​laboratoare/​03#​fpga-uri|FPGA]]-uri. ​
- +
-[[https://​en.wikipedia.org/​wiki/​Xilinx_Vivado | Vivado Design Suite]] e un pachet software dezvoltat de compania Xilinx ([[https://​www.amd.com/​en/​corporate/​xilinx-acquisition|achiziționată]] de AMD) pentru a programa [[https://​ocw.cs.pub.ro/​courses/​cn1/​laboratoare/​03bis#​fpga-uri|FPGA]]-uri. ​+
   ​   ​
 Vivado permite editarea, simularea și sintetizarea codului de descriere hardware ([[https://​en.wikipedia.org/​wiki/​Hardware_description_language|HDL]]) pe plăcuța [[https://​digilent.com/​reference/​programmable-logic/​nexys-a7/​reference-manual?​redirect=1 | Nexys A7]] folosită în laborator. Vivado permite editarea, simularea și sintetizarea codului de descriere hardware ([[https://​en.wikipedia.org/​wiki/​Hardware_description_language|HDL]]) pe plăcuța [[https://​digilent.com/​reference/​programmable-logic/​nexys-a7/​reference-manual?​redirect=1 | Nexys A7]] folosită în laborator.
Line 17: Line 15:
  
 **Modulul** este unitatea de bază a limbajului Verilog. Definește interfața (intrările și ieșirile) și comportamentul unui circuit electronic. Putem descrie comportamentul unui modul în trei moduri: **Modulul** este unitatea de bază a limbajului Verilog. Definește interfața (intrările și ieșirile) și comportamentul unui circuit electronic. Putem descrie comportamentul unui modul în trei moduri:
-  * **Descriere structurală**:​ specificând structura internă a modulului folosind primitive și module+  * **Descriere structurală**:​ specificând structura internă a modulului folosind primitive ​(porți logice) ​și alte module
   * **Descriere la nivel flux de date**: specificând relațiile dintre intrări și ieșiri sub forma unor expresii   * **Descriere la nivel flux de date**: specificând relațiile dintre intrări și ieșiri sub forma unor expresii
   * **Descriere procedurală**:​ specificând funcționarea în mod algoritmic   * **Descriere procedurală**:​ specificând funcționarea în mod algoritmic
Line 39: Line 37:
  
 În Verilog putem folosi două tipuri de date: În Verilog putem folosi două tipuri de date:
-  * ''​**wire**'':​ reprezintă conexiuni fizice între ​componentele, se folosesc pentru transmisia semnalelor și nu au capacitate de reținere a informației+  * ''​**wire**'':​ reprezintă conexiuni fizice între ​componente, se folosesc pentru transmisia semnalelor și nu au capacitate de reținere a informației
   * ''​**reg**'':​ folosite pentru a stoca date, care persistă chiar dacă registrul este deconectat   * ''​**reg**'':​ folosite pentru a stoca date, care persistă chiar dacă registrul este deconectat
  
Line 74: Line 72:
 </​code>​ </​code>​
  
-Dacă alegem descrierea procedurală avem la dispoziție ​doua blocuri speciale:+Dacă alegem descrierea procedurală avem la dispoziție ​două blocuri speciale:
   * ''​**initial**'':​ va fi executat o singură dată și se folosește în simulări pentru inițializarea circuitului. Acest bloc nu ajunge să fie sintetizat în circuitul propriu-zis.   * ''​**initial**'':​ va fi executat o singură dată și se folosește în simulări pentru inițializarea circuitului. Acest bloc nu ajunge să fie sintetizat în circuitul propriu-zis.
   * ''​**always**'':​ va fi executat de fiecare dată la apariția unui eveniment. Este similar funcției de tratare a unei întreruperi - când întreruperea apare în sistem, funcția se execută. ''​@(*)''​ este echivalent cu ''​orice eveniment''​.   * ''​**always**'':​ va fi executat de fiecare dată la apariția unui eveniment. Este similar funcției de tratare a unei întreruperi - când întreruperea apare în sistem, funcția se execută. ''​@(*)''​ este echivalent cu ''​orice eveniment''​.
  
- +<​note>​ 
-Vă recomandăm șacest curs de la CN1: [[https://​ocw.cs.pub.ro/​courses/​cn1/cursuri/03|Cursul 3. Introducere în Verilog]]+Pentru o listă completă a blocurilor procedurale ce pot fi folosite în limbajul verilog, consultați [[https://​ocw.cs.pub.ro/​courses/​soc/laboratoare/02#​descrierea_la_nivel_procedural|laboratorul 2 de la SOC]].  
 +</​note>​
  
 ==== Logică combinațională și secvențială ==== ==== Logică combinațională și secvențială ====
Line 91: Line 90:
 {{ :​apm:​laboratoare:​00:​circuit_secvential.png?​500 |Circuit Secvențial}} {{ :​apm:​laboratoare:​00:​circuit_secvential.png?​500 |Circuit Secvențial}}
  
 +<​note>​
 +Pentru mai multe informații despre circuitele logice, consultați [[https://​ocw.cs.pub.ro/​courses/​soc/​laboratoare/​00#​circuite_logice_combinationale|laboratorul 0 de SOC]].
 +</​note>​
 ==== Automate cu stări finite (FSM) ==== ==== Automate cu stări finite (FSM) ====
  
Line 104: Line 106:
  
 <note tip> <note tip>
-[[https://​ocw.cs.pub.ro/​courses/​cn1/​laboratoare/​04#​pasii_pentru_realizarea_unui_fsm_in_verilog|Cum implementez un automat cu stări finite în Verilog?]]+[[https://​ocw.cs.pub.ro/​courses/​soc/​laboratoare/​04#​pasii_pentru_realizarea_unui_fsm_in_verilog|Cum implementez un automat cu stări finite în Verilog?]] 
 +</​note>​ 
 + 
 +<​note>​ 
 +Pentru mai multe informații despre FSM, consultați [[https://​ocw.cs.pub.ro/​courses/​soc/​laboratoare/​04|laboratorul 4 de SOC]].
 </​note>​ </​note>​
apm/laboratoare/00/continut.1709211989.txt.gz · Last modified: 2024/10/06 21:58 (external edit)
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