Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture...

51
Mohammed Bsiss Langage de programmation du matériel VHDL

Transcript of Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture...

Page 1: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Langage de programmation

du matériel VHDL

Page 2: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Le langage de description matériel

Page 3: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Hirstorique

Page 4: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Le matériel : Implantation des circuits numériques

Implantation des circuits numériques

Avec des éléments discrets

Avec des microprocesseurs, micro contrôleurs, DSP

Avec des circuits à architecture programmable PAL, GAL, FPGA

Avec des circuits intégrés ASIC

PLD : Programmable Logic Device,

CPLD : Complex PLD, PAL: Programmable Array Logic,

GAL : Generic Array Logic,

FPGA : Field Programmable Gate Array,

ASIC : application-specific integrated circuit

Page 5: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Circuit avec des éléments discrets

Implantation des circuits numériques

Circuit figé

Circuit imprimé difficile à modifier

Intégration limitée

Coût élevé

Justifié pour de petits circuits

Page 6: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Circuit à fonctionnement programmable

A base des microprocesseurs,

Microcontrôleurs, DSP

En modifiant le programme on

modifie la fonction

Plus souple que les circuits à

éléments discrets

Vitesse limitée (mais qui

augmente sans cesse)

Parallélisme compliqué (mais

faisable)

Intégration encore limitée

Adapté à des opérations séquentielles

Page 7: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Circuit à architecture programmable

Une quantité importante de portes logiques

Des matrices d'interconnectionsProgrammables

Modification du fonctionnement sur le circuit (ISP: In-System Programming)

Souplesse assurée

Coût de fabrication faible (pour un nombre limité)

Intégration forte

Adapté à des applications gourmandes en logique

Temps de développement dépend de l'application

Compliqué pour implanter des algorithmes complexes

Page 8: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Application Specific Integrated Circuit

Coût très bas uniquement pour de gros tirages

Temps de développement important

Pas de modifications une fois fabriqué

Nécessitant un fondeur pour la fabrication

Page 9: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Le matériel : Implantation des circuits numériques

Page 10: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Le langage de description matériel & Flot de conception FPGA

Page 11: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Principales caractéristiques du langage VHDL

Le langage VHDL couvre tous les niveaux

partant des portes logiques de base

jusqu'aux systèmes complets (place et

routage)

Il s'applique tout aussi bien au niveau

structurel qu'au niveau comportemental,

en passant par le niveau transferts de

registres ou RTL (Register Transfer Logic).

Page 12: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Description comportementale

Le circuit est décrit sans tenir compte de la réalisation

concrète sur un composant donné (par exemple, on

ne définit pas de signaux d’horloge, les I/O etc).

On utilise les fonctions de haut niveau d’abstraction

de VHDL.

Ce style de description permet en particulier de

spécifier le circuit sous forme d’un algorithme.

On parle aussi d’une description flot de données est

souvent appelé logiques à transfert de registres (RTL)

Page 13: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Description structurelle

La description structurelle de bas niveau

Le circuit est décrit par sa structure, sous forme

d’une liste de composants instanciés et des

interconnexions les reliant. En fait, c’est l’équivalent

littéral d’un schéma représentant l’interconnexion de

portes élémentaires issues d'une bibliothèque.

La description structurelle de haut niveau

Le circuit est découpé en blocs fonctionnels de haut

niveau qui sont reliés entre eux.

Page 14: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Description RTL et Behaviour

Description RTL Description Comportementale Behaviour

Page 15: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Principales caractéristiques du langage VHDL / Synthèse

La synthèse logique

Transforme le code en une représentation

structurelle de bas niveau (netList) utilisant les

cellules de la bibliothèque de la technologie visée

(fondeur ou FPGA).

Ces modèles sont souvent au format VITAL pour

VHDL (VHDL Initiative Towards VHDL Libraries) pour

permettre la rétroannotation des délais (des portes).

Page 16: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Description structurelle / Synthèse

La synthèse physique

Transforme une représentation structurelle de bas

niveau en une description physique du circuit

(layout).

Elle nécessite une étape supplémentaire de

placement et de routage des portes.

Le format d’entrée des outils diffère du VHDL.

Les formats EDIF ou XNF sont souvent utilisés.

On peut alors connaître les délais complets du aux

interconnexions, et les stockés dans un fichier au

format SDF (Standard Delay Format) pour

rétroannoté le code VHDL.

Page 17: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Principales caractéristiques du langage VHDL

