Introduction à VHDL

Programming, Math, etc. · course

Voir tous les documents en électronique et automatique

Introduction VHDL

Tanguy Risset

Partir du cours de lENST http://comelec.enst.fr/hdl

  • p. 1/44

Plan

Rappel d l ctronique

Le langage VHDL

Exemples VHDL

Conception de circuits en VHDL

Simulation en VHDL

Synth se de VHDL

n Rappel d lectronique

n Introduction VHDL

u Historique

u Structure du langage

u Types, expressions.

u Exemples

n Codage en VHDL

u Automate

u R gles d criture

n Simulation VHDL

  • p. 2/44

Le transistor

n Composant lectronique de base

n Portes logiques ON/OFF

Oxyde

Drain

Grille

(cid:1)(cid:1)

(cid:0)(cid:0)

(cid:0)(cid:0)

(cid:1)(cid:1)

(cid:0)(cid:0)

(cid:1)(cid:1)

(cid:1)(cid:1)

(cid:0)(cid:0)

(cid:0)(cid:0)

(cid:1)(cid:1)

M tal

Source

Canal

semiconducteur

Rappel d l ctronique

l Le transistor

l Portes l mentaires

l Conception de circuits

combinatoires

l Logique s quentielle

l Composants s quentiels

fr quents

l Conception de circuits

s quentiels

Le langage VHDL

Exemples VHDL

Conception de circuits en VHDL

Simulation en VHDL

Synth se de VHDL

  • p. 3/44

Technologie CMOS

Rappel d l ctronique

l Le transistor

l Portes l mentaires

l Conception de circuits

combinatoires

l Logique s quentielle

l Composants s quentiels

fr quents

l Conception de circuits

s quentiels

Le langage VHDL

Exemples VHDL

n Complementary Metal Oxide

Semiconductor

n Niveaux logiques : 0 = 0V et 1 = 3V

n Deux types de portes

u nMOS : conducteur si la grille=1

u pMOS : conducteur si la grille=0

n R alisation de quelques portes de

Conception de circuits en VHDL

base

Simulation en VHDL

Synth se de VHDL

Inverseur, NAND, NOR

source

source

grille

g=1

grille

g=0

drain

pMOS

y

(xy)

drain

mMOS

x

1

0

x

x

x

y

1

0

Inverseur

porte NAND

x

y

x

1

0

(x+y)

y

porte NOR

  • p. 4/44

Portes l mentaires

Rappel d l ctronique

l Le transistor

l Portes l mentaires

l Conception de circuits

combinatoires

l Logique s quentielle

l Composants s quentiels

fr quents

l Conception de circuits

s quentiels

Le langage VHDL

Exemples VHDL

Conception de circuits en VHDL

Simulation en VHDL

Synth se de VHDL

x

F

Amplicateur:

F = x

x

F

y

ET: F = x y

x F

0

0

1

1

x

0

0

1

1

y F

0

0

0

1

0

0

1

1

x

F

Inverseur:

F = x

x F

1

0

0

1

x

F

y

NON ET:

F = (x y)

x

0

0

1

1

y F

1

0

1

1

1

0

0

1

  • p. 5/44

Conception de circuits combinatoires

Rappel d l ctronique

l Le transistor

l Portes l mentaires

l Conception de circuits

combinatoires

l Logique s quentielle

l Composants s quentiels

fr quents

l Conception de circuits

s quentiels

Le langage VHDL

Exemples VHDL

Conception de circuits en VHDL

Simulation en VHDL

Synth se de VHDL

1. Description du probl me:

y vaut 1 si a vaut 1 ou b et c

entr es

sorties

valent 1.

z vaut 1 si b ou c valent 1 (mais

pas les deux) ou si a, b et c valent 1.

2. Table de v rit

3. quations logiques

y = abc + abc + abc + abc + abc

z = abc + abc + abc + abc + abc

4. Equations optimis es

y = a + bc

z = ab + bc + bc

5. Portes logiques

b

0

0

1

1

0

0

1

1

c

0

1

0

1

0

1

0

1

a

0

0

0

0

1

1

1

1

a

b

c

z

0

1

1

0

0

1

1

1

y

0

0

0

1

1

1

1

1

y

z

  • p. 6/44

Composants combinatoires fr quents

n Multiplexeur n entr es

n D codeur log(n) n

n Additionneur n bits

n Comparateur n bits

n ALU n bits

n etc.

Rappel d l ctronique

l Le transistor

l Portes l mentaires

