Cours VHDL - II. L3-S6 - Université de Cergy-Pontoise. Laurent Rodriguez Benoît Miramond

Documents pareils
Le langage VHDL. Eduardo Sanchez EPFL

T. BLOTIN Lycée Paul-Eluard SAINT-DENIS

SIN-FPGA DESCRIPTION PAR SCHEMA

Manipulations du laboratoire

Conception Systèmes numériques VHDL et synthèse automatique des circuits

Conception Systèmes numériques VHDL et synthèse automatique des circuits

LES TYPES DE DONNÉES DU LANGAGE PASCAL

QUESTION 1 {2 points}

Conception et Intégration de Systèmes Critiques

Modélisation physique des cellules logiques... Modèles pour le placement routage, le format "LEF"

Conception de circuits numériques et architecture des ordinateurs


Profil UML pour TLM: contribution à la formalisation et à l automatisation du flot de conception et vérification des systèmes-sur-puce.

Quoi de neuf en LabVIEW FPGA 2010?

UE Programmation Impérative Licence 2ème Année

Compilation (INF 564)

Préparer un état de l art

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Aiguilleurs de courant intégrés monolithiquement sur silicium et leurs associations pour des applications de conversion d'énergie

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

1/ Présentation de SQL Server :

Importation de fichiers Eagle

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Diagramme de classes

Introduction au langage C

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

MAC-TC: programmation d un plate forme DSP-FPGA

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Business Process Modeling (BPM)

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Cours de Programmation 2

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE

CATALOGUE FORMATION. Product Lifecycle Management. Juin 2013

Chapitre VI- La validation de la composition.

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

1 Démarrer L écran Isis La boite à outils Mode principal Mode gadget Mode graphique...

Gouvernance IT : par où commencer? Hubert Lalanne DE, Chief Architect for Industries IBM Software France

Les chaînes de caractères

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Évaluation et implémentation des langages

Éléments d'architecture des ordinateurs

Thème 3 Conception et vérification d architectures de systèmes sur puce

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Initiation à la Programmation en Logique avec SISCtus Prolog

Formation. Mastère Spécialisé en Sécurité des Systèmes Intégrés & Applications. Post-master s degree in Security of Integrated Systems & Applications

SYSTÈME DE GESTION DE FICHIERS

Le langage C. Séance n 4

Formation Altium Designer par Transfer

De la modélisation linguistique aux applications logicielles: le rôle des Entités Nommées en Traitement Automatique des Langues

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Initiation au binaire

IFT1215 Introduction aux systèmes informatiques

Olivier Mondet

TP Contraintes - Triggers

Modules du DUT Informatique proposés pour des DCCE en 2014/2015

Architecture des ordinateurs

Annexe : La Programmation Informatique

TP1 : Initiation à Java et Eclipse

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin Talend

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

TP1 : Initiation à Java et Eclipse

Tutorial Cadence Virtuoso

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur Le 23 novembre 2012

ADÉQUATION ALGORITHME-ARCHITECTURE APPLIQUÉE AUX CIRCUITS RECONFIGURABLES

Mineure Architectures Orientées Services SOA Business Process Modeling (BPM) Mineure SOA. Business Process Modeling (BPM)

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

Altium Designer la conception électronique sous un angle différent

Notice ARES Version 5.20 Française

TP 1. Prise en main du langage Python

Généralités sur le Langage Java et éléments syntaxiques.

Installation d un serveur virtuel : DSL_G624M

Les systèmes embarqués Introduction. Richard Grisel Professeur des Universités Université de Rouen Nacer Abouchi Professeur ESCPE Lyon

Logiciel de Base. I. Représentation des nombres

DUT. Informatique, orientation Imagerie Numérique. Domaine : Sciences, Technologies, Santé. Mention : Informatique

Vers du matériel libre

TP1 Initiation à la conception de circuits intégrés analogiques.

Du schéma au circuit imprimé. Copyleft

NOTIONS DE RESEAUX INFORMATIQUES

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

TP 1 et 2 de Réseaux en Master 1 Informatique : Assemblage d un réseau, configuration d adresses IP sous Linux et Windows