La portabilité

Le langage VHDL est un standard qui garanties une stabilité, fiabilité etc.

La portabilité signifie dans le cadre des FPGA, qu’il est possible à tout moment de

changer de technologie cible (Altera, Xilinx, etc.) ou bien de famille au sein d’un

même fabricant ;

ou même d’avoir une stratégie de conception qui consiste à réaliser un prototype sur

un circuit programmable (FPGA) avant de basculer sur des circuits spécifiques

(ASIC ou Application Specific Integrated Circuit).

Page 18: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Principales caractéristiques du langage VHDL

La lisibilité

La représentation schématique n'est pas toujours d'une grande lisibilité. Il est

difficile de saisir rapidement le fonctionnement d'une machine d'état parmi un

enchevêtrement de registres et de portes logiques.

Une documentation écrite est très souvent nécessaire à la compréhension d'un

schéma.

VHDL apporte par son principe de modularité et d'interconnexion de composants une

grande lisibilité à la compréhension d'un système, sans pour autant supprimer l'utilité

d'un dessin fonctionnel.

Page 19: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Principales caractéristiques du langage VHDL

La Modularité

La modularité est une des caractéristiques essentielles de VHDL. Une description

partitionnée en plusieurs sous-ensembles est dite modulaire. VHDL supporte la

conception modulaire et hiérarchique, qui offre de nombreux avantages :

Les descriptions sont plus simples,

les durées de simulation, de synthèse et de mise au point sont raccourcies,

la fiabilité est améliorée : chaque sous-ensemble peut être testé exhaustivement,

les sous-ensembles sont réutilisables

Page 20: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Flot de conception

Page 21: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Entité et Architecture

Un design quelconque (circuit intégré, carte électronique ou

système complet) est complètement défini par des signaux

d’entrées et de sorties et par la fonction réalisée en interne

(architecture).

Page 22: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Entité et Architecture

L'entité définit les interfaces du module numérique avec son environnement.

L’entité est associée au moins à une description de son contenu et de son

implémentation par la partie architecture.

Entité < nom d´entité > is

(generic <Déclaration des paramètres)>;

(port <Déclaration d’entrée/sortie>]

(local Déclaration)

End <nom d´entité>

Page 23: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

L’architecture d’un module décrit le comportement intérieur. Cette

description peut être de type structurel, flot de données, comportemental

ou une combinaison des trois.

Elle est toujours associée à une entité.

Une même entité peut avoir plusieurs architecture.

, mais, ou moment de l’exécution (simulation ou synthèse), seule une

architecture est utilisée.

Entité et Architecture

Page 24: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Entité et Architecture

Page 25: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Entité et Architecture

Page 26: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Structure du code VHDL La déclaration des connexions

se fait avec une déclaration de

port.

Il décrit des signaux d’entrées et

de sorties ainsi que leur types

logiques.

Chaque signal est spécifié par

un identificateur, un sens et un

type.

Le point-virgule sépare

seulement les éléments

individuels de la liste des

signaux d’une entité. Le dernier

élément n’a pas de virgule.

Page 27: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Structure du code VHDL

Page 28: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

La déclaration d’un signal se fait par un caractère, le premier

caractère doit être une lettre. Le langage VHDL ne fait pas une

distinction entre les majuscules et les minuscules.

Le mode d’un port dans une entité indique le flux de données :

Interconnexions entre les composants instanciés

Page 29: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Signaux (fil électrique) peuvent prendre les sens suivants :

Un signal peut être définit comme une entrée ‘IN’

Un signal peut être définit comme une en sortie ‘OUT’