l Conception de circuits

combinatoires

l Logique s quentielle

l Composants s quentiels

fr quents

l Conception de circuits

s quentiels

Le langage VHDL

Exemples VHDL

Conception de circuits en VHDL

Simulation en VHDL

Synth se de VHDL

  • p. 7/44

Logique s quentielle

Rappel d l ctronique

l Le transistor

l Portes l mentaires

l Conception de circuits

Publicité

combinatoires

l Logique s quentielle

l Composants s quentiels

fr quents

l Conception de circuits

s quentiels

Le langage VHDL

Exemples VHDL

Conception de circuits en VHDL

Simulation en VHDL

Synth se de VHDL

n Bascule RS: lorsque R et S passe 0, Q et Q conservent

leur valeur ant rieure.

R

Q

Q

S

Bascule RS

S

0

1

1

0

R

1

1

0

0

Q

0

Q

1

interdit

interdit

1

0

Qn1

Qn1

n Bascule D: permet d chantillonner la valeur de la donn e

lorsque lhorloge passe 1 (front montant de lhorloge) et de

conserver cette valeur lorsque lhorloge passe 0.

Horloge

(cid:1)

(cid:0)

(cid:0)

(cid:1)

Donn e

(cid:0)(cid:0)(cid:1)(cid:1)

Valeur

(cid:0)(cid:1)

Valeur

(cid:0)(cid:1)

  • p. 8/44

Composants s quentiels fr quents

n Registre n bits (avec reset et eventuellement

load/ClockEnable)

n Registre d calage n bits

n Compteur n bits

n Machine tats

Rappel d l ctronique

l Le transistor

l Portes l mentaires

l Conception de circuits

combinatoires

l Logique s quentielle

l Composants s quentiels

fr quents

l Conception de circuits

s quentiels

Le langage VHDL

Exemples VHDL

Conception de circuits en VHDL

Simulation en VHDL

Synth se de VHDL

  • p. 9/44

Conception de circuits s quentiels

Rappel d l ctronique

l Le transistor

l Portes l mentaires

l Conception de circuits

combinatoires

l Logique s quentielle

l Composants s quentiels

fr quents

l Conception de circuits

s quentiels

Le langage VHDL

Exemples VHDL

Conception de circuits en VHDL

Simulation en VHDL

Synth se de VHDL

n Extr mement complexe en g n ral.

n De nombreux mod les de calculs:

u S quentiel

Machine tats

Contr leur + chemin de donn es

u Parall lisme de t ches

Processus communicants

u Parall lisme de donn es

u Calcul sur des ots de donn es

u Circuits multi-horloge

u Paradigme synchrone

u Circuits assynchrone

n Notion sous-jacente tr s utilis e: automate tats nit

  • p. 10/44

Quest ce que VHDL?

Rappel d l ctronique

n VHSIC (Very High Speed Integrated Circuit) Hardware Description

Le langage VHDL

l Intro

l historique

l Syntaxe

l langage

l librairies

l entit

l Architecture

l Signal et Variable

l Types

l Operateurs

l Process

Exemples VHDL

Langage.

n Langage pour d crire la structure et le comportement de syst mes

lectroniques, en particulier des circuits digitaux (ASIC, FPGA, . . . ).

n Standard IEEE.

n Ind pendant de la technologie cible.

n Ind pendant de la m thodologie de conception.

Conception de circuits en VHDL

Simulation en VHDL

Synth se de VHDL

n Ind pendant des outils de conception.

n Langage tr s g n ral tr s complexe ( d pendent de tout!)

n VHDL nest pas un langage de programmation

cest un langage de description (specication) de syst me.

  • p. 11/44

Historique

Rappel d l ctronique

n 1980: le d partement de d fense am ricain lance un appel doffre

Le langage VHDL

l Intro

l historique

l Syntaxe

l langage

l librairies

l entit

l Architecture

l Signal et Variable

l Types

l Operateurs

l Process

Exemples VHDL

pour un langage qui permettrait de d crire tous les syst mes

lectroniques utilis s. Motivation afch e: r utilisabilit et r duction

des co ts de conception.

n 1983 trois compagnies (Intermetics, IBM, Texas Instruments)

commencent le d veloppement.

n 1985: premi re version ofcielle de VHDL (version 7.2).

n 1986: VHDL est donn IEEE pour en faire un standard.

Conception de circuits en VHDL

Simulation en VHDL

Synth se de VHDL

n 1987: Standard IEEE 1076-1987.