S LICENCE INFORMATIQUE Non Alt S Alt S S1 S2 S3 S4 SS5 S6 Parcours : S IL (Ingénierie Logicielle) SRI (Systèmes et Réseaux Informatiques)

Algorithmique et Programmation, IMA

TP3 : Creation de tables 1 seance

Synergies entre Artisan Studio et outils PLM

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Programmation d'agents intelligents Vers une refonte des fils de raisonnement. Stage de fin d'études Master IAD 2006

Software and Hardware Datasheet / Fiche technique du logiciel et du matériel

L informatique en BCPST

IFT2255 : Génie logiciel

Outils de CAO. Ecole de microélectronique IN2P octobre 2009, La Londe Les Maures. C. Colledani

Projet Active Object

Présentation du langage et premières fonctions

PROGRAMME DETAILLE. Parcours en première année en apprentissage. Travail personnel CC + ET réseaux

TP c Fonctions des listes de contrôle d'accès multiples (TP avancé)

Transcription:

Cours VHDL - II L3-S6 - Université de Cergy-Pontoise Laurent Rodriguez Benoît Miramond

Plan du cours I Historique de conception des circuits intégrés - HDL - Modèles de conceptions - VHDL - Les modèles de conceptions en VHDL - Les 5 briques de base II VHDL et FPGA - VHDL - Syntaxe et typage - Retour sur les briques de bases - Retour sur la conception structurelle et comportementale en VHDL Port map, Equations logiques, Tables de vérités (With... Select) - FPGA - Qu'est ce qu'un FPGA - Flot de conception - Carte de développement et environnement de TP

I - Rappels

I Rappels : Hardware Description Language Modèles de descriptions On distingue donc plusieurs niveaux de modélisation (modèles ou encore vues) : Physiques Dimensions Matériaux Transistors Masques,... Structurelles (textuelle ou shématique) Assemblage de composants Hiérarchie d'interconnexions de différents sous-ensemble dont le plus bas niveau est le transistor Comportementales Fonction réalisée Le «Quoi» et non le «Comment»

I HDL : Hardware Description Language Modèles de descriptions et Synthèse Synthèse Logique netlist Physique Masques

I HDL : Hardware Description Language 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). Permet la simulation sans connaissance du matériel cible 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. Permet une simulation plus riche tenant compte du matériel cible (délais) Permet la configuration sur FPGA ou la réalisation d'un circuit dédié (ASIC)

I VHDL : Flot de conception V(HDL) Conception d'un modèle comportementale et test bench pour la simulation

I VHDL : Flot de conception V(HDL) Synthèse logique

I VHDL : Flot de conception V(HDL) Simulation

II VHDL : Flot de conception V(HDL) Synthèse physique

I VHDL : Flot de conception V(HDL) Simulation Plus riche

I VHDL : Flot de conception V(HDL) Création du circuit / utilisation sur FPGA

I VHDL : Unités de conception

I VHDL : L'entité L'entité est la description de l'interface du circuit. Elle correspond au symbole dans les représentations schématiques : library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity fa is port ( a, b, cin : in std_logic; s, cout : out std_logic ); end entity; L'entité précise : le nom du circuit Les ports d'entrée-sortie : Leur nom Leur direction (in, out, inout,...) Leur type (bit, bit_vector, integer, std_logic,...) Les paramètres éventuels pour les modèles génériques

I VHDL : Architecture description des modules L'architecture est la description interne du circuit. Elle est toujours associée à une entité. Une même entité peut avoir plusieurs architecture. Le mécanisme de configuration (décrit dans le VHDL structurel) permet d'indiquer l'architecture rattachée à une entité. library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity fa is port ( a, b, cin : in std_logic; s, cout : out std_logic ); end entity; architecture arc2 of fa is begin s <= a xor b xor cin; cout <= (a and b) or ((a xor b) and cin); end arc1;

II VHDL plus détaillé

II VHDL : Architecture Type de descriptions - Comportementale Comportementale Ce type correspond à expliciter le comportement d un modèle par ses équations architecture arcl of fa is begin s <= a xor b xor cin; cout <= (a and b) or ((a xor b) and cin); end arcl; architecture arctv of fa is Signal tmp : std_logic_vector(1 down to 0) ; begin tmp <= a&b; with tmp select S <= '0' when '00', '1' when '01', '1' when '10', '0' when '11'; end architecture bhv;

