CID Lab Lucrarea 1: Diferență între versiuni

De la WikiLabs
(Noțiuni și cunoștințe necesare)
 
(Nu s-au afișat 34 de versiuni intermediare efectuate de alți 4 utilizatori)
Linia 1: Linia 1:
 
== Noțiuni și cunoștințe necesare ==
 
== Noțiuni și cunoștințe necesare ==
  
* [[Introducere în sinteza pe FPGA. Xilinx ISE]]
+
* [[Tutorial_Quartus_II| Utilizarea programului de sinteză Altera Quartus II]]
* [[Tutorial Xilinx ISE (13.4)| Utilizarea programului de sinteză Xilinx ISE]]
+
* [http://wiki.dcae.pub.ro/images/f/fc/Pinii_la_care_sunt_conectati_dispozitivele_I-O_pe_placa_experimentala_DE1.pdf Lista pinilor plăcii DE1]
 +
* [http://wiki.dcae.pub.ro/images/d/d9/Lista_pinilor_pl%C4%83cii_DE1-SoC.pdf Lista pinilor plăcii DE1_SOC]
 
* [[Introducere. Verilog HDL și ModelSim#Introducere în Circuite Digitale|Logică booleană și sisteme de numerație]]
 
* [[Introducere. Verilog HDL și ModelSim#Introducere în Circuite Digitale|Logică booleană și sisteme de numerație]]
 
* Noțiuni de sintaxă [[Verilog]]
 
* Noțiuni de sintaxă [[Verilog]]
Linia 8: Linia 9:
 
== Exemplu ==
 
== Exemplu ==
  
Creați un proiect nou în Xilinx ISE, pentru dispozitivul FPGA de pe placa Nexys2. Creați un fișier sursă Verilog în cadrul proiectului, și copiați modulul următor în fisier.  
+
Creați un proiect nou în Quartus II, pentru dispozitivul FPGA Altera Cyclone II de pe placa DE1. Creați un fișier sursă Verilog în cadrul proiectului, și copiați modulul următor în fisier.
 +
 
 +
'''Atenție!''' Numele modulului top-level care va fi sintetizat trebuie setat corect cand creati proiectul (in cazul acesta, OrGate).  
  
 
<syntaxhighlight lang="Verilog">
 
<syntaxhighlight lang="Verilog">
Linia 22: Linia 25:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Creați un fișier de constrângeri și scrieți constrângerile necesare pentru ca intrările și ieșirile circuitului să fie conectate astfel:
+
Adăugați constrângerile necesare pentru ca intrările și ieșirile circuitului să fie conectate astfel:
* in1 conectat la SW0:  "NET in1 LOC=G18;"
+
* in1 conectat la SW0:  PIN_L22
* in2 conectat la SW7:  "NET in2 LOC=R17;"
+
* in2 conectat la SW7:  PIN_M2
* out conectat la LD3"NET out LOC=K14;"
+
* out conectat la LDR3 (ledul roșu nr.3)PIN_Y19
 +
 
 +
Implementați proiectul pe placa DE1 și observați funcționalitatea circuitului descris de proiectul Quartus II.
  
Implementați proiectul pe placa Nexys și observați funcționalitatea circuitului descris de proiectul Xilinx ISE.
+
Lista pinilor la care sunt conectate dispozitivele I/O pe placa DE1 sunt descriși [http://wiki.dcae.pub.ro/images/f/fc/Pinii_la_care_sunt_conectati_dispozitivele_I-O_pe_placa_experimentala_DE1.pdf aici]
  
 
== Exercițiul 1 ==
 
== Exercițiul 1 ==
  
Realizați descrierea în Verilog a modulului cu intrările '''a''', '''b''', '''c''' și ieșirea '''q''', cu funcționalitatea conform schemei alăturate. Implementați circuitul pe placa Nexys2 conectând intrările a, b, c la SW2, SW4, respectiv SW6, iar ieșirea q la LD2.
+
Realizați descrierea în Verilog a modulului cu intrările '''a''', '''b''', '''c''' și ieșirea '''d''', cu funcționalitatea conform schemei alăturate. Implementați circuitul pe placa DE1 conectând intrările a, b, c la SW2, SW4, respectiv SW6, iar ieșirea d la LEDG2.
  
 
[[Fișier:lab1_ex1.jpg]]
 
[[Fișier:lab1_ex1.jpg]]
Linia 37: Linia 42:
 
== Exercițiul 2 ==
 
== Exercițiul 2 ==
  
Realizați descrierea în Verilog a modulului cu intrările '''a''', '''b''', '''c''' și ieșirea '''q''', cu funcționalitatea conform schemei alăturate. Implementați circuitul pe placa Nexys2 conectând intrările a, b, c la SW3, SW4, respectiv SW7, iar ieșirea q la LD7.
+
Realizați descrierea în Verilog a modulului cu intrările '''a''', '''b''', '''c''' și ieșirea '''q''', cu funcționalitatea conform schemei alăturate. Implementați circuitul pe placa DE1 conectând intrările a, b, c la SW3, SW4, respectiv SW7, iar ieșirea q la LEDR7.
  
 
[[Fișier:lab1_ex2.gif]]
 
[[Fișier:lab1_ex2.gif]]
Linia 43: Linia 48:
 
== Exercițiul 3 ==
 
== Exercițiul 3 ==
  
Realizați descrierea în Verilog a modulului cu intrările '''a''', '''b''', '''c''' și ieșirea '''q''', cu funcționalitatea conform schemei alăturate. Implementați circuitul pe placa Nexys2 conectând intrările a, b, c la SW1, SW6, respectiv SW7, iar ieșirea q la LD3.
+
Realizați descrierea în Verilog a modulului cu intrările '''a''', '''b''', '''c''' și ieșirea '''q''', cu funcționalitatea conform schemei alăturate. Implementați circuitul pe placa DE1 conectând intrările a, b, c la SW1, SW6, respectiv SW7, iar ieșirea q la LEDG3.
  
 
[[Fișier:lab1_ex3.jpg]]
 
[[Fișier:lab1_ex3.jpg]]
Linia 49: Linia 54:
 
== Exercițiul 4 ==
 
== Exercițiul 4 ==
  
Realizați descrierea în Verilog a modulului cu intrările '''a''', '''b''', '''c''' și ieșirea '''q''', cu funcționalitatea conform schemei alăturate. Implementați circuitul pe placa Nexys2 conectând intrările a, b, c la SW3, SW4, respectiv SW5, iar ieșirea q la LD6.
+
Realizați descrierea în Verilog a modulului cu intrările '''a''', '''b''', '''c''' și ieșirea '''z''', cu funcționalitatea conform schemei alăturate. Implementați circuitul pe placa DE1 conectând intrările a, b, c la SW3, SW4, respectiv SW5, iar ieșirea z la LEDR6.
  
 
[[Fișier:lab1_ex4.png]]
 
[[Fișier:lab1_ex4.png]]
Linia 55: Linia 60:
 
== Exercițiul 5 ==
 
== Exercițiul 5 ==
  
Realizați descrierea în Verilog a modulului cu intrările '''a''', '''b''', '''c''' și ieșirea '''q''', cu funcționalitatea conform schemei alăturate. Implementați circuitul pe placa Nexys2 conectând intrările a, b, c la SW5, SW6, respectiv SW7, iar ieșirea q la LD4.
+
Realizați descrierea în Verilog a modulului cu intrările '''a''', '''b''', '''c''' și ieșirea '''y''', cu funcționalitatea conform schemei alăturate. Implementați circuitul pe placa DE1 conectând intrările a, b, c la SW5, SW6, respectiv SW7, iar ieșirea y la LEDG4.
  
 
[[Fișier:lab1_ex5.png]]
 
[[Fișier:lab1_ex5.png]]
Linia 61: Linia 66:
 
== Exercițiul 6 ==
 
== Exercițiul 6 ==
  
Realizați descrierea în Verilog a modulului cu intrările '''a''', '''b''', '''c''' și ieșirea '''q''', cu funcționalitatea conform schemei alăturate. Implementați circuitul pe placa Nexys2 conectând intrările a, b, c la SW5, SW4, respectiv SW1, iar ieșirea q la LD5.
+
Realizați descrierea în Verilog a modulului cu intrările '''a''', '''b''', '''c''' și ieșirea '''y''', cu funcționalitatea conform schemei alăturate. Implementați circuitul pe placa DE1 conectând intrările a, b, c la SW5, SW4, respectiv SW1, iar ieșirea y la LEDR7.
  
 
[[Fișier:lab1_ex6.png]]
 
[[Fișier:lab1_ex6.png]]
  
== Submiterea Exercițiilor ==
+
== Submiterea Rezolvării Exercițiilor ==
  
Se va rezolva un singur exercițiu, ce va fi selectat de cadrul didactic. Pentru notare, se vor submite următoarele fișiere, către adresa de e-mail indicată de cadrul didactic <span style="color: red; font-weight: bold"> și către adresa cid_lab_homework@dcae.pub.ro</span>.
+
Se va rezolva un singur exercițiu, ce va fi selectat de cadrul didactic. Pentru notare, se vor submite următoarele fișiere, către adresa de e-mail indicată de cadrul didactic.
  
O arhivă <span style="color: red; font-weight: bold">zip<span> ce va conține:
+
O arhivă <span style="color: red; font-weight: bold">zip</span> ce va conține:
 
*Un fișier Verilog cu extensia .v care conține descrierea Verilog a circuitului
 
*Un fișier Verilog cu extensia .v care conține descrierea Verilog a circuitului
*Un fișier de constrângeri, cu extensia .ucf
+
*Un fișier de constrângeri, cu extensia .qsf
*Un fișier de tip proiect Xilinx ISE, cu extensia .xise
+
*Un fișier de tip proiect Quartus, cu extensia .qpf
 
Atentie, arhiva va contine doar cele 3 fisiere (fara directoare).
 
Atentie, arhiva va contine doar cele 3 fisiere (fara directoare).
  
  
Subiectul mesajului de e-mail trebuie să respecte formatul <span style="color: red; font-weight: bold">[Nume]_[Prenume]_[Grupa]_[Numărul Exercițiului]</span>. De exemplu Lucian_Petrica_423B_2
+
Subiectul mesajului de e-mail trebuie să respecte formatul <span style="color: red; font-weight: bold">[Nume]_[Prenume]_[Grupa]_[Numărul Exercițiului]</span>. De exemplu Petrica_Lucian_423B_2
  
 
== Recomandări pentru cadrele didactice ==
 
== Recomandări pentru cadrele didactice ==
  
* Parcurgerea tutorialului [[Introducere în sinteza pe FPGA. Xilinx ISE]], răspunzându-se la întrebările studenților.
+
* Implementarea unui exemplu de proiect Quartus, parcurgându-se [[Tutorial_Quartus_II|tutorialul]].
* Implementarea unui exemplu de proiect Xilinx ISE, parcurgându-se tutorialul [[Tutorial Xilinx ISE (13.4)|Xilinx ISE]].
 

Versiunea curentă din 6 martie 2018 07:55

Noțiuni și cunoștințe necesare

Exemplu

Creați un proiect nou în Quartus II, pentru dispozitivul FPGA Altera Cyclone II de pe placa DE1. Creați un fișier sursă Verilog în cadrul proiectului, și copiați modulul următor în fisier.

Atenție! Numele modulului top-level care va fi sintetizat trebuie setat corect cand creati proiectul (in cazul acesta, OrGate).

module OrGate(
	output out,
	input in1,
	input in2
);

assign out = in1 | in2;

endmodule

Adăugați constrângerile necesare pentru ca intrările și ieșirile circuitului să fie conectate astfel:

  • in1 conectat la SW0: PIN_L22
  • in2 conectat la SW7: PIN_M2
  • out conectat la LDR3 (ledul roșu nr.3): PIN_Y19

Implementați proiectul pe placa DE1 și observați funcționalitatea circuitului descris de proiectul Quartus II.

Lista pinilor la care sunt conectate dispozitivele I/O pe placa DE1 sunt descriși aici

Exercițiul 1

Realizați descrierea în Verilog a modulului cu intrările a, b, c și ieșirea d, cu funcționalitatea conform schemei alăturate. Implementați circuitul pe placa DE1 conectând intrările a, b, c la SW2, SW4, respectiv SW6, iar ieșirea d la LEDG2.

Lab1 ex1.jpg

Exercițiul 2

Realizați descrierea în Verilog a modulului cu intrările a, b, c și ieșirea q, cu funcționalitatea conform schemei alăturate. Implementați circuitul pe placa DE1 conectând intrările a, b, c la SW3, SW4, respectiv SW7, iar ieșirea q la LEDR7.

Lab1 ex2.gif

Exercițiul 3

Realizați descrierea în Verilog a modulului cu intrările a, b, c și ieșirea q, cu funcționalitatea conform schemei alăturate. Implementați circuitul pe placa DE1 conectând intrările a, b, c la SW1, SW6, respectiv SW7, iar ieșirea q la LEDG3.

Lab1 ex3.jpg

Exercițiul 4

Realizați descrierea în Verilog a modulului cu intrările a, b, c și ieșirea z, cu funcționalitatea conform schemei alăturate. Implementați circuitul pe placa DE1 conectând intrările a, b, c la SW3, SW4, respectiv SW5, iar ieșirea z la LEDR6.

Lab1 ex4.png

Exercițiul 5

Realizați descrierea în Verilog a modulului cu intrările a, b, c și ieșirea y, cu funcționalitatea conform schemei alăturate. Implementați circuitul pe placa DE1 conectând intrările a, b, c la SW5, SW6, respectiv SW7, iar ieșirea y la LEDG4.

Lab1 ex5.png

Exercițiul 6

Realizați descrierea în Verilog a modulului cu intrările a, b, c și ieșirea y, cu funcționalitatea conform schemei alăturate. Implementați circuitul pe placa DE1 conectând intrările a, b, c la SW5, SW4, respectiv SW1, iar ieșirea y la LEDR7.

Lab1 ex6.png

Submiterea Rezolvării Exercițiilor

Se va rezolva un singur exercițiu, ce va fi selectat de cadrul didactic. Pentru notare, se vor submite următoarele fișiere, către adresa de e-mail indicată de cadrul didactic.

O arhivă zip ce va conține:

  • Un fișier Verilog cu extensia .v care conține descrierea Verilog a circuitului
  • Un fișier de constrângeri, cu extensia .qsf
  • Un fișier de tip proiect Quartus, cu extensia .qpf

Atentie, arhiva va contine doar cele 3 fisiere (fara directoare).


Subiectul mesajului de e-mail trebuie să respecte formatul [Nume]_[Prenume]_[Grupa]_[Numărul Exercițiului]. De exemplu Petrica_Lucian_423B_2

Recomandări pentru cadrele didactice

  • Implementarea unui exemplu de proiect Quartus, parcurgându-se tutorialul.