n 1993: Standard IEEE 1076-1993.

n 1999: Standard IEEE 1076.6-1999

  • p. 12/44

Convention lexicale

Rappel d l ctronique

n Comme en C, un code vhdl est compos dune suite

Le langage VHDL

l Intro

l historique

l Syntaxe

l langage

l librairies

l entit

l Architecture

l Signal et Variable

l Types

l Operateurs

l Process

Exemples VHDL

Conception de circuits en VHDL

Simulation en VHDL

Synth se de VHDL

d l ments :

u commentaires

u d limiteurs

u identicateurs,

u expressions (termin es par un point-virgule),

u mots-clefs

u litt raux(constantes), par exemple:

n 67 est un entier

n 0 est un bit

n "001", O"562", X"FF1" sont vecteurs de bits

n "chaine" est une chaine de caract res

n VHDL est insensible la casse. On crit souvent les mots

reserv du langage en majuscule, le reste en minuscule.

n Les commentaires commencent par deux tirets (- -)

  • p. 13/44

Structure du langage

Rappel d l ctronique

n Il existe "5 unit s de compilation" permettant de d crire des

Le langage VHDL

l Intro

l historique

l Syntaxe

l langage

l librairies

l entit

l Architecture

l Signal et Variable

l Types

l Operateurs

l Process

Exemples VHDL

Conception de circuits en VHDL

Simulation en VHDL

Synth se de VHDL

composants.

u Lentit : description de linterface du composant: le nom et

ses ports dentr e/sortie

u Larchitecture d crit lint rieur du composant. Il peut y avoir

plusieurs architectures pour le m me composant (ex: une

pour la simulation efcace, une pour la synth se).

Larchitecture contient les processus.

u La d claration de paquetage. Un paquetage est une

collection dobjets r utilisables (constantes, types,

composants, proc dures)

u Le corps de paquetage

u La conguration indiquant quelle architecture utiliser pour

chaque entit

  • p. 14/44

Biblioth ques

Rappel d l ctronique

n Les biblioth ques sont d clar e avec le mot cl library,

Le langage VHDL

l Intro

l historique

l Syntaxe

l langage

l librairies

l entit

l Architecture

l Signal et Variable

l Types

l Operateurs

l Process

Exemples VHDL

elle d pendent des outils utilis s.

n Elle contiennent des paquetages que lon d clare vouloir

utiliser avec le mot cl use:

use BIBLIOTHEQUE.PAQUETAGE.all;

n La biblioth que par d faut est WORK. WORK est aussi le nom

symbolique de la biblioth que dans laquelle sont stock s les

r sultats.

Conception de circuits en VHDL

Simulation en VHDL

Synth se de VHDL

n La biblioth que STD est une biblioth que standard fournie

avec le langage , elle contient des d nitions des types et

des fonctions de base (integer, bit,...).

n Par d faut, les outils consid re que lon utilise les

biblioth ques STD et WORK, il y a donc implicitement:

library STD;

library WORK;

n En g n ral, on utilise la librairie suivante IEEE qui d nit le

type std_logic:

library ieee;

use ieee.std_logic_1164.all;

  • p. 15/44

Lentit

Rappel d l ctronique

n Lentit est la description de linterface du circuit . Elle

Le langage VHDL

l Intro

l historique

l Syntaxe

l langage

l librairies

l entit

l Architecture

l Signal et Variable

l Types

l Operateurs

l Process

Exemples VHDL

correspond au symbole dans les repr sentations

sch matiques.

A

B

CIn

FA

S

COut

library ieee;

use ieee.std_logic_1164.all;

Conception de circuits en VHDL

Publicité

ENTITY FA IS

Simulation en VHDL

Synth se de VHDL

port(A, B, Cin: in STD_LOGIC;

S, COut: out STD_LOGIC);

END ENTITY FA;

  • p. 16/44

Larchitecture

Rappel d l ctronique

n Larchitecture est la description interne du circuit.

Le langage VHDL

l Intro

l historique

l Syntaxe

l langage

l librairies

l entit

l Architecture

l Signal et Variable

l Types

l Operateurs

l Process

Exemples VHDL

n Elle est toujours associ e une entit , une entit peut avoir

plusieurs architectures:

architecture arch1 of fa is

signal resultat :

STD_LOGIC_VECTOR(1 downto 0);

begin

architecture arch2 of fa is

begin

Conception de circuits en VHDL

resultat <= (0 & a) +

Simulation en VHDL

Synth se de VHDL