II VHDL : Architecture Type de descriptions - Structurelle Structurelle Ce type correspond à l instanciation hiérarchique d autres composants

II VHDL : Architecture Type de descriptions - Structurelle library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity fa is port ( a, b, cin : in std_logic; s, cout : out std_logic); end entity; library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity fa4b is port ( a, b, cin : in std_logic_vector(3 dowto 0); s, cout : out std_logic_vector(3 dowto 0)); end entity; Architecture fa4b_bhv of fa4b is component fa is port ( a, b, cin : in std_logic; s, cout : out std_logic); end component; Signal cout_b : std_logic_vector(2 downto 0) ; Begin Add0 : fa port map (a => a(0), b => b(0), cin => cin, S => s(0), cout => cout_b(0)) ; Add1 : fa port map (a(1), b(1), cout_b(0), s(1), cout_b(1)) ; Add2 : fa port map (a(2), b(2), cout_b(1), s(2), cout_b(2)) ; Add3 : fa port map (a(3), b(3), cout_b(2), s(3), cout) ; End architecture ;

II VHDL : Architecture Type de descriptions - Structurelle library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity fa is port ( a, b, cin : in std_logic; s, cout : out std_logic); end entity; library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity fa4b is port ( a, b, cin : in std_logic_vector(3 dowto 0); s, cout : out std_logic_vector(3 dowto 0)); end entity; Architecture fa4b_bhv of fa4b is component fa is port ( a, b, cin : in std_logic; s, cout : out std_logic); end component; Signal cout_b : std_logic_vector(2 downto 0) ; Begin Add0 : fa port map (a => a(0), b => b(0), cin => cin, S => s(0), cout => cout_b(0)) ; Add1 : fa port map (a(1), b(1), cout_b(0), s(1), cout_b(1)) ; Add2 : fa port map (a(2), b(2), cout_b(1), s(2), cout_b(2)) ; Add3 : fa port map (a(3), b(3), cout_b(2), s(3), cout) ; End architecture ;

II VHDL : Architecture Type de descriptions - Structurelle library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity fa is port ( a, b, cin : in std_logic; s, cout : out std_logic); end entity; library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity fa4b is port ( a, b, cin : in std_logic_vector(3 dowto 0); s, cout : out std_logic_vector(3 dowto 0)); end entity; Architecture fa4b_bhv of fa4b is component fa is port ( a, b, cin : in std_logic; s, cout : out std_logic); end component; Signal cout_b : std_logic_vector(2 downto 0) ; Begin Add0 : fa port map (a => a(0), b => b(0), cin => cin, S => s(0), cout => cout_b(0)) ; Add1 : fa port map (a(1), b(1), cout_b(0), s(1), cout_b(1)) ; Add2 : fa port map (a(2), b(2), cout_b(1), s(2), cout_b(2)) ; Add3 : fa port map (a(3), b(3), cout_b(2), s(3), cout) ; End architecture ;

II VHDL : Architecture Type de descriptions - Structurelle library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity fa is port ( a, b, cin : in std_logic; s, cout : out std_logic); end entity; library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity fa4b is port ( a, b, cin : in std_logic_vector(3 dowto 0); s, cout : out std_logic_vector(3 dowto 0)); end entity; Architecture fa4b_bhv of fa4b is component fa is port ( a, b, cin : in std_logic; s, cout : out std_logic); end component; Signal cout_b : std_logic_vector(2 downto 0) ; Begin Add0 : fa port map (a => a(0), b => b(0), cin => cin, S => s(0), cout => cout_b(0)) ; Add1 : fa port map (a(1), b(1), cout_b(0), s(1), cout_b(1)) ; Add2 : fa port map (a(2), b(2), cout_b(1), s(2), cout_b(2)) ; Add3 : fa port map (a(3), b(3), cout_b(2), s(3), cout) ; End architecture ;

