Page d'accueil encyclopedie-enligne.com en page d'accueil
Liste Articles: [0-A] [A-C] [C-F] [F-J] [J-M] [M-P] [P-S] [S-Z] | Liste Catégories | Une page au hasard | Pages liées

Verilog


Le Verilog HDL (a ne pas confondre avec VHDL (Very high speed integrated circuits Hardware Description Language) qui represente une norme differente) est un langage de description de circuits logiques en électronique (le sigle anglais HDL -Hardware Description Language- signifie Langage de Description de Matériel), utilisé pour la conception d'ASICs (application-specific integrated circuits, circuits spécialisés) et de FPGAs (field-programmable gate array).

À l'origine, il s'agissait d'un langage propriétaire, développé par la société Cadence Design Systems , pour être utilisé dans leurs simulateurs logiques, mais le succès grandissant de VHDL a incité ses concepteurs à en faire un standard ouvert. Verilog a maintenant atteint cet objectif : c'est le standard IEEE 1364.

Verilog possède une syntaxe largement inspirée du langage de programmation C, ce qui permet d'expliquer son succès et sa diffusion rapide dans la communauté des ingénieurs qui ont déjà appris ce langage.

La structure du langage Verilog permet de décrire les entrées et les sorties de modules électroniques, pour définir des portes logiques virtuelles. La combinaison de modules permet de réaliser des schémas électroniques virtuels complexes qu'il est alors possible de tester dans un programme de simulation. De tels tests ont pour objectif de :

Ce langage est dépendant de la casse. Par exemple, size et Size désignent deux paramètres différents.

Voici un exemple de circuit logique (ici, un compteur) :

module Div20x (rst, clk, cet, cep, count,tc);
//TITLE 'Divide-by-20 Counter with enables'
//enable CEP is a clock enable only
//enable CET is a clock enable and enables the TC output
//a counter using the Verilog language
 parameter size = 5;
 parameter length = 20;
 input rst;
 input clk;
 input cet;
 input cep;
 output [size-1:0] count;
 output tc;
 reg [size-1:0] count;
 wire tc;
 always @ (posedge rst or posedge clk)
 begin
 if (rst)
 count = 5'b0;
 else if (cet && cep)
 begin
 if (count == length-1)
 begin
 count = 5'b0;
 end
 else
 count = count + 1;
 end
 end
 assign tc = (cet && (count == length-1));
endmodule


This site support the Wikimedia Foundation. This Article originally from Wikipedia. All text is available under the terms of the GNU Free Documentation License Page HistoryOriginal ArticleWikipedia