(0 & b) + (0 & cin);

s <= resultat(0);

cout <= resultat(1);

s <= a xor b xor cin;

cout <= (a and b) or

((a xor b) and cin);

end arch1;

end arch2;

(& est lop rateur de concat nation de vecteurs de bit)

  • p. 17/44

Corps de larchitecture

Rappel d l ctronique

Le langage VHDL

l Intro

l historique

l Syntaxe

l langage

l librairies

l entit

l Architecture

l Signal et Variable

l Types

l Operateurs

l Process

Exemples VHDL

Conception de circuits en VHDL

Simulation en VHDL

Synth se de VHDL

n Dans le corps de

larchitecture se trouvent les 3

types dinstructions

concurrentes de VHDL

n Elles peuvent tre crites

dans nimporte quel ordre :

u Des processus avec le mot

cl process

u Des instructions

concurrentes daffectation

de signaux (<=).

u Des instanciation de

composant avec le mot cl

port map

begin

-- process:

p1 : process(SI, Cin)

begin

S <= SI xor Cin;

end process;

-- Aff. Signal

SI <= A xor B;

-- Instanciation

inst_MAJ : MAJ port map (

X => A,

Y => B,

Z => Cin,

M => Cout);

end arch3;

  • p. 18/44

Signal et Variable

Rappel d l ctronique

n Dans un process, on peut trouver des affectations de

signaux ou de variables.

n Contrairement aux variables, laffectation du signal na pas

un effet imm diat.

n Ainsi, dans un process, apr s cinq instructions A <= A+1;,

le signal A nest pas augment de 5 mais seulement de 1.

n Il faut lire A.futur <= A.pr sent +1; de sorte que

A.pr sent nest jamais modi .

Le langage VHDL

l Intro

l historique

l Syntaxe

l langage

l librairies

l entit

l Architecture

l Signal et Variable

l Types

l Operateurs

l Process

Exemples VHDL

Conception de circuits en VHDL

Simulation en VHDL

Synth se de VHDL

  • p. 19/44

Types

Rappel d l ctronique

n Il existe des types:

Le langage VHDL

l Intro

l historique

l Syntaxe

l langage

l librairies

l entit

l Architecture

l Signal et Variable

l Types

l Operateurs

l Process

Exemples VHDL

Conception de circuits en VHDL

Simulation en VHDL

Synth se de VHDL

u scalaire (entier, r el, physique, num r ),

u composite (tableaux, enregistrement),

u chier et pointeur.

n Les types poss de des attibut de type, Ils sont repr sent s

de cette fa on < OBJET >2< AT T RIBU T >

n Par exemple:

u type COULEUR is (BLEU, ROUGE, VERT);

u COULEURleft renvoie BLEU

u COULEURright renvoie VERT

u COULEURpos(BLEU) renvoie 0

n Autre exemple:

u type MOT is STD_LOGIC_VECTOR(7 downto 0);

u MOTLEFT renvoie 7;

u MOTLENGTH renvoie 8; MOTRIGHT renvoie 0;

  • p. 20/44

Type entier

Rappel d l ctronique

n Types entier:

u Le type entier integer pr d ni dans le paquetage

standard STD permet de d nir des nombres sign s sur

32 bits entre 231 et 231.

u En g n ral, on sp cie le range dun entier pour quil soit

stock sur un nombre de bit ad quat:

signal my_natural is integer range 0 to 256

Le langage VHDL

l Intro

l historique

l Syntaxe

l langage

l librairies

l entit

l Architecture

l Signal et Variable

l Types

l Operateurs

l Process

Exemples VHDL

Conception de circuits en VHDL

Simulation en VHDL

Synth se de VHDL

  • p. 21/44

Operateurs

Logiques

Relationnels

Arithm tique

and, or, nand,

nor, xor, not

=, /=, < , <=,

> , <=

*, / , mod,

rem

Divers

**, abs, &

Rappel d l ctronique

Le langage VHDL

l Intro

l historique

l Syntaxe

l langage

l librairies

l entit

l Architecture

l Signal et Variable

l Types

l Operateurs

l Process

Exemples VHDL

Conception de circuits en VHDL

Simulation en VHDL

Synth se de VHDL

(A rem B) a le signe

de A (A mod B) a le

signe de B

** : exponentiation

abs :

valeur ab-

solue & : concat -

nation

  • p. 22/44

Process

Rappel d l ctronique

n Les diff rents process dun programme vhdl sex cutent en

Le langage VHDL

