CID Lab Lucrarea 1: Diferență între versiuni

De la WikiLabs
Jump to navigationJump to search
 
(Nu s-au afișat 63 de versiuni intermediare efectuate de alți 5 utilizatori)
Linia 1: Linia 1:
== Noțiuni și cunoștințe necesare ==
== Noțiuni și cunoștințe necesare ==


* [[Introducere. Verilog HDL și ModelSim Logică booleană și sisteme de numerație]]
* [[Tutorial_Quartus_II| Utilizarea programului de sinteză Altera Quartus II]]
* Noțiuni de sintaxă [[Verilog]] ([[Verilog#Module (sintetizabile)|module]], [[Verilog#Interfața modulelor Verilog|interfață]], implementare cu blocuri [[Verilog#Blocuri assign|assign]] și blocuri de [[Verilog#Blocuri de instanțiere|instanțiere]], [[Verilog#Operatori|operatori]])
* [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]
* [[Verilog#Fire (wire) și registre (reg)|Fire și registre]], [[Verilog#Module de test (nesintetizabile)|Module de test]]  
* [http://wiki.dcae.pub.ro/images/d/d9/Lista_pinilor_pl%C4%83cii_DE1-SoC.pdf Lista pinilor plăcii DE1_SOC]
* Utilizarea programului de simulare [[ModelSim]]
* [[Introducere. Verilog HDL și ModelSim#Introducere în Circuite Digitale|Logică booleană și sisteme de numerație]]
* Noțiuni de sintaxă [[Verilog]]


== Cerințe ==
== Exemplu ==


# Descrieți în Verilog o poartă ȘI. Scrieți un modul de test pentru acest circuit în care să-l testați exhaustiv (toate combinațiile posibile de intrări). Simulați circuitul în ModelSim.
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.
# Descrieți în Verilog o poartă SAU. Scrieți un modul de test pentru acest circuit în care -l testați exhaustiv (toate combinațiile posibile de intrări). Simulați circuitul în ModelSim.
 
# Descrieți în Verilog o poartă SAU EXCLUSIV. Scrieți un modul de test pentru acest circuit în care să-l testați exhaustiv (toate combinațiile posibile de intrări). Simulați circuitul în ModelSim.
'''Atenție!''' Numele modulului top-level care va fi sintetizat trebuie setat corect cand creati proiectul (in cazul acesta, OrGate).  
# Descrieți în Verilog o poartă SI NU. Scrieți un modul de test pentru acest circuit în care să-l testați exhaustiv (toate combinațiile posibile de intrări). Simulați circuitul în ModelSim.
 
# Descrieți în Verilog o poartă SAU NU. Scrieți un modul de test pentru acest circuit în care să-l testați exhaustiv (toate combinațiile posibile de intrări). Simulați circuitul în ModelSim.
<syntaxhighlight lang="Verilog">
# Descrieți în Verilog o poartă SAU NU EXCLUSIV. Scrieți un modul de test pentru acest circuit în care să-l testați exhaustiv (toate combinațiile posibile de intrări). Simulați circuitul în ModelSim.
module OrGate(
# Descrieți în Verilog un scăzător pe 16 biți. Scrieți un modul de test pentru acest circuit în care să-l testați 4 - 5 seturi de valori de intrare, inclusiv situații limită (valori foarte mari/ foarte mici, etc.). Simulați circuitul în ModelSim.
output out,
# Descrieți în Verilog un înmulțitor pe 8 biți. Scrieți un modul de test pentru acest circuit în care să-l testați 4 - 5 seturi de valori de intrare, inclusiv situații limită (valori foarte mari/ foarte mici, etc.). Simulați circuitul în ModelSim.
input in1,
input in2
);
 
assign out = in1 | in2;
 
endmodule
</syntaxhighlight>
 
Adăugați constrângerile necesare pentru ca intrările și ieșirile circuitului 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 [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 ==
 
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]]
 
== 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.
 
[[Fișier: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.
 
[[Fișier: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.
 
[[Fișier: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.
 
[[Fișier: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.
 
[[Fișier: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ă <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 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 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 ==
 
* Implementarea unui exemplu de proiect Quartus, parcurgându-se [[Tutorial_Quartus_II|tutorialul]].

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.

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.

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.

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.

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.

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.

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.