Documente Academic
Documente Profesional
Documente Cultură
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Cod sintetizabil in VHDL
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Pachete gratuite pentru design si simulare care folosesc ambele
limbaje: VHDL/Verilog:
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Considerente privind procesul de proiectare (unelte software)
pentru Sisteme Reconfigurabile
Implementarea
Este un process care consta dintr-o secventa de 3 pasi:
1. Translate - translatarea
2. Map - maparea
3. Place and Route plasarea si rutarea
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
1. Translate este un process care combina toate intrarile din netlist
si constrangerile intr-un fisier care va contine logica design-ului.
Informatia este salvata ca un fisier NGD (Native Generic Database)
se foloseste programul NGD Build.
Constrangerile reprezinta alocarea porturilor din design la elemente
fizice (pini, butoane, switch-uri etc). Informatia este stocata intr-un
fisier UCF (User Constraints File).
Uneltele folosite pentru a crea sau modifica UCF - PACE, Constraint
Editor (editor de constrangeri)
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
2) Maparea este un process care divide intreg circuitul cu
elemente logice in sub-blocuri astfel incat sa se potriveasca cu
blocurile logice din FPGA. In acest process se potrivesc
elementele logice definite de fisierul NGD cu elementele FPGA
(Combinational Logic Blocks (CLB), Input Output Blocks (IOB))
si se genereaza fisierul NCD (Native Circuit Description) care
reprezinta fizic maparea design-ului in componentele FPGA. Se
foloseste in acest scop programul MAP.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
3) Place and Route Se foloseste in acest scop programul
PAR. Procesul plaseaza sub-blocurile rezultate in procesul de
mapare in blocurile logice in mod corespunzator cu conectica
blocurilor logice si in functie de constrangeri.
Unealta PAR preia fisierul NCD (maparea) si il foloseste ca
intrare si produce a rutare completa. Iesirea fisierului NCD
constituie informatia de rutare.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Device Programming Programarea circuitului
Design-ul trebuie incarcat in FPGA si pentru aceasta trebuie convertit intr-un format
astfel incat sa fie acceptat de catre circuit. Programul BITGEN realizeaza
conversia.Fisierul rutarii NCD este furnizat programului BITGEN care va genera un
stream (flux) de biti (un fisier cu extensia .BIT) care va fi folosit la configurarea
circuitului FPGA. Acest lucru se va realiza folosind un cablu (care va depinde de
tehnica folosita).
Sinteza
Implementare
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Modul Schematic DESIGN ENTRY (1)
Se apeleaza
pentru a asocia
simboluri unor
module VHDL
Module VHDL
Aceste
simboluri pot fi
apoi inserate in
modulul
schematic
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
DESIGN ENTRY (2) Fisiere intrare (HDL, Schematic, ambele)
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
DESIGN ENTRY (3)
Fisiere intrare (HDL, Schematic, ambele)
Aici HDL
Este VHDL
Reguli specifice
Avantajos pentru
proiecte de
complexitate
mare permite
rapiditate in
dezvoltare
Nu este neaparat mai eficient decat descrierea schematica
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
SINTEZA (1)
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
SINTEZA (2)
Fisier NGC
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
IMPLEMENTARE ( 1- Translate)
IMPLEMENTARE ( 2 - Map)
Se identifica si se aloca CLB, IOB, etc. din FPGA conform net-list
generat anterior
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
IMPLEMENTARE ( 3 Place and Route)
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
$125.00
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
CPLD
144 macro-cells
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Dublu click pe un anume MC (macro cell) - CPLD
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Double click -> schema de detaliu
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
ECS
Element de biblioteca
(nu mai este detaliata schema
la nivel de porti)
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Este direct alocat un inmultior disponibil in arhitectura Spartan 3
De comparat cu CPLD
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Se mentine functia
de biblioteca
De comparat cu Spartan 3
(! Mai putine porti !!)
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Detaliu alocarea resurselor pe FPGA
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Pentru aceasta familie de circuite se poate face si o analiza a
puterii consumate
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Cele din fam. Virtex sunt
mai scumpe
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Alocarea pe chip (aplicatia Floorplanner)
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Efectul acestei alocari nerationale:
- un circuit scump, ineficient folosit
- putere consumata 411 mW !! (fata de 24 in cazul Spartan 2)
Nota: Simbolul VHDL <= - reprezinta operatorul de atribuire (asignare) (atribuie valoarea
din partea dreapta pentru variabila din partea stanga )
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Tipuri de date Standard Logic
Standard Logic IEEE 1164 Pachetul std_logic_1164 este compilat intr-o
biblioteca numita ieee, si include urmatoarele tipuri de date:
Type Std_ulogic reprezinta un singur fir (wire) care poate avea diferite valori
logice
std_ulogic este un tip enumerare similar cu tipul bit din standardul 1076. Este un
tip de date unresolved. Un semnal de acest tip poate avea numai un singur driver,
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Tipul std_ulogic_vector Reprezinta o colectie de fire (wire) sau un bus de
marime arbitrara. type std_ulogic_vector is array ( natural range <> ) of
std_ulogic; Std_ulogic_vector reprezinta o arie de std_ulogic, si este analog cu
tipul standard bit_vector.
Tipul Std_logic
Este un tip de date resolved bazat pe std_ulogic (este un sub-tip), cu
urmatoarea declaratie:
subtype std_logic is resolved std_ulogic;
In cazul driverelor multiple, cele noua valori std_logic sunt rezolvate cu valori dupa cum
urmeaza: ("std_logic" permite existenta driverelor multiple pentru un semnal simplu)
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Operatori standard:
Valorile, semnalele si variabilele unui tip pot fi combinate in expresii prin folosirea
operatorilor
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Instructiuni conditionale (de control ) descriu functii
combinationale, indica prioritati in operatii, sau specifica alte
comportamente de high-level
If-Then-Else
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Conditia specificata intr-o constructie de tipul if-then-else
trebuie sa evalueze un tip Boolean.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Case Statements
Poate fi folosita ca o constructie alternativa la if then- else
case control_expression is
when test_expression1 =>
statements
when test_expression2 =>
statements
when others =>
statements
end case;
Expresiile de test trebuie sa fie mutual exclusive, nu pot fi adevarate in acelasi
timp 2 expresii de test. Diferenta fata de if then-else consta in faptul ca cea
din urma implica o prioritate a conditiile, in timp ce pentru instructiunea
case acest lucru nu este valabil.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Bucle FOR permite specificarea unui numar fix de interatii in descrierea
unui design. Bucla for include o declaratie automata pentru index
library ieee;
use ieee.std_logic_1164.all;
entity parity10 is
port(D: in std_logic_vector(0 to 9);
ODD: out std_logic);
constant WIDTH: integer := 10;
end parity10; Exemplu:
architecture behavior of parity10 is
Generator de paritate de 8-
begin
bit folosind o bucla for.
process(D)
variable otmp: Boolean;
Begin
otmp := false;
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
for i in 0 to D'length - 1 loop
if D(i) = '1' then
otmp := not otmp;
end if;
end loop;
if otmp then
ODD <= '1';
else
ODD <= '0';
end if;
end process;
end behavior;
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Functii si Proceduri
Functiile si procedurile in VHDL se numesc generic subprograms, si
reprezinta o analogie directa cu functiile si procedurile definite in
limbaje de programare de nivel inalt
Procedura subprogram care are o lista de argumente care constau
din intrari, iesiri si nu returneaza nicio valoare.
Functia - subprogram care are numai intrari in lista de argumente si
returneaza o valoare.
Subprogramele pot fi definite local (intr-o arhitectura) sau intr-un
package. Declaratiile din subprogram sunt secventiale (ca in proces).
Pot fi apelate dintr-o zona concurenta dintr-o arhitectura sau dintr-un
proces. De asemenea se pot apela din alt subprogram.
De evitat scrierea functiilor si procedurilor recursive, acestea nefiind
sintetizabile!
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
package my_package is
function my_global_function(...)
return bit;
my_package a fost compilat intr-o
end my_package; biblioteca
package body my_package is
use
function my_global_function(...)
work.my_package.my_global_function;
return bit is
entity my_design is
begin
begin
...
...
end my_global_function;
end my_design;
end my_package;
...
my_global_function() a fost declarata in
package my_package
Se obtine un subprogram global
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Subprograme locale
Se declara local, intr-o arhitectura.
architecture my_architecture of my_design is
begin
my_process: process(...)
function my_local_function(...)
return bit is
begin
...
end my_local_function;
begin
...
end process my_process;
end my_architecture;
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Functii = Un subprogram cu zero sau mai multe argumente de tip intrari si
care returneaza o singura valoare de iesire.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Exemplu: cod VHDL pentru
simulare
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Utilizare Project Navigator Pentru Simulare si Modelare
(generare Testbench si apel Modelsim)
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Se pot prescrie unele informatii de timing
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
In zona de culoare albastra se pot programa semnalele de test
In zona de culoare galbena se poate preciza (iesirea) dorita
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Se vede ca unui bench ii corespunde un modul VHDL
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Se pot face simulari asociate diferitelor etape din procesul de proiectare
(behavioral, translate .. Dar cea mai completa ca informatii este
post place and route
Fereastra
deschisa de
Modelsim
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Bench2 este de fapt o ierarhie de module VHDL care contin
inglobate informatii de timing pe care unealta Project
Navigator le furnizeaza. In acest caz VHDL este folosit si ca
limbaj de simulare
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Exemple cod VHDL
Descrierea unui comparator folosind IEEE 1164 standard logic
Comentariu --
declarare library se incarca biblioteca
IEEE.
Use - specifica ce anume din biblioteca
ieee este disponibil pentru design-ul
realizat (declarat prin entitate si
arhitectura).
Forma generala include 3 campuri,
separate prin punct.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Exemplu: counter
cu reset asincron,
incarcare paralela
si dimensiune
configurabila.
utilizare 'unsigned'
type si generics.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
4-bit synchronous
up counter.
active high,
synchronous reset.
Active high enable.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Introducere in Verilog
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Modulele descrise in Verilog
reset toggle
module toggle(q, clk, reset); q
<functionality of module>
clk
endmodule
Reconfigurable Computing
S. Reda, Brown University
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Concepte de baza
Comentarii prin introducerea // sau prin /* - */ pentru un bloc de
mai multe linii
specificare numere.
<size><base format><number>
Nr de biti
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Tipuri de date
Net-urile reprezinta conexiuni intre elementele. Se declara
folosind cuvantul cheie wire.
wire a;
wire b, c;
wire d=1b0;
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Instantierea modulelor
module Top;
reg [3:0] A, B; externe, intrarile pot fi reg sau wire;
reg C_IN; interne trebuie sa fie wire
wire [3:0] SUM;
wire C_OUT; Extern trebuie sa fie wire
// one way
fulladd4 FA1(SUM, C_OUT, A, B, CIN);
// another possible way
fulladd4 FA2(.c_out(C_OUT), .sum(SUM), .b(B), .c_in(C_IN), .a(A));
endmodule
module fulladd4(sum, c_out, a, b, c_in);
output [3:0] sum;
output c_out;
input [3:0] a, b;
input c_in;
endmodule
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Modelare la nivel de poarta (structural)
.
wire Z, Z1, OUT, OUT1, OUT2, IN1, IN2;
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Tablouri de instante pentru porti
wire [7:0] OUT, IN1, IN2;
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Tipuri de operatori
Arithmetic: *, /, +, -, % and **
Logical: !, && and ||
Relational: >, <, >= and <=
Equality: ==, !=, === and !==
Bitwise: ~, &, |, ^ and ^~
Reduction: &, ~&, |, ~|, ^ and ^~
Shift: <<, >>, >>> and <<<
Concatenation: { }
Replication: {{}}
Conditional: ?:
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Exemplu:
// OR THIS WAY
assign out = s1 ? (s0 ? i3:i2) : (s0 ? i1:i0);
endmodule
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Modelarea comportamentala
Design-ul este exprimat la nivel algoritmic (nu
mai este nevoie de o gandire in termeni de porti .
sau comunicare date). .
reg a, b, c;
Proiectarea la acest nivel este foarte
asemnanatoare cu programarea in C. initial a=1b0;
.
Algorimul este implementat intre doua declaratii .
: always si initial. always
begin
b = a ^ 1b1;
Fiecare always si initial reprezinta o activitate
separata. De retinut ca ruleaza in paralel. c = a + b;
end
.
Pot fi mai multe initial si always dar nu pot fi
.
intercalate
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
initial
initial blocul incepe la timpul 0, se executa o singura data
Daca sunt mai multe blocuri initial, fiecare bloc incepe sa fie
executat concurent de la momentul 0, fiecare bloc terminand
executia independent de celelalte.
Declarari multiple comportamentale se grupeaza folosind begin si
end.
reg x, y, m;
initial m=1b0;
initial
begin
x=1b0;
y=1b1;
end
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
always
always incepe la timpul 0 si executa instructiunile in
blocul always in mod continuu (ca la bucle).
Modeleaza un bloc in care activitatea circuitului digital
se repeta continuu.
integer count;
count=0;
always
begin
count=count+1;
end
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Evenimente
Un eveniment event modificarea valorii registrului sau a net-ului.
Se folosesc pentru a porni executia intr-un bloc.
Simbolul @ - este folosit pentru a specifica controlul unui
eveniment
Declaratiile se pot executa la modificarea valorilor semnalelor,
sau in momentul tranzitiilor pozitive sau negative ale semnalului.
(posedge) (negedge).
reg x, y;
reg x, y;
initial
initial begin
begin x<=1b1;
x=1b1;
y<=1b0;
y=1b0;
end end
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Folosirea atribuirilor nonblocking
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Instructiuni conditionale
Asemanator cu C .
Intotdeauna apar in if(alu_control == 0)
blocurile always si y = x + z;
initial else if (alu_control == 1)
y = x z;
else if (alu_control == 2)
. y = x * z;
if(x) else
begin y = x;
y= 1b1; .
z= 1b0;
end reg [1:0] alu_control;
expression
. ..
if (count < 10) case (alu_control)
count = count+1; 2d0 : y = x + z;
else 2d1 : y = x z;
count = 0; 2d2 : y = x * z;
. default: y=x;
endcase
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Loops
integer count;
integer y=1;
integer x=2;
initial
for (count = 0; count < 128; count = count + 1)
begin
x <= x + y;
y <= x;
end
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Exemplu: Mux4x1
module mux4x1(out, i0, i1, i2, i3, s1, s0);
output out;
input i0, i1, i2, i3;
input s1, s0;
reg out;
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Exemplu: Clipire LED la 1 sec
module sec (input CLOCK_50, output reg [8:0] LEDG);
integer count=0;
initial LEDG[0]=1'b0;
endmodule
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
VHDL-AMS
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Este derivat din VHDL ((IEEE standard 1076-1993). Include extensii mix-signal
(AMS) pentru a defini sisteme analogice si mix-signal (IEEE 1076.1-1999).
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Exemplu de cod: Descrierea unei diode in cod VHDL-AMS
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
VHDL_AMS lucrari stiintifice in IEEE Xplore
539 for vhdl-ams (rezultat al cautarii din 2016)
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Structura de baza VHDL-AMS
Entity
Descrie interfata unui device fizic sau a unui sistem
Specifica intrarile si iesirile modelului (porturile)
Poate specifica parametrii de intrare ai modelului (A =, B =, C = ..)
Architecture
Descrie modelul
Poate avea atat semnale analogice (continue) cat si digitale (discrete)
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Exemplu de utilizare: modelarea unui convertor DC/DC
Componente (R, L, C, Diode, Switch, opamp, etc)
Modelare componente digitale din circuitul de modulare
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
VHDL-AMS Modelare digitala
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
ANEXE
Exemplu de unelte de dezvoltare CAD
(Computer Aided Design)
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Ansoft Simplorer - System Simulation Software for Multi-Domain
Design
Simplorer is a multi-domain system simulation software program.
It is used for the design, modeling, analysis and optimization of high-
performance systems that include electrical, thermal, electromechanical,
electromagnetic, and hydraulic designs. These complex systems are commonly
found in the automotive, aerospace/defense, and industrial automation
industries.
Simplorer provides a wide range of modeling techniques, analysis capabilities,
and post processing. This enables the engineer to investigate system
functionality, performance, and overall design verification. The result is a
dramatic reduction in development time and cost, increased system reliability
and system optimization.
http://www.ansoft.com/products/em/simplorer/
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
New in Simplorer v8
Next generation User Interface
Advanced Model Editing
Characterization tools
Enhanced Spice and Pspice model import
New component library concept
Expanded VHDL-AMS functionality
Enhanced Solver Performance
Enhanced Transient Co-simulation with Maxwell
New Dynamic Coupling with Maxwell/RMxprt/Q3D Extractor
3rd Party Co-simulation Coupling
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Digital VHDL-AMS Modelarea blocului modulator
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
VHDL-AMS limbaj de modelare pentru mix-signal (analog/digital) dar si pentru
proiecte care vizeaza tehnologii mixte (Electric, Mecanic, Termic, Magnetic, etc.).
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Behavioral Simulation:
ModelSim is an industrial strength high level VHDL/Verilog simulator from
Mentor Graphics.
The Hamburg site for VHDL provides a wealth of information on high level
behavioral modeling and synthesis tools. Here is another comprehensive site for
analog and mixed signal extensions to VHDL (VHDL-AMS).
Behavioral Synthesis:
FPGA vendors such as Xilinx and Altera have their own tools for synthesis from
VHDL. For ASIC design, Synopsys and Leonardo Spectrum from Mentor
Graphics can be used with the Tanner libraries to synthesize custom layout from
VHDL.
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016
Referinte bibliografice:
[1] Prof. Sherief Reda Division of Engineering, Brown University Spring Reconfigurable Computing
[2] http://en.wikipedia.org/wiki/VHDL-AMS
[3] http://www.asic-world.com/vhdl
[4] - Accolade VHDL Reference Guide - http://www.acc-eda.com/vhdlref/
[5] Steve Chwirka - Applying VHDL-AMS and other Advanced Modeling Techniques
[6] - http://www.ansoft.com/products/em/simplorer/
[7] http://www2.ece.jhu.edu/faculty/andreou/495/Resources/CAD/CAD.htm
Ioana Dogaru, Radu Dogaru, Curs Sisteme Reconfigurabile de Calcul, Univ. Politehnica din Bucuresti, 2016