l Intro

l historique

l Syntaxe

l langage

l librairies

l entit

l Architecture

l Signal et Variable

l Types

l Operateurs

l Process

Exemples VHDL

Conception de circuits en VHDL

Simulation en VHDL

Synth se de VHDL

parall le les uns des autres.

n Un processus peut avoir des variables locales. Le fonctionnement

du processus est r gi par les r gles suivantes :

u Un processus est une boucle innie , lorsquil arrive la n du

code, il reprend automatiquement au d but

u Un processus doit tre sensible des points darr t, il existe 2

types de points darr ts :

n Le processus est associ une "liste de sensibilit " qui

r veille le processus lors dun changement dun des signaux.

n Le processus a des instructions darr t wait dans sa

description interne.

n Les variables sont internes au processus et sont affect es

imm diatement, contrairement aux signaux qui eux ne sont pas

affect s directement mais en n de processus

n Un processus est s quentiel dans le sens ou les instructions sont

valu es lune apr s lautre dans lordre d criture.

  • p. 23/44

Exemple: AND3

Rappel d l ctronique

entity AND_3 is

Le langage VHDL

Exemples VHDL

l AND3

l Full Adder

l Adder4

l Registre

l Double Reg

Conception de circuits en VHDL

Simulation en VHDL

Synth se de VHDL

port (

e1 : in bit;

e2 : in bit;

e3 : in bit;

: out bit

s

);

end entity

architecture ARCH of AND_3 is

begin -- ARCH

s <= e1 and e2 and e3;

end ARCH

  • p. 24/44

Exemple: Full Adder

Rappel d l ctronique

Le langage VHDL

Exemples VHDL

l AND3

l Full Adder

l Adder4

l Registre

l Double Reg

Conception de circuits en VHDL

Simulation en VHDL

Synth se de VHDL

library IEEE;

use IEEE.std_logic_1164.all;

use IEEE.numeric_std.all

entity full_add1 is

port (

Publicité

a, b, cin : in std_logic;

s, cout

: out std_logic;

);

end entity;

architecture ARCH of full_add1 is

signal resultat : unsigned (1 downto 0);

begin

result <= (0 & a) + (0 & b) + (0 & c);

s

cout

<= resultat(0);

<= resultat(1);

  • p. 25/44

Rappel d l ctronique

Le langage VHDL

Exemples VHDL

l AND3

l Full Adder

l Adder4

l Registre

l Double Reg

Conception de circuits en VHDL

Simulation en VHDL

Synth se de VHDL

Exemple: Additionneur 4 bits

[..librairies ..]

entity adder4 is

port (

a, b : in unigned(3 downto 0);

s

cout : out std_logic

: out unigned(3 downto 0);

);

end entity;

architecture ARCH of adder4 is

signal c : unsigned (2 downto 0);

Component full_add1 is

port (

a, b, cin : in std_logic;

s, cout

: out std_logic;

);

end entity;

[... a suivre]

  • p. 26/44

Exemple: Additionneur 4 bits

Rappel d l ctronique

Le langage VHDL

Exemples VHDL

l AND3

l Full Adder

l Adder4

l Registre

l Double Reg

Conception de circuits en VHDL

Simulation en VHDL

Synth se de VHDL

[... suite et fin ...]

architecture ARCH of adder4 is

signal c : unsigned (2 downto 0);

Component full_add1 is

port (

a, b, cin : in std_logic;

s, cout

: out std_logic;

);

end entity;

begin

inst_FA_1 : full_add1 port map(a(0),b(0),0,s(0),c(0));

inst_FA_2 : full_add1 port map(a(1),b(1),c(0),s(1),c(1));

inst_FA_3 : full_add1 port map(a(2),b(2),c(1),s(2),c(2));

inst_FA_2 : full_add1 port map(a(3),b(3),c(2),s(3),c(3));

end ARCH;

  • p. 27/44

Exemple: un registre

Rappel d l ctronique

Le langage VHDL

Exemples VHDL

l AND3

l Full Adder

l Adder4

l Registre

l Double Reg

Conception de circuits en VHDL

Simulation en VHDL

Synth se de VHDL

n Un registre avec clock enable.

n Le processus est r veill lors dune transition sur Ck

n Les If internes permettent dexprimer la condition: front

montant de lhorloge avec CE 1.

PROCESS(ck)

BEGIN

IF (ck = 1 AND ckEVENT)

THEN

IF CE=1 THEN Out <= In;

END IF;

