Evaluare TEMA 2
Tema 1: Modelare HDL + Simulare
Sa se modeleze in Verilog un
circuit de inmultire/impartire secventiala. Sistemul va fi partajat in cale de date si cale de control.
Cerinte
- Cerinte generale
- Schema bloc a caii de date (desen de mana, cu creionul).
- Schema bloc a caii de control (desen de mana, cu creionul).
- Descrierea Verilog a unui modul care modeleaza
comportamental circuitul.
- cale de date
- cale de control
- structura de ansamblu
- Descrierea Verilog a unui modul care genereaza un set de vectori de test
pentru circuit (test-bench).
- Descrierea Verilog a unui mediu de simulare (test) in care se vor instantia doua componente:
- una corespunzatoare circuitului testat (DUT) si
- una corespunzatoare generatorului de vectori de test.
Reprezentarile grafice ale unitatilor de proiectare descrise.
- Structura rezultata prin sinteza cu Xilinx ISE.
- Cu exceptia portiunilor de cod, redactarea temei de casa se va de mana, cu creionul.
- Desenele cu structurile caii de date si a celei de control se vor realiza (obligatoriu) de mana (cu creionul).
Se vor utiliza machete de proptotip
"XILINX - Spartan 3E Starter board".
Manual de referinta.
- LED mergator cu acumulare in stanga
- LED mergator cu acumulare in dreapta
- LED mergator cu acumulare in centru
- LED mergator cu acumulare in exterior
- Afisaj LCD tip "VU-metru" actionat de la butonul rotativ
- Afisaj LCD cu text controlat de la switch-uri
- Afisaj LCD cu bara controlata ca lungime prin buton rotativ
- Sumator numere de 1 digit cu afisare LCD
- Calcul CRC8
- RS232 Serial interface - receptie
- RS232 Serial interface - transmisie
Cerinte
- Cerinte generale
- Simbol bloc al sistemului proiectat (desen de mana, cu creionul).
- Lista cu descrierea pinilor (nume, directie, dimensiune, descriere/functionalitate).
- Arhitectura sistemului, blocuri componente (desen de mana, cu creionul).
- Scheme de detaliu pentru proiectarea blocurilor componente (desen de mana, cu creionul).
- Descrierea Verilog a sistemului (cu ierarhie conform arhitecturii sistemului).
- Descrierea Verilog a unui modul care genereaza un set de vectori de test
pentru circuit (test-bench).
- Descrierea Verilog a unui mediu de simulare (test) in care se vor instantia doua componente:
- una corespunzatoare circuitului testat (DUT) si
- una corespunzatoare generatorului de vectori de test.
- Reprezentarile grafice ale unitatilor de proiectare descrise (desen de mana, cu creionul).
- Proiectul Xilinx ISE Webpack, inclusiv rapoarte.
- Raport asupra performantelor implementarii (cost de resurse, frecventa maxima, etc)
(compilatie din rapoarte, listate pe hartie).
Bibliography:
Dan Nicula
Course handouts, 2008.
G. Toacse, D. Nicula
Electronica digitala.
Dispozitive, Circuite, Proiectare (I),
Verilog HDL (II)
(Digital Electronics.
Devices, Circuits, Design (I),
Verilog HDL (II))
Editura Tehnica, Bucharest, 2005.
Dan NICULA, Mihai IONITA, Corneliu ZAHARIA, Traian TULBURE, Razvan JIPA, Nicolae DENES
Aplicatii ale sistemelor digitale
Universitatea TRANSILVANIA, Brasov, 2002, III 16863
Weste N., Eshragian K.
Principles of CMOS VLSI Design - A System Perspective.
Addison-Wesley Publishing Company, 1993.
W. Wolf
Modern VLSI Design - Systems on Silicon.
Prentice Hall, 1998.
S. Kang, Y. Leblebici
CMOS Digital Integrated Circuits: Analysis and Design.
McGraw-Hill, 1996.
C. Mead, L. Conway
Introduction to VLSI Systems.
Addison-Wesley, 1980.
Stefan G.
Circuit Complexity, Recursion, Grammars and Information. Multiple
Morphism.
Transilvania University, Brasov, 1997.
Smith M.
Application-Specific Integrated Circuits,
Addison-Wesley, 1997
Links:
Initiere in MODELSIM (simulator VHDL/Verilog)
Informatii generale
- Director de proiect este locul unde se vor gasi toate fisierele si
bibliotecile asociate proiectului. Utilizatorul trebuie sa aiba drept de
scriere in acest director. Se recomanda utilizarea directorului
C:\HOME ca director de proiect.
- Biblioteca de lucru este director unde se vor plasa rezultatele
compilarii. Se recomanda folosirea denumirii implicite WORK.
- Compilarea necesita ca parametru un fisier. Fisierul poate contine mai
multe unitati de proiectare. Rezultatul compilarii se depune in biblioteca
specificata (implicit WORK).
- Simularea necesita ca parametru un cuplu entitate-arhitectura sau o
configuratie (VHDL) sau un modul (Verilog). Totdeauna entitatea de nivel inalt nu are porturi.
Etapele simularii
- Pornire MODELSIM: Start/Programs/Modelsim/MODELSIM sau dublu-clic pe icon-ul
de pe desktop.
- Selectarea directorului de lucru (de proiect): File/Change Directory -> C:\HOME.
- Crearea unei biblioteci in care se vor plasa modelele compilate:
Design/Create a New Library -> WORK.
- Editarea codului HDL: Notepad sau editor specializat pentru HDL.
- Compilarea codului VHDL: icon specific sau comanda VCOM numeFisier.vhd
- Compilarea codului Verilog: VLOG numeFisier.v
- Simularea (incarcarea) modelului: icon specific sau comanda VSIM numeModulTop
- Pregatirea pentru vizualizarea grafica a semnalelor: View/Signals, View/Wave/Signals in
Region.
- Executia modelului: run
Exemplu Verilog: Bistabil D
`timescale 1 ns/1ns
module Dff (ck, reset_n, d, q);
input ck; // semnal de ceas
input reset_n; // semnal de reset asincron, activ in 0
input d; // intrare D
output q; // iesire Q
reg q;
always @(posedge ck or negedge reset_n)
if (~reset_n) q <= 1'b0; else // valoare la reset
q <= d; // q ia valoarea d la fiecare front crescator al ceasului
endmodule
// modul de test
module tstDff ();
reg ck;
reg reset_n;
reg d;
wire q;
// instantiere componenta de testat
Dff UDff(
.ck (ck ),
.reset_n (reset_n ),
.d (d ),
.q (q )
);
// stimuli
initial
begin
ck <= 1'b0;
reset_n <= 1'b1;
d <= 1'bx;
@(posedge ck);
reset_n <= 1'b0;
@(posedge ck);
@(posedge ck);
reset_n <= 1'b1;
d <= 1'b0;
@(posedge ck);
@(posedge ck);
d <= 1'b1;
@(posedge ck);
@(posedge ck);
@(posedge ck);
@(posedge ck);
d <= 1'b0;
@(posedge ck);
@(posedge ck);
@(posedge ck);
d <= 1'b1;
@(posedge ck);
@(posedge ck);
@(posedge ck);
$display("%M %t NOTA: Terminare simulare.", $time);
$stop;
end
always #10 ck <= ~ck;
endmodule
Cerinte generale referitoare la teme
- Rezolvarea temei se va prezenta personal intr-un dosar avand urmatorul continut:
- coperta va contine urmatoarele informatii:
- numele disciplinei;
- numarul si titlul temei (asa cum apare la inceputul paginii cu descrierea circuitului primit);
- anul de studiu, numele si grupa studentului;
- numele cadrului didactic;
- anul universitar.
- pagina intai va contine enuntul temei asa cum a fost primit;
- raspunsurile la cerinte
- Codul Verilog va contine comentarii justificative incluse in cod si in afara acestuia;
- Structura modelata va fi insotita de jusfiticari.
- Se vor respecta strict denumirile, tipurile si dimensiunile porturilor specificate
pentru circuitul primit.
- Comentariile cerute se vor referi la modalitatea de modelare aleasa si nu
la teoria prezentata la curs. Nu se vor copia in cadrul temei de casa pasaje din bibliografie.
- Numele alese pentru unitatile de proiectare vor sugera rolul acestora.
- In cadrul fisierului, alinierea se va face cu doua spatii albe (tasta SPACE) sau TAB.
- Fisierele cu modelele Verilog vor fi obligatoriu verificate prin simulare pe calculator
cu simulatorul MODELSIM (disponibil pe calculatoarele din salile NII4).
Fisierele Verilog (*.v) se vor preda odata cu dosarul. Un fisier va contine un singur modul
Verilog. Numele fisierului va coincide cu numele modulului continut. Fiecare fisier va avea un antet in care va fi mentionata descrierea modulului.
- Testarea modelului este scopul principal al simularii. Se va acorda atentie
verificarii extensive a modelului descris.
- Din punct de vedere didactic, "TEMA DE CASA" nu este acelasi lucru cu "PROIECT".
Aceasta este o "Tema de Casa" si este obligatorie pentru promovarea
disciplinei.
- Redactarea temei de casa pe calculator NU este obligatorie.
- Desenele vor fi realizate de mana, cu creionul (sunt admise stersaturi).