II VHDL : éléments de language Conventions lexicales Casse : VHDL est insensible à la casse. Il est cependant conseillé d'avoir des règles d'écriture cohérentes. Par exemple, les mots réservés du langage peuvent être en majuscule et les autres mots en minuscule. Commentaires : Les commentaires doivent être inclus dans le code, pour augmenter la lisibilité et la documentation. Ils commencent par 2 tirets (--) en se terminent en fin de ligne ; Identificateurs : Ce sont les noms de variables, de signaux, de fonctions,... - Ils ne peuvent contenir que des lettres, des chiffres et le "underscore" _. - Ils doivent commencer par une lettre. - Ils ne peuvent pas contenir d'espace. - Les mots-clefs du langage ne peuvent pas être utilisés comme identificateurs. Expressions : Elles se terminent par un point virgule ; Ex : l'affectation: a <= b ; -- pour connecter des ports, signaux, affecter une valeur,... Litéraux : Ce sont des valeurs explicites : - 67 est un littéral pour le type entier - '0' est un littéral pour un bit - "001" O"562" X"FF1" sont des littéraux pour les vecteurs de bits - "chaine" est un littéral de type chaine de caractères - null est un litéral pointeur

III - FPGA

III FPGA : Qu'est ce que c'est? Field-Programmable Gate Array - réseau de portes programmables Ce sont des circuits intégrés programmables (ou plutôt reconfigurables) plusieurs fois et de plus en plus dynamiquement! Ils permettent Soit d émuler un circuit afin de le valider avant la gravure silicium Soit d implanter un système complet, System on Chip (SoC) En utilisant la reconfiguration dynamique, ce système peut devenir adaptatif en fonction des besoins (accélération de fonctionnalités choisies).

III FPGA : Qu'est ce que c'est? FPGA vs ASIC Field Programmable Gate Arrays (FPGAs) et Application Specific Integrated Circuits (ASICs) D'après XILINX FPGA : Coût de développement (Delta simulation/réalité), temps d'accès au marché, temps de design réduit, programmable,... ASIC : Circuit correspondant complètement au design, plus petit facteur d'échelle (ne contient que le nécessaire), moins cher sur de gros volumes,...

III FPGA : des CLBs Blocs Logiques (Re)Configurables

III FPGA : des CLBs Blocs Logiques (Re)Configurables

III FPGA : des CLBs Blocs Logiques (Re)Configurables mais pas seulement!

III FPGA : Altera - Cyclone II

III FPGA : Altera - Cyclone II : Caractéristiques

III FPGA : Altera - Cyclone II : multiplieurs

III FPGA : le flot de conception Blocs de base Description de la fonctionnalité ( HDL ) Placement Routage Simulation fonctionnelle Back-annotation Simulation Timé Bitstream -> Programmation

III FPGA : Pin assignment Il faut préciser sur quelles pattes du circuit les signaux fonctionnels du design vont être branchés Cela dépend Du nombre de pin du FPGA choisi De la façon dont il est connecté aux autres éléments de la carte (PCB)

III FPGA : Environnement de développement Carte de développement DEII et DEII-115

III FPGA : Environnement de développement IDE et outils de développement

Organisation Cours/TPs/Projet 8 séances de CM dont 1-2 séances finales dédiées au Projet et préparation de l'exam 8 ou 7 séances de Tps Préparation des différents bloques logiques (ALU, Registres,...) Contrôleurs FSM Projet (assemblage et extension des bloques précédents) + définition d'un ISA + instanciation mémoire

Biblio Documents de cours Ce cours (bientot) en ligne à : Http://perso-etis.ensea.fr/rodriguez/ Un très bon support de cours http://hdl.telecom-paristech.fr/index.html Le cours de Licence 2 (en particulier pour ceux qui ne l'ont pas suivi): http://perso-etis.ensea.fr/miramond/enseignement/l2/circuits_numeriques.html Le cours de Licence 3 de 2013 : http://perso-etis.ensea.fr/miramond/enseignement/l3/cours_vhdl_2011.html Documents de développement Quartus http://quartushelp.altera.com/current/ Documentation Altera sur les Cyclones II et IV (entre autre...) http://www.altera.com/literature/lit-index.html