END IF;

END PROCESS;

CE

Ck

CIn

COut

  • p. 28/44

Exemple: double registre (declaration)

Rappel d l ctronique

Le langage VHDL

Exemples VHDL

l AND3

l Full Adder

l Adder4

l Registre

l Double Reg

Conception de circuits en VHDL

library IEEE;

use IEEE.std_logic_1164.all;

ENTITY DOUBLE_REG IS

port(CIn, Ck, CE: IN STD_LOGIC;

COut: out STD_LOGIC);

END ENTITY DOUBLE_REG;

ARCHITECTURE behavioural OF DOUBLE_REG IS

-- Declaration de signaux du composant

Ck

CE

Simulation en VHDL

BEGIN

Synth se de VHDL

PROCESS(ck)

Variable CTemp: STD_LOGIC;

-- Declaration de signaux

-- ou variables du process

BEGIN

IF (ck = 1 AND ckEVENT)

THEN

IF CE=1 THEN

COut <= CTemp;

CTemp := CIn;

END IF;

END IF;

END PROCESS;

END behavioural;

CIn

Ctemp

COut

Double_reg

  • p. 29/44

Exemple: double registre (instanciation)

Rappel d l ctronique

Le langage VHDL

Exemples VHDL

l AND3

l Full Adder

l Adder4

l Registre

l Double Reg

Conception de circuits en VHDL

Simulation en VHDL

Synth se de VHDL

library IEEE;

use IEEE.std_logic_1164.all;

ENTITY QUATRE_REG IS

port(CIn1, Ck, CE: IN STD_LOGIC;

COut1: out STD_LOGIC);

END ENTITY QUATRE_REG;

ARCHITECTURE behavioural OF QUATRE_REG IS

Ck

CE

CIn1

Ctemp

COut1

Double_reg

Double_reg

Quatre_reg

Signal CTemp: STD_LOGIC;

COMPONENT DOUBLE_REG IS

port(CIn, Ck, CE: IN STD_LOGIC;

COut: out STD_LOGIC);

END COMPONENT;

Begin

I0: DOUBLE_REG port map (Cin => Cin1,

Ck => Ck,

CE => CE,

Cout => CTemp);

I1: DOUBLE_REG port map (Cin => CTemp,

Ck => Ck,

CE => CE,

Cout => COut1);

END behavioural;

  • p. 30/44

Conception en VHDL

Rappel d l ctronique

Le langage VHDL

Exemples VHDL

Conception de circuits en VHDL

l conception

l methodologie

l Automate

l Synth se de VHDL

Simulation en VHDL

Synth se de VHDL

n Le m canisme du temps symbolique rend extr mement

d licat le d bugage de VHDL

n 95% du temps de d veloppement se fait en simulation.

n On utilise les waveforms qui ne permettent pas de voir les

transitions de granularit .

SystemC.CLK

SystemC.CACHE_1_WORD.DATA

SystemC.CACHE_1_WORD.WRITEOK

SystemC.CLK

SystemC.CACHE_16_WORD.DATA

SystemC.CACHE_16_WORD.WRITEOK

308

310

312

314

316

318

316 318 320

322

324 326 328 330 332 334 336 338

340 342

n VHDL permet norm ment de constructions difciles

comprendre (circuits asynchrones, simulation, synth se,

etc...).

n Aujourdhui il existe des langages plus rapides pour la

simulation (SystemC, etc.), VHDL est donc essentiellement

utilis pour la synth se et la simulation bas niveau.

n Se contraindre fortement lors de l criture de programmes VHDL

  • p. 31/44

Contraintes pour l criture de VHDL

Rappel d l ctronique

Le langage VHDL

Exemples VHDL

Conception de circuits en VHDL

l conception

l methodologie

l Automate

l Synth se de VHDL

Simulation en VHDL

Synth se de VHDL

n Penser composant (objet) plut t que fonctionnalit

(proc dure).

n Distinguer les l ments de m morisation (m moire, bancs

de registre) et les composants standards (op rations

arithm tiques, ltres num riques) pour pr voir lutilisation de

biblioth ques.

n D composer les composants sous forme dautomate tats

nis

n On peut alors soit coder directement lautomate en VHDL

soit d composer nouveau cet automate en un contr leur et

un chemin de donn e

n Pour les traitements hautement pipelin s (stream

processing), on utilisera plut t une description des diff rents

tages de pipeline interconnect s.

  • p. 32/44

Rappel d l ctronique

Le langage VHDL

