Sunteți pe pagina 1din 13

Creare/simulare module utilizând MODELSIM 6.

1. Pentru a crea un nou proiect: FILE-> NEW-> PROJECT.


2. Se va deschide o fereastra din care o sa selectam „Create New File”. O sa completam cu numele proiectului si locația unde va fi salvat acesta. Celelalte câmpuri vor rămâne
neschimbate.

2
3. După ce am creat proiectul se va deschide automat fereastra nr. 1. De acolo se va selecta „Create New File” si se va deschide fereastra nr. 2. Se completează cu informațiile
noului fișier al proiectului: nume si tipul fișierului (care in cazul nostru va fi VERILOG).

2
4. In fereastra „Project” a apărut acum fișierul pe care l-am creat anterior. Pentru a putea scrie cod in acesta se face click dreapta pe fișierul .V (Verilog) si apoi EDIT. Se va
deschide apoi editorul de text al programului modelsim.

2
1

Obs. Pentru a afișa ferestrele necesare (ex. Project, Library, Wave, Files, etc) se face click pe tab-ul „View” si se bifează fiecare fereastra care se dorește a fi afișata.
5. In partea dreapta s-a deschis editorul de text in care se va scrie codul Verilog. Dupa ce s-a scris programul, pentru a compila se face click dreapta pe fișierul creat anterior din
tab-ul „Project” apoi „Compile” si in funcție de complexitate „Compile Selected” sau „Compile All”.

Obs. Înainte de compilare, se salvează fișierul cu CTRL + S.

1
Obs. Aici este codul sursa al programului din imaginea de mai sus.

1. // POARTA LOGICA INVERSOARE (INVERTER)


2.
3. // Se creaza un modul Verilog care primeste doi parametri.
4. // Pe scurt se proiecteaza o poarta logica inversoare cu o intrare(MyInput) si o iesire (MyOutput).
5. // Acest set de parametri poarta numele de "port list"
6. module MyModule ( MyInput,
7. MyOutput
8. );
9.
10.
11. // Se specifica directia porturilor.
12. input MyInput; // Se specifica ca variabila net (wire) MyInput va fi o intrare a modulului.
13. output MyOutput; // Se specifica ca variabila net (wire) MyOutput va fi o iesire a modulului.
14.
15.
16. // Se specifica modul in care va fi generat semnalul de iesire al modulului.
17. assign MyOutput = ~ MyInput;
18. // Daca MyInput = 1 atunci MyOutput = 0
19. // Daca MyInput = 0 atunci MyOutput = 1
20.
21.
22. // Se inchide corpul modulului.
23. endmodule
6. Pentru a verifica daca compilarea a avut loc cu succes se verifica status-ul fișierului si linia de comanda.

2
7. Pentru a simula modulul creat mergem in tab-ul „Library”, subtabul „work”, click dreapta pe modulul creat anterior si apoi „Simulate”.

1
8. Se va deschide un tab nou „sim” in care va fi modulul nostru. In tab-ul „Objects” sunt semnalele create de noi (input si output). In tab-ul „Wave” se vor adauga aceste semnale
prin drag-and-drop. Pentru a modifica valoarea unui semnal se face click dreapta pe semnal apoi click pe „Force”.

1
3
9. După ce am apăsat butonul „Force”, pentru a modifica valoarea unui semnal, se va deschide următoarea fereastra in care câmpul value reprezintă valoarea pe care vrem sa o
aibă semnalul, iar câmpul „Signal Name” este numele semnalului pe care îl modificam.

3
10. In acest moment am setat valoarea pe care vrem sa o aibă semnalul de intrare, urmează sa facem simularea. Pentru a vedea formele de unda selectam perioada de timp
pentru simulare din căsuța nr. 1 apoi apăsam pe butonul „Run” din căsuța nr. 2. Pentru a face simularea se poate utiliza si meniul din tab-ul „Simulate”-> „Run”.

3
11. Daca facem click pe grafic (spre exemplu eu am dat click la 2000 ns) va apărea o linie galbena. Acest lucru înseamnă ca putem continua simularea fără a pierde informațiile
generate la simularea anterioara (fără sa se șteargă formele de unda generate anterior). In acest caz am realizat o a doua simulare cu valoarea semnalului de intrare modificata.

2
Obs. Mai jos este un link către un tutorial luat ca referința.

https://www.youtube.com/watch?v=9mpRF6bAY1g

S-ar putea să vă placă și