Un signal peut être définit comme une entrée et une sortie `’INOUT’

Un signal peut être définit comme une sortie rétroactive ‘BUFFER’

Interconnexions entre les composants instanciés

Page 30: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Le type utilisé pour les signaux d’entrées et de sorties est :

Le type bit pout un signal

Le type sd_logic pour un signal

Le type std_logic_vector pour un bus composé de plusieurs signaux

Example:

Signal a : bit_vector (0 to 3);

Signal b : bit_vector (3 downto 0)

A <= ‘0111’; b <= ‘0101’

Ce que signifie

B(0)=‘1’ / a(0)=‘0’

Interconnexions entre les composants instanciés

Page 31: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Signaux et variables Toute donnée traitée par VHDL doit être déclaré comme constant, variable ou signal.

Constant : dont la valeur ne change pas pi: real:= 3.1416;

Variables sont immédiatement modifiables par une affectation (:=) variable stop : boolean; une

variable est lue avant d’être affectée

Signal représente des fils, des bus , des registres. Les signaux modélisent l’entrée et la sortie

d’un composant numérique. Les signaux changent avec le temps et leur modification en

simulation aura lieu à la prochaine itération (retard delta) . Les signaux ne sont pas affectés

quelle que soit la branche

Tout objet est typé

Page 32: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Constants Exemple:

constant NUMBER_OF_BITS: integer :=0;

constant PIN_CODE: bit_vector(3 downto 0) :="0110";

Utilisation des constants rend la modification du programme

plus simple.

Page 33: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Initialisation optionnelle

variable current_bit: std_logic := ‘0’;

Les variables sont utilisées uniquement dans les process.

Elles sont déclarées dans le process avant le mot clé « begin »

(c’est le begin du process).

Contrairement aux signaux, les variables sont affectées tout de

suite, on n’a pas besoin d’attendre la suspension du process.

Affectation se fait par ":=" et non pas par "<=" :

Variable

Page 34: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Initialisation optionnelle, utile en

simulation , pas besoin en synthèse

signal carry_out : std_logic := '0';

Les signaux sont comme les câbles (fils) dans un circuit

Ils sont utilisés pour connecter les éléments concurrents d’un

circuit

L’affectation à un signal peut être retardé (uniquement en

simulation,

carry_out <= '1' after 10ns;

en synthèse le retard est imposé par le circuit !):

Les signaux sont déclarés soit dans l’entité (les ports d’entrée

sortie), soit avant « begin » d’une architecture.

Signal

Page 35: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Les signaux interconnectent les éléments concurrents

Variables peuvent être utilisées à l’intérieur des process et ne

sont pas visibles en dehors de process.

Signaux et variables

Page 36: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Variables:

Peuvent être utilisées dans le process où ils sont déclarées

Ne peuvent pas apparaitre dans la liste des sensibilités

Ne peuvent pas être retardées

Affectation immédiate

Signaux

Peuvent être utilisés pour relier des process

Peuvent apparaitre dans la liste des sensibilités des process

Peuvent être retardés

Signaux et variables

Page 37: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Type de données

Par type de données on comprend le genre des données à transférer. Il est

interdit d'affecter un signal numérique à une valeur entière. Le langage VHDL

offre des types de données prédéfinis, d'une part, tels que integer, real,

enumerated, physical, bit, etc, d´autre part le langage VHDL offre aussi la

possibilité à des types de données personnalisés.

VHDL est un langage très typés.

Tout élément doit être associé à un type

Conversion des types est possible moyennant des fonctions explicites

Il est possible de définir un sous-type qui héritera les contraintes du

type d’origine

Page 38: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Type de données

4 catégories de types

Type scalaire : integer, reals, physique, énuméré

Type composite: array, records

Type accès: comme des pointeurs

Type File

Page 39: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Type de données : Type scalaire

Énuméré

type T_FEU is (ROUGE, ORANGE, VERT);

signal FEU : T_FEU;

Entier

signal COMPT : integer range 0 to 15;

Flottante

signal MASSE : REAL; -- de -1e38 à 1e38

Physique qui est un entier avec l'unité correspondant

type TIME is range … to … --64 bits

units fs; ps=1000 fs; ns=1000 ps; …

hr=60 min;

end units;

T <= 5 ns;

Page 40: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Type de données : Type scalaire Exemple

type integer is range -2147483647 to 2147483647;

type real is range -1.0E308 to 1.0E308;

type time is range -2147483647 to 2147483647

units

fs;

ps = 1000 fs;

ns = 1000 ps;

us = 1000 ns;

ms = 1000 us;

sec = 1000 ms;

min = 60 sec;

hr = 60 min;

end units;

subtype natural is integer range 0 to integer’high;

subtype positive is integer range 1 to integer’high;

Page 41: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Type de données : Type énuméré

Les types ci-dessous sont des types prédéfinis

type BOOLEAN is (FALSE, TRUE);

type BIT is ('0' , '1');

type severity_level is (note, warning, error, failure);

type character is (…,’A’,’B’,…);

On peut définir son propre type. On déclare toutes les valeurs qu'un objet de

ce type peut prendre.

type T_FEU is (ROUGE, ORANGE, VERT);

signal FEU : T_FEU;

type ETAT is (INIT, LECT, ECR, ATT);

Page 42: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Type de données : Type entier (scalaire)

C'est un type prédéfini

type integer is range -2_147_483_648 to 2_147_483_647

On peut définir un sous type :

subtype nom_de_sous_type is type_de_base contraintes;

Le type Natural existe dans le library standard:

subtype NATURAL is INTEGER range 0 to INTEGER'high

Page 43: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Logiques à valeurs multiples (scalaire)

Il existe des signaux logiques à plusieurs états:

0, 1, mais aussi haute impédance, don’t care, non déterminé, …

Le type std_logic définit un type plus que binaire. pour permettre

d’avoir 9 états différents

Utilisation de librairie IEEE.std_logic_1164

exemple

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

signal SORTIE, Q: std_logic;

SORTIE <= ‘Z’; -- haute impédance

Q <= ‘1’;

Page 44: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Le type std_logic

Le type std_logic :

‘ U ’ non initialisé

‘ X ’ non connu

‘ 0 ’ logique 0

‘ 1 ’ logique 1

‘ Z ’ haute impédance

‘ W ’ non connu

‘ L ’ logique 0

‘ H ’ logique 1

‘ - ’ don’t care

Strong drive

weak drive

Pull up and pulldown

‚H‘

‚L‘

‚1‘

‚0‘

‚0‘

Page 45: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Type composite

Deux types sont considérés : tableau et record

Un tableau est un ensemble d’éléments du même type

Pour un ensemble de std_logic, nous avons le type prédéfini

std_logic_vector : on définit la taille et l'ordre des éléments

signal BUS1 : std_logic_vector (7 downto 0); -- type prédéfini

signal REG : std_logic_vector (0 to 31);

Page 46: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Accès aux éléments

Déclaration:

A,B: std_logic_vector(15 downto 0);

Accès direct :

A(3) <= ‘1’;

B(15) <= ‘0’;

Accès par tranches

A(15 downto 12) <= "1011";

B(0 to 2) <= "111" ; -- erreur

A(10 downto 2) <= B(15 downto 7);

Page 47: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Exemples

SIGNAL a: STD_LOGIC;

SIGNAL b: STD_LOGIC_VECTOR(3 DOWNTO 0);

SIGNAL c: STD_LOGIC_VECTOR(3 DOWNTO 0);

SIGNAL d: STD_LOGIC_VECTOR(7 DOWNTO 0);

SIGNAL e: STD_LOGIC_VECTOR(15 DOWNTO 0);

SIGNAL f: STD_LOGIC_VECTOR(8 DOWNTO 0);

……….

a <= ‘1’;

b <= ”0000”; -- Base Binaire par défaut

c <= B”0000”; -- Base Binaire explicite

d <= ”0110_0111”; -- Utiliser ‘_’ pour augmenter la lisibilité

e <= X”AF67”; -- Base Hexadecimale

f <= O”723”; -- Base Octale

Page 48: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Déclaration d’un objet de type array

On peut définir un type tableau d’éléments scalaire

type real_vect is array (natural range <>) of real;

signal temp : real_vect(0 to 4);

Remarque: le type « real_vect » a été créé par vous.

On peut aussi:

type real_vect is array (2 to 7) of real;

signal temp : real_vect;

On peut définir aussi un tableau de composites

type MEMO is array (0 to 1023) of std_logic_vector(7 downto 0);

signal A,B : MEMO;

Page 49: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Enregistrement (record)

Ensemble d'éléments de types différents

type NAME is

record

identifier : type_indication;

:

identifier : type_indication;

end record;

type PAQUET is

record

mot_unique : std_logic_vector (7 downto 0);

data : std_logic_vector (23 downto 0);

CRC : std_logic_vector( 5 downto 0);

num : integer range 0 to 1023;

end record;

signal paq_rec : PAQUET;

paq_rec.CRC <= "111000";

Page 50: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Opérateurs

En VHDL, les opérateurs booléens sont tels que "not", "and", "nand" "or", et

"xor". Ils n’ont pas besoin de parenthèses par contre, ils sont prises en

niveaux prioritaires. Les operateurs de haute priorité sont exécutés avant

ceux de priorité plus bas. De plus, les opérateurs booléens sont évalués de

gauche à droite.

Page 51: Langage de programmation du matériel VHDL Partie I FPGA.pdf · Avec des circuits à architecture programmable PAL, GAL, FPGA Avec des circuits intégrés ASIC PLD : Programmable

Mohammed Bsiss

Opérateurs