Exemples VHDL

Conception de circuits en VHDL

l conception

l methodologie

l Automate

l Synth se de VHDL

Simulation en VHDL

Synth se de VHDL

Notion dautomate

n Un automate est

syst matiquement

d compos en:

n Un tat (ensemble de

registre)

n Trois fonctions:

u Transition: sensible aux

entr e et l tat, met jour

l tat.

u Moore: sensible l tat,

met jour des sorties

u Mealy: sensible aux entr e

et l tat, met jour des

sorties

inputs

transition

mealy

State

moore

outputs

  • p. 33/44

Codage dun automate en VHDL (exemple)

Rappel d l ctronique

Le langage VHDL

Exemples VHDL

Conception de circuits en VHDL

l conception

l methodologie

l Automate

l Synth se de VHDL

Simulation en VHDL

Publicité

Synth se de VHDL

n Nutiliser que des signaux

(pas de variables). Que

des types simples

(STD_LOGIC_*), de

pr f rence non resolu.

n D composer le mat riel

en l tat (tous les l ments

m moris s entre deux

cycle dhorloge) et les

autres signaux.

n crire un processus

sensible lhorloge qui

met jour les registres

d tat

n Cest la fonction de

// Gestion du registre d tat avec reset synchrone

PROCESS(clk)

BEGIN

IF rising_edge(clk) THEN

IF reset = 1 THEN

state

state

ELSE

END IF;

END PROCESS;

<= INIT;

<= state_next;

//Fonction de transition

PROCESS (state, input1, input2)

BEGIN

CASE state IS

WHEN IDLE =>

IF

i1 = 1

state_next <= WRITE;

state_next <= IDLE;

ELSE

END IF;

WHEN

READ =>

state_next <= IDLE;

WHEN

OTHER =>

state_next <= IDLE;

transition de lautomate.

END CASE;

  • p. 34/44

Codage dun automate en VHDL (suite)

Rappel d l ctronique

Le langage VHDL

Exemples VHDL

Conception de circuits en VHDL

l conception

l methodologie

l Automate

l Synth se de VHDL

Simulation en VHDL

Synth se de VHDL

n Pour la fonction de Moore

de lautomate (cest

similaire pour la fonction

de Mealy): crire un

processus sensible l tat

qui calcule les sorties.

n La mani re la plus propre:

D crire le data-path

comme des affectations

entre signaux en dehors

des processus (inf rence

syst matique du mat riel

pour le calcul sur les

donn es)

D crire laffectation

des sorties comme une

simple affectation entre

signaux.

[...]

//Equation concurrente (data-flow)

S1 <= a + b * C;

S2 <= a - b;

// Fonction de Moore

PROCESS (STATE)

BEGIN

CASE state IS

WHEN IDLE =>

out1 <= S1;

out2 <= S2;

WHEN READ =>

out1 <= S1;

out2 <= S1;

WHEN OTHER =>

out1 <= S2;

out2 <= S2;

END CASE;

END;

  • p. 35/44

Synth se de VHDL

Rappel d l ctronique

Le langage VHDL

Exemples VHDL

Conception de circuits en VHDL

l conception

l methodologie

l Automate

l Synth se de VHDL

Simulation en VHDL

Synth se de VHDL

n La plaie: linf rence accidentelle de registres.

n d s quun signal nest pas affect dans tous les chemin de

contr le.

PROCESS(S1,state)

BEGIN

IF state = INIT THEN

Out1 <= S1;

END IF;

END;

PROCESS(S1,state)

BEGIN

IF state = INIT THEN

Out1 <= S1;

ELSE

Out1 <= 0;

END IF;

END;

Compter les registres

n Boucle contr le constant accept e (d roul es la

compilation).

n Clause Wait accept e uniquement pour lhorloge.

n En principe, il existe un standard IEEE pour le VHDL

synth tisable. En pratique, chaque outil synthetise des

sous-ensembles l g rement diff rents.

n Principaux outils de synth se pour les Asics: Mentor

Graphics, Synopsys, Cadence.

  • p. 36/44

niveaux description VHDL

Rappel d l ctronique

Le langage VHDL

Exemples VHDL

n Description structurelle.

u Proche des sch matiques traditionnelles des concepteurs

u Blocs inter-connect s.

Conception de circuits en VHDL

n Description comportementale.

Simulation en VHDL

l niveaux description VHDL

l Principe de la simulation

v nementielle

l Le temps symbolique

l Signal et variable

l Le temps physique

