Le VHDL. VHSIC (Very High Speed Integrated Circuit) Hardware Description Language, (Ou encore V.H.S.I.C.H.D.L. :)

Documents pareils
Le langage VHDL. Eduardo Sanchez EPFL

Manipulations du laboratoire

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

SIN-FPGA DESCRIPTION PAR SCHEMA

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

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

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Arbres binaires de recherche

IFT1215 Introduction aux systèmes informatiques

RÉALISATION ET MISE AU POINT D UN SYSTÈME DE TÉLÉSURVEILLANCE VIDÉO

Algorithmique des Systèmes Répartis Protocoles de Communications

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

Génie Logiciel avec Ada. 4 février 2013

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Présentation du PL/SQL

OCL - Object Constraint Language

//////////////////////////////////////////////////////////////////// Administration bases de données

Algorithmique & programmation

Les portes logiques. Voici les symboles des trois fonctions de base. Portes AND. Portes OR. Porte NOT

QUESTION 1 {2 points}

Tutorial Cadence Virtuoso

PROGRAMMATION EVENEMENTIELLE sur EXCEL

Bases de données avancées

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Architecture des ordinateurs

Architecture des calculateurs

Composants Logiciels. Le modèle de composant de CORBA. Plan

TP Contraintes - Triggers

Concept de machine virtuelle

Configurer la supervision pour une base MS SQL Server Viadéis Services

SYSTEME DE TELESURVEILLANCE VIDEO

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Quoi de neuf en LabVIEW FPGA 2010?

ELP 304 : Électronique Numérique. Cours 1 Introduction

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

Chapitre VI- La validation de la composition.

La Forge INRIA : bilan et perspectives. Hervé MATHIEU - 11 mai 2010

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Découvrir Drupal, le CMS Open Source de référence. Michel-Marie MAUDET Linagora /

Perl Orienté Objet BioPerl There is more than one way to do it

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

modèles génériques applicables à la synthèse de contrôleurs discrets pour l Internet des Objets

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Modules d automatismes simples

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

LABO 5 ET 6 TRAITEMENT DE SIGNAL SOUS SIMULINK

Université de Bangui. Modélisons en UML

IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL

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

JavaServer Pages (JSP)

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

sshgate Patrick Guiran Chef de projet support

lundi 3 août 2009 Choose your language What is Document Connection for Mac? Communautés Numériques L informatique à la portée du Grand Public

Synergies entre Artisan Studio et outils PLM

Business Process Execution Language

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

Introduction au Génie Logiciel

Spécial Catégorie 6 Patch Cords

Architecture des ordinateurs

Les BRMS Business Rules Management System. Groupe GENITECH

Plan. Department of Informatics

Programmer en JAVA. par Tama

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

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

Présentation Windows Azure Hadoop Big Data - BI

Préparer un état de l art

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Bases de Données Avancées PL/SQL

Introduction au langage C

HYPERVISION. Supervision 2.0. RMLL Strasbourg monitoring-fr.org

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Java Licence Professionnelle CISII,

République Tunisienne Ministère de l'education. Sciences Techniques. Manuel d activités. Les auteurs. Ali ZITOUNI Inspecteur des lycées et collèges

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

ÉCOLE POLYTECHNIQUE DE MONTRÉAL. Département de Génie Électrique. La technologie de TEXAS INSTRUMENTS DSP pour le cours Analyse des Signaux ELE2700

Logique séquentielle

Cedric Dumoulin (C) The Java EE 7 Tutorial

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

Cours de Programmation en Langage Synchrone SIGNAL. Bernard HOUSSAIS IRISA. Équipe ESPRESSO

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

PERFORMANCE BASE DE DONNÉES

NTP (Network Time Protocol)

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

! analyse du fonctionnement

Logiciel Libre Cours 2 Fondements: Programmation

Derrière toi Une machine virtuelle!

AMICUS 18 (2ème partie) 4) Présentation du logiciel Amicus IDE

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

Corrigés détaillés des exercices

SYSTEME DE PALPAGE A TRANSMISSION RADIO ETUDE DU RECEPTEUR (MI16) DOSSIER DE PRESENTATION. Contenu du dossier :

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server

Transcription:

Le VHDL VHSIC (Very High Speed Integrated Circuit) Hardware Description Language, (Ou encore V.H.S.I.C.H.D.L. :)

Plan de la présentation Objets et opérateurs de base Logique concurrente VS synchrone Les «Entity» Les «Component» Les «Package» Les «Block» Les «Test benches» Conclusion

