Conception de composants programmables et langage HDL PDF
Document Details
Uploaded by BrainiestBirch818
ESIEA
Chiraz TRABELS
Tags
Summary
Ce document présente les bases de la programmation en VHDL. Il détaille la conception de composants programmables et le langage HDL. Il explique les concepts fondamentaux et les concepts liés à la programmation en VHDL (langage de description matérielle).
Full Transcript
Conception de composants programmables et langage HDL Les bases de la programmation Sous-Titre en VHDL Chiraz TRABELSI Conception de...
Conception de composants programmables et langage HDL Les bases de la programmation Sous-Titre en VHDL Chiraz TRABELSI Conception de composants programmables et langage HDL 4A-S1 Majeure systèmes embarqués et autonomes [email protected] 1 Flot de conception d’un système à partir d’une description HDL Descriptions en langage VHDL Description RTL (Register-Transfer-Level) Traduction de l’entrée en un circuit utilisant les ressources du Synthèse FPGA cible + optimisation de ce circuit Placement du circuit résultant de la synthèse sur les blocs du FPGA Placement et routage cible + établissement des connexions entre ces différents blocs (cette étape prend du temps surtout pour les systèmes de grande taille) Programmation de la carte Chargement du circuit sur le FPGA Conception de composants programmables et langage HDL 2 4A-S1 Majeure systèmes embarqués et autonomes Description RTL Register Transfer Level (RTL) est une méthode de description des architectures microélectroniques. Dans la conception RTL, le comportement d'un circuit est défini en termes d'envois de signaux ou de transferts de données entre registres (bascules), et les opérations logiques effectuées sur ces signaux. Le RTL est utilisé dans les langages de description matérielle (HDL) comme Verilog et VHDL pour créer des représentations d'un circuit à haut niveau, à partir duquel les représentations à plus bas niveau et le câblage réel peuvent être dérivées. Conception de composants programmables et langage HDL 3 4A-S1 Majeure systèmes embarqués et autonomes Structure d’une description VHDL Toute description VHDL se compose de deux parties L’entité: elle décrit l’interface externe du module (ses entrées et ses sorties) L’architecture: elle décrit la structure interne du module et/ou son comportement. Remarque: on peut définir plusieurs architectures différentes pour la même entité. Conception de composants programmables et langage HDL 4 4A-S1 Majeure systèmes embarqués et autonomes Déclaration des bibliothèques Toute description VHDL a besoin de bibliothèques. L’IEEE (Institut of Electrical and Electronics Engineers) les a normalisées et plus particulièrement la bibliothèque IEEE 1164. Elles contiennent les définitions des types de signaux électroniques, des fonctions et sous programmes permettant de réaliser des opérations arithmétiques et logiques,... Conception de composants programmables et langage HDL 5 4A-S1 Majeure systèmes embarqués et autonomes Structure d’une entité Remarque: il ne faut pas mettre un point-virgule après la dernière déclaration d’entrée/sortie Conception de composants programmables et langage HDL 6 4A-S1 Majeure systèmes embarqués et autonomes L’instruction port Syntaxe: nom_du_signal : sens type; Exemple: CLOCK: in std_logic; BUS : out std_logic_vector (7 downto 0); Le sens du signal : in : pour un signal en entrée. out : pour un signal en sortie. inout : pour un signal en entrée sortie buffer : pour un signal en sortie mais pouvant être lu (déconseillé). Les types: std_logic: tient sur un seul bit std_logic_vecteur est un vecteur de bits Dans l’exemple, BUS(7) est le poids fort du vecteur et BUS(0) est le poids faible Conception de composants programmables et langage HDL 7 4A-S1 Majeure systèmes embarqués et autonomes Les commentaires Un commentaire commence par deux tirets: -- Exemple: Remarque: Dans le standard 1993 (supporté par la plupart des outils et utilisé dans ce cours), il n’y a pas de commentaires multi-lignes comme pour le langage C (les commentaires multi-lignes sont possibles dans le standard 2008) Conception de composants programmables et langage HDL 8 4A-S1 Majeure systèmes embarqués et autonomes L’entête et la fin d’une architecture Il n’y a pas de contraintes sur le nom qu’on peut donner à une architecture La fin de l’architecture peut être indiquée en donnant le nom de l’architecture ou pas. Conception de composants programmables et langage HDL 9 4A-S1 Majeure systèmes embarqués et autonomes L’indentation Il est recommandé de faire des indentations dans le code pour une meilleure lisibilité Conception de composants programmables et langage HDL 10 4A-S1 Majeure systèmes embarqués et autonomes Les signaux Syntaxe : signal NOM_DU_SIGNAL : type; Exemples : signal I : std_logic; signal BUS : std_logic_vector (7 downto 0); Les signaux correspondent à des ‘fils’ internes dans l’architecture Exemple Conception de composants programmables et langage HDL 11 4A-S1 Majeure systèmes embarqués et autonomes L’initialisation C’est possible d’initialiser un signal dans la déclaration avec l’opérateur := Conception de composants programmables et langage HDL 12 4A-S1 Majeure systèmes embarqués et autonomes Les constantes En plus des signaux, on peut utiliser des constantes Syntaxe: constant nom_constante : type := valeur; Conception de composants programmables et langage HDL 13 4A-S1 Majeure systèmes embarqués et autonomes L’emplacement des signaux et des constantes Avant le begin dans une architecture Conception de composants programmables et langage HDL 14 4A-S1 Majeure systèmes embarqués et autonomes Le corps d’une architecture Il y a quatre styles différents pour une description VHDL: Les trois affectations sont faites en parallèle. 1) Le flot de données (dataflow): Le résultat est purement combinatoire. L’architecture est sous-forme d’affectations concurrentes L’entité VHDL globale contient 4 autres entités 2) Le structurel: L’architecture est sous- VHDL forme d’instanciation de composants 3) Le comportemental: L’architecture est sous-forme de processus Les trois affectations sont faites en séquentiel (avec un cycle 4) Le mix des trois d’horloge de décalage) Conception de composants programmables et langage HDL 15 4A-S1 Majeure systèmes embarqués et autonomes Le reste de ce chapitre Le reste de ce chapitre sera donc organisé comme suit: Les instructions concurrentes L’instanciation des composants Les processus La simulation Conception de composants programmables et langage HDL 16 4A-S1 Majeure systèmes embarqués et autonomes Les instructions concurrentes Quand l’architecture décrit un module combinatoire, l’ordre des instructions ne compte pas, puisque toutes les instructions s’exécutent en parallèle (instructions concurrentes) C’est la différence entre un langage matériel et un langage logiciel (séquentiel) Conception de composants programmables et langage HDL 17 4A-S1 Majeure systèmes embarqués et autonomes Les instructions concurrentes Syntaxe de l’affectation Affectation des valeurs numériques S