l Principe du moteur de

simulation

Synth se de VHDL

u Proche de la programmation traditionnelle

u ex cution s quentielle dinstructions

n Cette classication ne correspond pas exactement notre

d composition intuitive: description algorithmique/description

architecturale

  • p. 37/44

VHDL de niveau transfert de registre

Rappel d l ctronique

Le langage VHDL

Exemples VHDL

Conception de circuits en VHDL

Simulation en VHDL

l niveaux description VHDL

l Principe de la simulation

v nementielle

l Le temps symbolique

l Signal et variable

l Le temps physique

l Principe du moteur de

simulation

Synth se de VHDL

n Une description de niveau transfert de registre est une description

de la structure du circuit, mais qui abstrait les op rateurs.

n On peut parler de registre (sans dire exactement quel type),

dadditionneur, etc.

n Nest pas forc ment du VHDL structurel.

n Ce sous ensemble de VHDL doit pouvoir tre synth tis par les

outils commerciaux (Synopsis, Cadence, etc.) selon une

s mantique d nie par le standard.

Cest une plate forme solide pour la synth se haut niveau.

  • p. 38/44

Principe de la simulation v nementielle

Rappel d l ctronique

Le langage VHDL

Exemples VHDL

n Le syst me est repr sent comme un ensemble de

processus (process) qui sex cutent en parall le

n On veut simuler des processus parall les sur une machine

Conception de circuits en VHDL

s quentielle.

Simulation en VHDL

l niveaux description VHDL

l Principe de la simulation

v nementielle

l Le temps symbolique

l Signal et variable

l Le temps physique

l Principe du moteur de

simulation

Synth se de VHDL

n Nouvel objet pour communiquer entre programmes

s quentiels: le signal

n Moteur de simulation:

u Le simulateur ex cute tous les processus dans un ordre

quelconque.

u Lorsquun signal partag par plusieurs processus est

modi , on enregistre sa nouvelle valeur, le signal

conservant temporairement sa valeur.

u Lorsque tous les processus ont t ex cut s, on modie

les valeurs des signaux partag s

u on incr ment le temps symbolique (+1) et on

recommence jusqu convergence

  • p. 39/44

Le temps symbolique

Rappel d l ctronique

Le langage VHDL

Exemples VHDL

n Le temps symbolique permet dordonner des v nements

simultan s partir de leurs d pendances.

n Une affectation un signal: Sig1 <= Sig2 est instantan e

Conception de circuits en VHDL

mais la valeur de Sig1 est modi e apr s 1

n Un " v nement" poss de donc une date compl te

compos e dune date physique (ex: 1h 04m 17s) et dune

date symbolique (ex: 4)

Simulation en VHDL

l niveaux description VHDL

l Principe de la simulation

v nementielle

l Le temps symbolique

l Signal et variable

l Le temps physique

l Principe du moteur de

simulation

Synth se de VHDL

  • p. 40/44

Signal et variable

Rappel d l ctronique

Le langage VHDL

Exemples VHDL

n Du fait de sa s mantique sp cique, le signal se comporte

tr s diff remment dune variable

n On peut en avoir une vision intuitive comme representant la

Conception de circuits en VHDL

"valeur dun l physique au cours du temps"

Simulation en VHDL

l niveaux description VHDL

l Principe de la simulation

v nementielle

l Le temps symbolique

l Signal et variable

l Le temps physique

l Principe du moteur de

simulation

Synth se de VHDL

n Pour quun signal conserve une valeur dun cycle un autre

il faut mettre en place explicitement un m canisme de

m morisation qui sera interpr t comme un registre.

n Pour faciliter la simulation on peut aussi introduire des

variables dans les processus.

n Les variables sont locales aux processus, leur affectation est

instantan e, elles conservent leur valeur au cours du temps

comme dans un langage de programmation

Sig1 <= Sig2;

Sig3 <= 3;

V ar1 := V ar2;

V ar3 := 3;

  • p. 41/44

Le temps physique

Rappel d l ctronique

Le langage VHDL

Exemples VHDL

Conception de circuits en VHDL

Simulation en VHDL

l niveaux description VHDL

l Principe de la simulation

v nementielle

l Le temps symbolique

l Signal et variable

l Le temps physique

l Principe du moteur de

simulation

Synth se de VHDL

n Le temps physique permet de

simuler l coulement du temps

r el

n Il ne peut avancer quavec les

instruction wait et after

(points de synchronisation, point

darr t):

wait 10 ns

Sig...