Analogie avec circuits logiques réels Exemple: Comparateur 4 bits entity comparateur is port( A, B: in bit_vector(0 to 3 EQ: out bit end comparateur; architecture arch of comparateur is begin EQ <= 1 when (A = B) else 0 ; end arch;

Objets en VHDL Les différentes sortes d objets Signal : Fil conducteur. Variable : Valeur intermédiaire d une opération complexe. Constant : Valeur fixe. Possèdent tous un type bit std_logic std_logic_vector Exemples de déclaration: constant SRAM: bit_vector(15 downto 0) := X"F0F0"; signal Q: std_logic;

Opérateurs Vaste choix d opérateurs Logiques: and, or, nand, nor, xor, etc. Tests : =, /=, <, >, <=, etc. Arithmétiques: +, -, /, * Attributs : clock event, clock last_value, etc. Exemple, pour détecter un front montant : if Clock = '1' and Clock event then

Logique concurrente et synchrone En VHDL, on peut définir des opérations concurrentes ou synchrones. Hors d un bloc Process, la logique est toujours concurrente. À l intérieur d un bloc Process, la logique est synchrone. On peut également «pipeliner» les signaux dans un Process.

Exemple de logique concurrente signal A, B, C: std_logic_vector(7 downto 0 signal Select : std_logic; constant Init: std_logic_vector(7 downto 0) := "01010101"; A <= B; B <= Init when Select = '1' else C; C <= A and B; <- Il faut additionner les délais

Exemple de logique synchrone Signal OutOnes, OutOnesLater : std_logic_vector(0 to 9 process(rst, Clk) <- Liste de sensibilité begin if Rst = '1' then <- Aussitôt que Rst égale 1 (non synchrone) OutOnes <= (others => '0' OutOnesLater <= (others => '0' elsif rising_edge(clk) then <- Quand l horloge est en montée OutOnes <= "111111111"; <- Après 1 clock OutOnesLater <= OutOnes ; <- Après 2 clock end if; end process;

Les entités (entity) Qu est-ce que c est? Un tout, c est-à-dire un bloc de code indépendant avec ses entrées et sorties Analogie avec C/ C++ : Une fonction Une entité est divisée en trois (3) parties : Déclaration de l entité Déclaration des constantes, signaux internes et components Corps de l entité : code utile { { { Entity <Nom de l entité> is Port ( <Signaux in et out> End <Nom de l entité> Architecture Structural <Nom de l entité> is <Constantes> <Signaux internes> <Components> Begin <Code utile> End Structural Règle générale : Une entité par fichier VHDL

Exemple d entité : additionneur 8 bits Entity Adder8bits is Port ( clk: in std_logic; rst: in std_logic; A: in std_logic_vector(7 downto 0 B: in std_logic_vector(7 downto 0 C: out std_logic_vector(7 downto 0 Carry: out std_logic End Adder8bits Architecture behavioral of Adder8bits is Signal AplusB: std_logic_vector(8 downto 0 Begin Additiop : Process (rst, clk) Begin If (rst = '1') then Carry <= '0'; C <= "00000000"; AplusB <= (Others => '0' Elsif (clk'event and clk = '1') then AplusB <= (A & '0') + (B & '0' C <= AplusB(7 downto 0 Carry <= AplusB(8) End End process End structural

Les components But : Modularisation du code de façon hiérarchique Analogie avec C/ C++ : Appel de fonction Méthode pour inclure d autres entités dans une entité principale Déclaration du component Instanciation du component : «Port map» Niveaux d instanciations infinis! Déclaration : Instanciation : Component <Nom du <Nom de l instance> : <Nom du component> component> Port ( Port map ( <Signaux in et out> Signal1 => SignalInterne1, Signal2 => SignalInterne2 End Component;

Exemple avec component : additionneur 16 bits Entity Adder16bits is Port ( D: in std_logic_vector(15 downto 0 E: in std_logic_vector(15 downto 0 F: out std_logic_vector(15 downto 0) End Adder16bits; Architecture Structural of Adder16bits is Signal Carry: std_logic; Signal Dplus: std_logic_vector(7 downto 0 Component Adder8bits Port ( A: in std_logic_vector(7 downto 0 B: in std_logic_vector(7 downto 0 C: out std_logic_vector(7 downto 0 Carry: out std_logic End component; Begin Adder1 : Adder8bits Port map ( A => D(7 downto 0), B => E(7 downto 0), C => F(7 downto 0), Carry => Carry Dplus <= D(15 downto 8) + ("0000000" & Carry Adder2 : Adder8bits Port map ( A => Dplus, B => E(15 downto 8), C => F(15 downto 8), Carry => Open End structural

Les packages Les packages sont des librairies de code VHDL précompilées ou non Analogie avec C/ C++ : #include package.h Les packages sont généralement déclarés au tous début des fichiers de code source VHDL (avant les entités) Employés à plusieurs sauces, par exemple : Modularisation du code Simulation de composantes numériques externes Librairies nécessaires par les simulateurs employés Package <Nom du package> is <Constantes> <Signaux> <Components> <Code utile, etc.> End <Nom du package> use work.<nom du package>.all;

Les blocks Ce que c est : Une sous unité d une entitée C est un mélange de process et de component : un process avec des ports d entrée et de sortie Rarement utilisés en pratique : alourdi le code. On préconise plutôt l utilisation des components Entity <Nom de l entité> is... Begin <Nom du bloc> : block port ( <Signaux in et out> port map ( Signal1 => SignalInterne1, Signal2 => SignalInterne2 declarations for <Nom du block> begin <Code utile> End block <Nom du bloc>; End Structural;

Test bench et exemple Test bench : Librairies et entité «vide» Déclaration des components à simuler et signaux à monitorer Attention : Init. les signaux { { library ieee; use ieee.std_logic_1164.all; Entity TestBench is End TestBench; Architecture Behavioral of TestBench is Signal A: std_logic_vector(7 downto 0 Signal Clk: std_logic := '0'; <Déclarer component à simuler> Begin Opérateurs Wait et After Clk <= not(clk) after 10 ns; Process(clk) Wait for 10 ns; A <= "10100101"; Wait; End process; <Port map du component à simuler> End Behavioral

Conclusion Ceci n était qu un survol du VHDL. Plusieurs points n ont pas été couverts : Generic Simulation : ModelSim, Matlab-Simulink Tutorial intéressant pour se familiariser avec le VHDL : http://csold.cs.ucr.edu/content/esd/labs/tutorial/ Référence : http://www.peakfpga.com/vhdlref/index.html

Questions