Very High Speed Integrated Circuit Hardware Description LanguageCatégorie:Sigle Catégorie:Langage informatique
VHDL (abréviation de VHSIC HDL) est l'acronyme de Very High Speed Integrated Circuit Hardware Description Language.
Il s'agit d'un langage de description du matériel, destiné à décrire le comportement et/ou l'architecture d’un « module » de logique matérielle, c'est-à-dire une fonction combinatoire et/ou séquentielle.
Il est utilisé en conception assisté par ordinateur (CAO) de circuits intégrés, dans le cadre de développement d'ASIC et de FPGA.
Détails techniques
La syntaxe du VHDL est tirée du langage Ada, dont les mots clefs ont été adaptés à la conception matérielle. L'une des particularités du VHDL provient du fait qu'il est possible d'exprimer facilement le parallélisme présent à l'intérieur d'un circuit.
Le but d'un tel langage de description du matériel est de faciliter le développement d'un circuit numérique en fournissant une méthode rigoureuse de description du fonctionnement et de l'architecture du circuit désirée. L'idée est de ne pas avoir à réaliser (fondre) un composant réel, en utilisant à la place des outils de développement permettant de vérifier le fonctionnement attendu. Ce langage permet en effet d'utiliser des simulateurs, dont le rôle est de tester le fonctionnement décrit par le concepteur.
L'étape suivante consiste à synthétiser cette description matérielle pour obtenir un composant réalisant les fonctions désirées, à l'aide d'éléments logiques concrets (portes logiques, bascules ou registres). Ceux-ci seront implémentés, selon la technologie utilisée, soit en transistors (dans le cas d'un ASIC), ou plus couramment en se basant sur les éléments programmables des FPGA. Pour ce dernier cas, il faut alors passer encore par des phases de placement et de routage qui consistent à placer les éléments synthétisés en fonction des ressources particulières disponibles dans les différentes FPGA.
Historique
Originellement commandé par le ministère de la défense américain, celui-ci lui a finalement préféré le langage Verilog HDL, très similaire. Il existe de fait une quasi équivalence entre les deux langages, d'où l'existence de nombreux scripts de traduction de l'un vers l'autre. Le langage VHDL est maintenant principalement utilisé par les entreprises européennes.
La version initiale de VHDL, standard IEEE 1076-1987, incluait un large éventail de types de données, numériques (entiers, réels), logiques (bits, booléens), caractères, temps, plus les tableaux de bits et chaînes de caractères.
L'un des principaux problèmes concernait le type bit. Celui-ci ne pouvant prendre que 2 valeurs (0, 1), il était impossible de représenter les signaux de valeur inconnue ou encore les signaux en haute impédance, ainsi que la "force" d'un signal (faible, forte ou nulle). La norme IEEE 1164 définit le type std_logic avec 9 états possibles. Ceci a été adopté dans le VHDL-93 (seconde version de la norme IEEE 1076).
Afin de répondre aux différents problèmes de l'éléctronique, la norme VHDL a du évolué. L'IEEE Design Automation Standards Committee (DASC) a créé la norme IEEE 1076.1, ou VHDL-AMS (VHDL-Analog & Mixed Systems). Cette nouvelle norme est une extension de la norme IEEE 1076-1987 déjà existante. Elle supporte à présent la description et la simulation de circuits analogiques, numériques, et mixtes (analogique et numérique).
Introduction au VHDL
En VHDL, on décrit l’architecture d’un « module matériel » en deux temps :
- Une ENTITY : il s’agit de déclarer ce que le module expose au monde extérieur, principalement la liste des E/S d’un module (exemple pour une porte logique classique : deux entrées a et b, et une sortie s).
- Une ARCHITECTURE : il s’agit de décrire le fonctionnement d’un module dont les E/S ont été définies dans l'ENTITY. Plusieurs modules aux fonctionnements très différents et donc décrits par plusieurs ARCHITECTUREs, peuvent être basés sur une même ENTITY. (exemple de plusieurs portes logiques à deux entrées et une sortie : ET, OU, XOR…)
C’est donc l'ARCHITECTURE qui contient la description de la fonction matérielle désirée :
- soit sous forme de comportement attendu (behaviour), c'est-à-dire orienté fonctionnel,
- soit sous forme de description précise de l’architecture matérielle (les portes logiques à utiliser).
Dans cette ARCHITECTURE, la logique utilisée peut être :
- soit combinatoire (on dit « concurrente », c'est-à-dire traitements en parallèle),
- soit dépendante du temps (on parle de logique « séquentielle par opposition à la logique concurrente », c'est-à-dire traitements en série).
Exemples de code VHDL
Un multiplexeur 3 vers 1 (trois architectures concurrentes différentes)
En VHDL, il faut distinguer le contenant du contenu, nommés respectivement entité et architecture.
Le fichier VHDL
Un fichier VHDL doit toujours porter le nom de l'entité qu'il contient. Son extension standard est ".vhd"
Avant toute chose, il faut commencer par déclarer l'utilisation des librairies à utiliser dans le projet :
-- En VHDL : une ligne de commentaires commence avec deux "-"
-- le fichier doit porter le même nom que l'entité qu'il décrit, ici ce sera "logique_3_vers_1.vhd"
-- Il faut toujours commencer par importer les bibliothèques VHDL standards normalisées par l'IEEE
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;
L'entité
Nous décrivons en premier lieu l'interface (l'entité) d'un composant multiplexeur, entité qui nous serviras pour les trois exemples d'architectures concurrentes permettant de réaliser un multiplexeur.
-- Voici un exemple d’entité, décrivant les E/S utilisées
-- par les trois exemples d’architectures purement concurrentes :
--
-- ATTENTION, l'entité doit avoir le même nom que le fichier (logique_3_vers_1.vhd)
ENTITY logique_3_vers_1 IS
PORT
(
a : IN STD_LOGIC;
b : IN STD_LOGIC;
c : IN STD_LOGIC;
adr : IN STD_LOGIC_VECTOR (1 downto 0);
s : OUT STD_LOGIC
);
END logique_3_vers_1;
Première Architecture
La première architecture permettant de décrire ce multiplexeur est en fait plus particulièrement adaptée aux équations simples, ou aux fonctions en somme de produits impliqants un nombre d'entrées variable (par exemples=a.b+a.b.c) car cette méthode est très souple et permet de tout faire. En contrepartie elle est peu lisible pour les équations complexes.
-- Première architecture concurrente décrivant un mux :
ARCHITECTURE mux_3_vers_1 OF logique_3_vers_1 IS
BEGIN
s <= ( a AND NOT adr(1) AND NOT adr(0) )
OR ( b AND NOT adr(1) AND adr(0) )
OR ( c AND adr(1) AND NOT adr(0) );
-- OR ('0'AND adr(1) AND adr(0) ); -- Cette dernière ligne est implicite dans l'équation du dessus
END mux_3_vers_1;
Deuxième Architecture
La deuxième architecture permettant de décrire ce multiplexeur est limitée aux fonctions dont le nombre d'entrées est fixée (n) pour lesquelles elle est tout particulièrement adaptée. Cependant, avec cette méthode il est obligatoire de lister l'ensemble des états possible (2^n).
-- Deuxième architecture concurrente décrivant un mux :
ARCHITECTURE mux_3_vers_1 OF porte_3_vers_1 IS
BEGIN
WITH adr SELECT
s <= a WHEN "00",
b WHEN "01",
c WHEN "10",
‘0’ WHEN "11";
END mux_3_vers_1;
Troisième Architecture
La troisième architecture permettant de décrire ce multiplexeur est elle aussi limitée aux fonctions dont le nombre d'entrées est fixée (n) pour lesquelles elle est tout particulièrement adaptée. Cependant, avec cette méthode il n'est pas obligatoire de lister l'ensemble des états possible, puisque la dernière ligne permet d'appliquer un traitement par défaut.
-- Troisième architecture concurrente décrivant un mux:
ARCHITECTURE mux_3_vers_1 OF porte_3_vers_1 IS
BEGIN
s <= a WHEN adr = "00" ELSE
b WHEN adr = "01" ELSE
c WHEN adr = "10" ELSE
‘0’;
END mux_3_vers_1;
Architecture séquentielle - une bascule D
La description d'une architecture séquentielle, c'est à dire avec d'une fonction dépendante du temps (ie. de l'horloge) passe par l'utilisation de process.
-- Architecture séquentielle pour une bascule D :
ARCHITECTURE bascule_d OF xxx IS
BEGIN
bascule : PROCESS (clk, reset)
IF reset = ‘1’ THEN
q <= 0;
ELSE
IF clk’event AND clk = ‘1’ THEN
q <= d;
END IF;
END IF;
END bascule;
END bascule_d;
Hello World
-- En VHDL, une ligne de commentaires commence par deux "-"
-- Programme d'exemple VHDL: hello.vhd
-- La directive "use" permet d'inclure des packages externes
use std.textio.all;
-- le concept d'entity (entite) est ce qui sera exposé
-- au monde extérieur. Ici ne sont décrites que les entrées/sorties
ENTITY hello IS
-- aucune description ici
END ENTITY hello;
-- on peut implémenter une entity de multiples manières, en utilisant
-- les architectures. C'est pourquoi il convient de nommer chaque
-- implémentation.
ARCHITECTURE Wiki OF hello IS
CONSTANT message : string := "hello world";
-- bien que le VHDL le permette, une telle chaîne de caractères n'a aucun sens
-- en implémentation matérielle.
BEGIN
-- un process peut être considéré comme une description séquentielle d'un
-- comportement.
PROCESS
variable L: line;
BEGIN
write(L, message);
writeline(output, L);
wait;
END PROCESS;
END ARCHITECTURE Wiki;
ja:VHDL
Catégorie:Sigle
Sigles à ajouter:
APELL
APM
ASLM
ATAPI
BLOB
CADD
CAEM
CASE
CASM
CAV
CDV
CEAO
CESAP
CFPI
CGIAR
CIEM
CILE
CILSS
CIRC
CISL
CIUS
CLV
CMA
CMY
COFF
CPP
CTS
CUI
DAA
DAC
DBCS
DCE
DDC
DDV
DDX
DEK
DIB
DLU
DMI
DPMI
DSR
DSTN
DTE
EAO
ECHO
EFT
EFTPOS
EIA
EMS
ENG
EOF
EOT
EPOS
EPP
FDD
FNUAP
FTAM
GDI
GEMS
GEMS/EAU
GESAMP
GIGO
GIPME
GPF
GRID
HD
HD
HGC
HMA
HPGL
IAB
IC
IMB
INFOTERRA
IPX/SPX
IRG
IRIS
ISAM
KB
LASER
LAWN
LCID
LIFO
LQ
LRPC
LSI
LUG
MAPI
MARPOL
MBCS
MCGA
MI
MSI
NFS/NIS
NMI
NUI
OCX
ODAPI
ODL
OLE
OMF
OSF
PDL
PDN
PgDn
PgUp
PIGB
PIN
PIO
PIO
POST
PROLOG
PROM
QIC
R/W
RFX
RISCPT
RLL
ROC
SAA
SAM
SBC
SDLC
SDRAM
SEH
SFT
SGRAM
SLSI
SMART
SMO
SNESUP
TAPI
TTF
UART
UCT
UDT
UI
ULSI
UMB
UNDRO
VBX
VCR
VDT
VDU
VMM
WMF
WORM
WOSA
WP
WPS
XMS
Catégorie:Abréviation
Catégorie:Langage informatique ja:Category:コンピュータ言語
Catégorie:Développement logiciel
Logique ko:논리학 ms:Logik ja:論理学 simple:Logic th:ตรรกศาสตร์
Catégorie:Philosophie Catégorie:Algorithmique Catégorie:Sciences cognitives Catégorie:Logique Catégorie:Rhétorique
La logique est initialement l'une des grandes disciplines de la philosophie, elle est devenue au une partie des mathématiques. Aujourd'hui, elle est en outre partie intégrante de : l'ingénierie informatique, la linguistique, la psychologie cognitive et, la communication sociale.
Généralités
La logique est l'étude de la nature, des concepts, de la vérité, des jugements et, de la validité des raisonnements. Elle se déploie ainsi aujourd'hui selon les quatre grands axes que sont :
- la théorie des ensembles,
- la théorie des modèles,
- la théorie de la démonstration,
- la théorie de la calculabilité.
Cette classification en quatre grands axes, généralement admise, est celle proposée par J. Barwise dans son ouvrage [http://www.elsevier.com/wps/find/bookdescription.cws_home/501736/description Handbook of Mathematical Logic]. Depuis, un cinquième grand axe semble se dessiner avec les travaux sur la théorie des types.
Disciplines de la logique
- Les syllogismes aristotéliciens
- Le calcul des propositions
- Le calcul des prédicats
- La logique intuitionniste
- La logique classique
- Les logiques multivalentes :
- La logique trivalente
- La logique tétravalente
- Les logiques à plus de 4 valences
- Les logiques à une infinité de valences (cf. probabilités)
- Les logiques modales :
- La logique épistémique
- La logique déontique
- La logique temporelle
- Les paradoxes
- L'algorithme d'unification en logique
- La logique floue
Philosophie
Antiquité
La logique est à l'origine une réflexion sur l'accord du discours (logos) avec lui-même. On peut dire qu'elle est un effort de la pensée pour rendre sa propre expression non contradictoire. Par suite, elle est un outil (organon) assurant la cohérence de la reflexion. La philosophie se sert donc de la logique pour organiser son discours et lui assurer une pertinence concernant ses hypothèses sur le monde.
La cohérence d'un discours a deux aspects qui correspondent aux différents sens du concept de vérité :
- La cohérence interne du discours lui-même : c'est la logique dans son aspect purement formel.
- La cohérence externe : c'est la définition matérielle de la vérité : « adequatio rei et intellectus », l'accord du contenu avec la réalité.
Le premier type de cohérence peut se faire en vue du second, mais s'en détache aussi pour constituer un domaine conceptuel autonome.
En philosophie, la logique pose le problème des relations entre le langage et la pensée : la logique semble être en effet à la fois l'effet et la cause du discours. Elle découle du logos en philosophie (le sens du discours) ; mais, en mathématique (la forme), la cohérence formelle semble s'engendrer d'elle-même.
La logique a très tôt été utilisée contre elle-même, c'est-à-dire contre les conditions mêmes du discours : le sophiste Gorgias l'utilise dans son Traité du non-être afin de prouver qu'il n'y a pas d'ontologie possible : « ce n'est pas l'être qui est l'objet de nos pensées ». La vérité matérielle de la logique est ainsi ruinée. Le langage acquiert ainsi sa propre loi, qui est celle de la logique, indépendante de la réalité. Mais les sophistes ont été écartés de l'histoire de la philosophie (sophiste a pris un sens péjoratif), si bien que la logique, dans la compréhension qu'on en a eu par exemple au Moyen Âge, est restée soumise à la pensée de l'être.
Kant, quant à lui, définit la logique comme une science qui expose dans le détail et prouve de manière stricte, uniquement les règles formelles de toute pensée. L'œuvre d'Aristote appelée l'Organon, où figure notamment l'étude du syllogisme, fut longtemps considérée comme le manuel de référence sur ce sujet. Mais la naissance d'une logique formelle non prédicative, à partir du , a quelque peu changé cet état de fait. Ainsi Frege remplace-t-il l'analyse prédicative par une distinction entre fonction et concept.
La logique a pour origine la lutte du vrai et du faux, de l'être et du non-être. Il a fallu attendre le début du pour que l'évidence de cette bivalence soit remise en question : des logiques trivalentes, ajoutant une valeur indéterminée, sont alors inventées (Kleene, Lukasiewicz, Bochvar). Mais celles-ci, se généralisant en logiques polyvalentes, ne remettaient néanmoins pas en question l'appartenance stricte d'une proposition à l'une (et une seule) de ces valeurs. C'est à partir de 1965 que Zadeh élabore une logique floue (fuzzy logic) dans laquelle une proposition est vraie selon un certain degré de probabilité (degré auquel on assigne lui-même un degré de probabilité). Loin du monde tranché de la certitude classique, un monde flou se révèle dans toute sa complexité.
Mathématiques
Dans ce dernier cas, sa position est un peu particulière d'un point de vue épistémologique, puisqu'elle est à la fois un outil de définition des mathématiques, et une branche de ces mêmes mathématiques, donc un objet.
Notions élémentaires de logique formelle
Un langage logique est défini par une syntaxe, c'est-à-dire un système de symboles et de règles pour les combiner sous formes de formules. De plus, une sémantique est associée au langage. Elle permet de l'interpréter, c'est-à-dire d'attacher à ces formules ainsi qu'aux
symboles une signification. Un système de preuve nous permet également
de calculer la signification des formules en construisant des
démonstrations.
La logique comprend classiquement :
- la logique des propositions,
- la logique des prédicats.
Considérons un langage logique. Ce dernier est : soit un langage
propositionnel, on parle alors de logique des propositions ; soit un
langage du premier ordre, on parle alors de logique des prédicats.
Bien évidemment, ces langages logiques diffèrent de par leur syntaxe.
Considérons leurs syntaxes respectives.
La syntaxe de la logique des propositions est fondée sur des
variables de propositions appelées également atomes que nous notons
avec des lettres minuscules (p, q, r, s, etc.). Ces
symboles représentent des propriétés qui sont, soit vraies, soit fausses. Ces variables sont combinées au moyen de connecteurs logiques qui sont :
# le connecteur binaire disjonctif (ou),
# le connecteur binaire conjonctif (et),
# le connecteur binaire de l'implication (->),
# le connecteur monadique de la négation (non).
Ces variables forment alors des formules appelées également propositions. Nous les notons par des lettres grecques minuscules (phi, psi, thêta, etc.).
La syntaxe de la logique d'ordre un, contrairement à celle
d'ordre zéro, considère d'une part les termes qui représentent les
objets étudiés, et d'autre part les formules qui sont des propriétés
sur ces objets. Dans la suite de ce manuscript, nous noterons V l'ensemble des variables (x,y,z…), F l'ensemble des symboles de fonctions (f,g…) et P l'ensemble des symboles de prédicats (P,Q…). On dispose également d'une application dite d'arité m.
Qu'en est-il de la signification d'une formule? C'est l'objet de
la sémantique. Là encore, elle diffère selon le langage envisagé.
En logique propositionnelle, une formule est soit vraie soit fausse. Plus formellement, l'ensemble des valeurs de vérité est un ensemble B de deux booléens : le vrai (1) et le faux (0). La signification des
booléens est définie à l'aide de fonctions de booléens vers des
booléens. Ces fonctions peuvent être représentées sous la forme de table de vérité.
La signification d'une formule dépend donc de la valeur de
vérité de ses variables. On parle d'interprétation ou d'affectation.
Comme dans le cas propositionnel, la sémantique de la logique du
premier ordre est décrite par une interprétation. Cependant le langage
de la logique du premier ordre est plus riche. En conséquence, de
nouvelles définitions sont nécessaires. Contrairement au langage
propositionnel, les interprétations et les affectations sont des
objets différents. Une affectation donne une valeur à chaque variable,
alors qu'une interprétation décrit le domaine des valeurs et la
sémantique des symboles de fonctions et de prédicats.
Nous avons doté la logique propositionnelle ainsi que la logique du premier ordre d'une sémantique.
Toutefois, il est difficile, au sens de la complexité algorithmique,
de l'utiliser pour décider si une formule est satisfiable (ou non) voire valide (ou non). Il faudrait pour cela énumérer toutes les interprétations. Leur nombre est exponentiel. Une alternative consiste à examiner les preuves bien formées, et à considérer leurs conclusions. Pour cela nous utilisons un système de preuve.
Un système de preuve est un couple (A,R), où A est un ensemble de formules appelées axiomes et R un ensemble de règles d'inférence, c'est-à-dire de relations entre des ensembles de formules (les prémisses) et des formules (la conclusion).
On appelle dérivation à partir d'un ensemble d'hypothèses
une suite non vide de formules qui sont : soit des axiomes, soit des formules déduites des formules précédentes de la suite.
Une preuve d'une formule phi à partir d'un ensemble de formules Gamma est une dérivation à partir de Gamma dont la dernière formule est phi.
Quantification
On introduit essentiellement deux quantificateurs en logique classique :
- (il existe au moins un), appelé quantificateur existentiel.
- (pour tout), appelé quantificateur universel.
Un troisième quantificateur, qui peut être défini à partir des quantificateurs précédents, est souvent introduit :
- ! (il existe un seul).
Grâce à la négation, les quantificateurs existentiels et universels jouent des rôles duals et donc, en logique classique, on peut fonder le calcul des prédicats sur un seul quatificateur.
Automatisme et Informatique
Dans ces deux domaines la logique est omniprésente et représente le fondement de ces diciplines.
- En automatisme, afin de pouvoir ordonner des processus en fonction de conditions précises, un fonctionnement logique est nécessaire. À l'aide d'opérateurs logiques simples et combinés, la logique combinatoire permet de déterminer des conditions et des prises de décisions automatisées. Autrefois, les automates contenaient de multiples relais assurant ces fonctions. Aujourd'hui, ce sont en fait des micro-ordinateurs spécialisés disposant d'une partie d'électronique de puissance pour interagir avec son environnement et, une interface homme/machine adaptée.
- En informatique :
- dans la partie électronique numérique, les mêmes opérateurs logiques sont utilisés en grand nombres ;
- dans la partie logiciel, les opérateurs de logique booléenne des langages de programmation sont très utilisés, comme système de comparaison et de prise de décision ;
- au niveau des langages de programmation, il existe des relations profondes entre la logique intuitionniste et le lambda-calcul (et donc les langages fonctionnels). La correspondance de Curry-Howard propose de voir les propositions comme des types, et une preuve d'une proposition P comme un terme ayant le type P. On obtient alors des règles identiques à celles utilisées pour le typage des termes du lambda-calcul. Cette approche est utilisée dans un certain nombre de logiciels d'aide à la preuve, comme Coq ou [http://www.cl.cam.ac.uk/Research/HVG/HOL/ HOL]. Enfin, l'ajout de continuations au langage permet de retrouver la logique classique, le type de ces nouveaux termes pouvant être rapproché du tiers-exclus.
- Afin de spécifier un système (protocole, logiciel...), notamment en model-checking, on fait appel aux logiques temporelles.
Voir aussi
- Tractatus logico-philosophicus
- Fonction logique
CombinatoireLa combinatoire, appelée aussi analyse combinatoire, est une branche des mathématiques qui étudie les configurations de collections finies d'objets ou les combinaisons d'ensembles finis, et les dénombrements.
En particulier la combinatoire s'intéresse aux méthodes permettant de compter les éléments dans des ensembles finis (combinatoire énumérative) et à la recherche des optima dans les configurations ainsi qu'à leur existence (combinatoire extrémale).
La combinatoire débute au , en même temps que le calcul des probabilités. Et initialement, cette partie des mathématiques avait pour objet la résolution des problèmes de dénombrement, provenant de l'étude des jeux de hasard. Elle se développa de façon significative sous l'influence du calcul des probabilités. Plus tard, elle se lia aux théories des nombres et des graphes.
Donnons quelques exemples de situations donnant lieu à des questions d'analyse combinatoire :
- les rangements de livres sur un étagère
- les dispositions de personnes autour d'une table ronde
- les tirages avec remise d'un certain nombre de boules numérotées dans une urne
- les placements de jetons sur un damier.
Terminons par une question combinatoire :
Quel est le nombre d'ordonnancements possibles des cartes d'un jeu 52 cartes ?
Ce nombre est égal à 52! (c'est-à-dire factorielle de cinquante deux). C'est le produit de tous les nombres entiers naturels non nuls inférieurs ou égaux à cinquante deux. Il peut sembler étonnant que ce nombre, environ 8,065817517094 .10 67, soit si grand. C'est un peu plus de 8 suivis de 67 zéros. Comparant ce nombre à quelques autres grands nombres, il est plus grand que le nombre d'Avogadro, égal à 6,022 10 23 (nombre d'atomes de carbone 12 dans 12 grammes de carbone).
Permutations (dispositions, ordonnancements)
Permutation (sans répétition) d'objets discernables
Comme exemple d'introduction, considérons le nombre de dispositions de six objets discernables dans six cases consécutives numérotées avec un et un seul objet par case. Chacun des objets peut être placé dans la première case, ce qui donne six possibilités d'occuper la première place. Une fois la première place occupée par l'un des objets, il reste encore cinq candidats pour la deuxième place, la deuxième place étant attribuée, il reste seulement quatre candidats pour la troisième place, et ainsi de suite. Pour l'avant dernière place, il ne reste plus que deux objets, et une fois l'un des deux placé, la dernière place doit être occupée par le dernier objet. Il y a ainsi 6 × 5 × 4 × 3 × 2 ou 6! = 720 possibilités de disposer six objets discernables. Le point d'exclamation signifie factorielle et se lit : factorielle de six.
Généralisation :
Nous allons voir que le nombre de dispositions de n éléments discernables est égal à : n !
Une disposition des objets d'un ensemble E de cardinal n, dans n cases avec un et un seul objet par case, ou un ordonnancement des éléments de E se représente par une bijection de dans E ou une permutation de E. Il est commode de représenter une telle bijection par un n-uplet (ou n-liste) d'éléments de E, (x1, x2, ..., xn).
Théorème : Il y a n! permutations (sans répétition) de n éléments.
En effet, pour former un n-uplet d'éléments de E, nous devons choisir un élément de E pour la première place du n-uplet et il y a n possibilités, il y a n - 1 choix possibles d'un élément de E pour la deuxième place, n - 2 pour la troisième etc. Il n'y a plus qu'un seul choix d'élément pour la dernière place. Donc au total n × (n-1) × (n-2) × ... × 2 × 1 permutations.
Cette propriété se démontre par récurrence sur n.
Permutation avec répétition d'objets discernables
Pour déterminer le nombre des dispositions possibles d'objets de plusieurs classes et mutuellement indiscernables dans chaque classe, il est utile de considérer le nombre de dispositions possibles de ces objets en les supposant tous discernables, et ensuite de trouver combien de ces dispositions sont indiscernables. Le nombre des dispositions possibles de ces objets est égal au nombre de dispositions possibles des objets considérés comme discernables divisé par le nombre des dispositions indiscernables.
Par exemple, si nous devons déterminer le nombre total de dispositions d'objets dont deux sont d'une première classe, trois d'une deuxième classe et cinq d'une troisième classe, alors nous calculons le nombre total de dispositions de ces objets considérés comme indiscernables ce qui donne (2 + 3 + 5)! soit 3 628 800 dispositions possibles. Mais certaines dispositions restent inchangées lorsque les objets indiscernables d'une même classe sont échangés mutuellement, et il y a 2! × 3! × 5! soit 1 440 façons de permuter les objets de chacune de ces classes. Nous obtenons au total 3 628 800 ÷ 1 440 égal à 2 520 dispositions différentes. Il s'agit aussi du nombre de permutations avec répétition de 10 éléments avec 2, 3 et 5 répétitions.
Généralisation :
Le nombre de permutations de n éléments, répartis dans k classes dont n1 sont de classe 1, n2 sont de classe 2, ..., nk sont de classe k, indiscernables dans chaque classe, ou le nombre de permutations de n éléments avec n1, n2, ..., nk répétitions, est égal à : .
Arrangements (choix ordonné)
Arrangements sans répétition
Nous disposons de n objets discernables et nous voulons en placer k, en tenant compte de l'ordre, dans k cases numérotées de 1 à k avec un et un seul objet par case. Le nombre de dispositions est alors égal au nombre de k-listes distinctes formées à partir de ces objets.
Au lieu de constituer un n-uplet, à partir de n objets discernables, nous formons ici des k-uplets avec k≤n, (x1, x2, ..., xk) à partir de ces n objets tels que pour i≠j, on ait xi≠xj. Un tel k-uplet s'appelle un arrangement sans répétition de n éléments pris k à k.
Théorème : Le nombre d'arrangement sans répétition de n éléments pris k à k est égal à (égal à si k≤n et 0 sinon)
En effet, Il y a n choix possibles de l'objet qui occupe la première place du k-uplet, n-1 choix pour l'objet de la seconde place, pour la kème, il ne reste plus que n-(k-1) objets et donc n-k+1 choix possibles. Le produit n(n-1)...(n-k+1) s'écrit bien sous la forme : .
Le cas n = k nous oblige alors à diviser par (0)! que l'on définit comme valant 1
Arrangements avec répétition
Lorsque nous voulons placer des objets pris parmi n objets discernables dans k emplacements en tenant compte de l'ordre, ces objets pouvant apparaître plusieurs fois, le nombre de dispositions est alors égal au nombre de k-uplets formés à partir de ces n objets.
Un tel k-uplet, avec k≤n, (x1, x2, ..., xk) formé à partir de ces n objets s'appelle un arrangement avec répétition de n éléments pris k à k.
Comme chaque emplacement peut être occupé indifféremment par l'un quelconque de ces n objets, il y en a au total nk.
Quand nous tirons 11 fois l'un de 3 numéros en tenant compte de l'ordre d'apparition nous obtenons au total 311 = 177 147 tirages différents. Comme exemple tiré de la génétique, nous pouvons donner le nombre total de codons de base (triplets formés de quatre codes) : 43= 64.
Combinaisons (choix sans tenir compte de l'ordre)
Contrairement aux arrangements, les combinaisons sont des dispositions d'objets qui ne tiennent pas compte de l'ordre de placement de ces objets. Par exemple si a, b et c sont des boules tirées dans une urne, abc et acb correspondront au même tirage. Il y a donc ainsi, moins de combinaisons que d'arrangements.
Combinaison sans répétition
Si nous tirons sans remise, k objets parmi n objets discernables, et nous les disposons sans tenir compte de l'ordre d'apparition; nous pouvons représenter ces k objets par une partie à k éléments d'un ensemble à n éléments. Ce sont des combinaisons sans répétition de n éléments pris k à k.
Pour déterminer le nombre de ces dispositions, nous pouvons déterminer le nombre d'arrangements de k objets et diviser par le nombre de dispositions obtenues les unes à partir des autres par une permutation.
Il y a .
Au jeu du loto, nous devons choisir parmi 49 numéros, 6 numéros différents sans tenir compte de l'ordre, et il y a 13 983 816 choix possibles.
Combinaison avec répétition
Si nous tirons avec remise k objets parmi n objets discernables, et nous les disposons sans tenir compte de l'ordre d'apparition; ces objets peuvent apparaître plusieurs fois et nous ne pouvons les représenter ni avec une partie à k éléments, ni avec un k-uplet puisque leur ordre de placement n'intervient pas. Il est cependant possible de représenter de telles dispositions avec des applications appelées combinaisons avec répétition.
Le nombre de combinaisons avec répétition de n éléments pris k à k est égal à : .
Donnons l'exemple du jeu de domino. Les pièces sont fabriquées en disposant côte à côte deux éléments de l'ensemble . Si nous retournons un domino, nous changeons l'ordre des deux éléments, mais le domino reste identique. Nous avons une combinaison avec répétition de 7 éléments pris 2 à 2, et au total il y a : dominos dans un jeu.
Fonction de comptage
Soit Ϭn l'ensemble des permutations de . Nous pouvons considérer la fonction qui à n associe le nombre de permutations. Cette fonction est la fonction factorielle et sert à compter les permutations.
Étant donnée une collection infinie d'ensembles finis indexée par l'ensemble des entiers naturels, une fonction de comptage est une fonction qui à un entier n associe le nombre d'éléments de En. Une fonction de comptage f permet donc de compter les objets de En pour n'importe quel n. Les éléments de En ont habituellement une description combinatoire relativement simple et une structure additionnelle, permettant souvent de déterminer f.
Certaines fonctions de comptage, sont données par des formules « closées », et peuvent être exprimées comme composée de fonctions élémentaires telles que des factorielles, puissances, et ainsi de suite.
Cette approche peut ne pas être entièrement satisfaisante (ou pratique) pour certains problèmes combinatoires. Par exemple, soit f(n) le nombre de sous-ensembles distincts de nombres entiers dans l'intervalle [1, n] qui ne contiennent pas deux nombres entiers consécutifs; ainsi par exemple, avec n = 4, nous obtenons ∅, , , , , , , , et donc f(4) = 8. Il s'avère que f(n) est le nème nombre de Fibonacci, qui peut être exprimé sous la forme « fermée » suivante :
:
où φ = (1 + √5)/2, est le nombre d'or. Cependant, étant donné que nous considérons des ensembles de nombres entiers, la présence du √5 dans le résultat peut être considérée comme inesthétique d'un point de vue combinatoire. Aussi f(n) peut-il être exprimé par une relation de récurrence :
:f(n) = f(n - 1) + f (n - 2)
ce qui peut être plus satisfaisant (d'un point de vue purement combinatoire), puisque la relation montre plus clairement comment le résultat a été trouvé.
Dans certains cas, un équivalent asymptotique g de f,
:f(n)~g(n) quand n tend vers l'infini
où g est une fonction « familière », permet d'obtenir une bonne approximation de f. Une fonction asymptotique simple peut être préférable à une formule « closée » extrêmement compliquée et qui informe peu sur le comportement du nombre d'objets. Dans l'exemple ci-dessus, un équivalent asymptotique serait:
:
quand n devient grand.
Une autre approche est celle des séries entières. f(n) peut être exprimé par une série entière formelle, appelée fonction génératrice de f, qui peut être le plus couramment:
- la fonction génératrice ordinaire
:
- ou la fonction génératrice exponentielle
:
les sommes étant prises pour n⩾0. Une fois déterminée, la fonction génératrice peut permettre d'obtenir toutes les informations fournies par les approches précédentes. En outre, les diverses opérations usuelles comme l'addition, la multiplication, la dérivation, etc., ont une signification combinatoire; et ceci permet de prolonger des résultats d'un problème combinatoire afin de résoudre d'autres problèmes.
Quelques résultats
Un exemple d'un théorème surprenant est dû à Franck P. Ramsey : Supposez que 6 personnes se retrouvent ensembles lors d'une soirée. Deux d'entre elles se connaissent déjà, certaines autres ne se sont jamais vues. Il est toujours possible de trouver au moins 3 personnes parmi les 6 qui se connaissent mutuellement ou qui sont toutes étrangères les unes aux autres.
La démonstration peut se faire facilement par l'absurde. Supposons que parmi ces 6 personnes, il soit impossible d'en trouver au moins 3 qui se connaissent et qu'il soit impossible d'en trouver au moins 3 qui ne se connaissent pas. Considérons alors une personne quelconque présente à cette soirée; appelons cette personne A. Parmi les 5 personnes restantes, il doit y en avoir au moins 3 qui ou bien connaissent toutes A ou ne connaissent pas du tout A. Sans perte de généralité, supposons par exemple que trois telles personnes connaissent toutes A. Parmi ces trois personnes, au moins deux d'entre elles se connaissent nécessairement (sinon nous aurions 3 personnes qui ne se connaîtraient pas du tout). Mais alors ces deux dernières connaissent également A, ainsi nous avons trouvé 3 personnes qui se connaissent mutuellement. (c'est un cas particulier du théorème de Ramsey)
L'idée de trouver un ordre dans des configurations aléatoires mène à la théorie de Ramsey. Essentiellement, cette théorie indique que n'importe quelle configuration suffisamment grande contiendra au moins un autre type de configuration.
Articles connexes
- Mathématiques discrètes
- le principe d'inclusion-exclusion de Moivre
- [http://cepa.newschool.edu/het/profiles/ramsey.htm Frank P. Ramsey]
Référence
- [http://www-math.mit.edu/~rstan/ec/ Enumerative Combinatorics, Volumes 1 and 2], Richard P. Stanley, Cambridge University Press, 1997 and 1999, ISBN 0-521-55309-1N (en anglais)
Catégorie:Mathématiques
Catégorie:Analyse combinatoire
th:คณิตศาสตร์เชิงการจัด
ASIC
Un ASIC (pour Application Specific Integrated Circuit) est un circuit intégré (micro-électronique) spécialisé. En général, il regroupe un grand nombre de fonctionnalités
uniques et/ou sur mesure.
L'interêt de l'intégration est de réduire les coûts de production et d'augmenter la fiabilité.
Avantage pour le maitre d'œuvre : un contrôle total du produit et coût de production réduit.
Inconvénients: coût de développement élevé voire très élevé (notamment pour la fabrication des masques de gravure) et un délai de développement de plusieurs mois.
Le développement se faisait (dans les années 1970-1980) en dessinant les motifs des circuits, servant à fabriquer les masques par un procédé photographique. Ajourd'hui, on développe un circuit électronique en utilisant un langage de description (VHDL, Verilog ou encore System C), qui est ensuite synthétisé pour produire automatiquement le dessin du circuit. On utilise le mêmes langages de description pour réaliser des prototypes et des pré-séries avec des composants logiques programmables ou FPGA.
En raison du coût initial important, la production d'ASIC est plutôt recommandée pour des gros volumes (>100 k / an), sauf lorsque le sur-mesure est indispensable.
On qualifie les gros ASICs de SoC (system-on-chip, ou système sur silicium), lorsqu'ils intègrent processeur(s), interfaces, mémoires, etc. , totalisant plusieurs millions de portes logiques, et qu'ils assurent la quasi-totalité des fonctions de la carte.
Voir aussi
- FPGA
- ASSP
- Processeur softcore
ASIC
ja:ASIC
Field-Programmable Gate ArrayUn circuit logique programmable, ou réseau logique programmable, est un circuit intégré logique qui peut être reprogrammé après sa fabrication.
Il est composé de nombreuses cellules logiques élémentaires librement assemblables.
Ce type de composant électronique est communément nommé par les sigles anglais:
- FPGA (field-programmable gate array, réseau de portes programmables in-situ),
- PLD (programmable logic device, circuit logique programmable),
- EPLD (electrically erasable programmable logic device, circuit logique programmable et effaçable électriquement),
- CPLD (complex programmable logic device, circuit logique programmable complexe),
- PAL (programmable array logic, réseau logique programmable),
- PLA (programmable logic array, réseau logique programmable),
- etc.
Bien que fondamentalement synonymes, ces termes ne sont généralement pas interchangeables dans le vocabulaire commercial des fabricants: FPGA désigne plutôt des composants à technologie RAM, EPLD des composants à technologie FLASH, PAL des composants à technologie fusible (voir § procédes technologiques).
Architecture matérielle
Les réseaux logiques programmables sont des circuits composés de nombreuses cellules logiques élémentaires librement assemblables.
Celles-ci sont connectées de manière définitive ou réversible par programmation, afin de réaliser la ou les fonctions numérique voulue. L'intérêt étant qu'une même puce peut-être utilisée dans de nombreux systèmes électroniques différents.
Certains modèles peuvent aussi comporter : de la mémoire d'usage général, des blocs "DSP" câblés, des boucles à verrouilage de phase pour la génération d'horloge.
Applications
Les FPGA sont utilisés dans diverses applications nécessitant de l'électronique numérique (télécommunications, aéronautique, transports...). Ils sont également utilisés pour du prototypage d'ASIC.
Les FPGA sont généralement plus lents que leur équivalent en ASIC (Application Specific Integrated Circuit) et consomment davantage d'énergie. Cependant, ils ont plusieurs avantages : délai de mise sur le marché, temps de développement plus court et coût inférieur pour de petites séries (moins de 10 000 unités). Il est parfois possible de transformer directement un FPGA en une version ASIC plus rapide et consommant moins.
Plusieurs FPGA modernes possèdent la possibilité d'être reconfigurés (on parle de configuration lorsqu'il s'agit de programmation du matériel) partiellement à la volée. Ceci permet d'obtenir des systèmes reconfigurables - par exemple une unité centrale dont les instructions changent dynamiquement en fonction des besoins.
Les FPGA modernes sont assez puissants pour être configurés pour héberger un cœur de processeur ou un DSP, afin d'exécuter un logiciel.
Conception du schéma logique
Afin de pouvoir finaliser un FPGA, il est nécessaire d'utiliser un langage de description du matériel (HDL, pour Hardware Description Language) ou bien un outil de saisie graphique. Après compilation de cette description, on obtient un fichier de configuration pour le FPGA choisi. VHDL et Verilog sont les deux langages de description les plus répandus.
Procédes technologiques
Les procédés technologiques de base pour les composants programmables sont les suivants :
- SRAM - (Static Random Access Memory). Programmables à volonté et in-situ. Habituellement en technologie CMOS.
- EPROM (UVPROM) - (Electrically Programmable Read-Only Memory). Peuvent être effacés (et reprogrammés) par exposition aux rayons ultra-violets. Technologie CMOS.
- EEPROM - (Electrically Eraseable Programmable Read-Only Memory). Peuvent être effacés et reprogrammés à volonté. Quelques-uns peuvent être programmés in-situ (souvent par une connexion JTAG). Technologie CMOS.
- Flash - (Flash-erase EPROM). Mêmes propriétés que EEPROM mais avec une densité supérieure (donc avec un coût inférieur pour une complexité donnée). Technologie CMOS.
- Fusible - Programmables une seule fois. Technologie bipolaire.
- Anti-fusible - Ne sont programmables qu'une seule fois. Technologie CMOS.
Dans le cas des technologies à mémoires (SRAM, EPROM, flash), la mémoire est située à côté du circuit logique proprement dit et chacun de ses bits pilote un interrupteur de configuration du réseau logique. Dans le cas des technologies à fusibles, ceux-ci sont directement dans le réseau logique et font à la fois la fonction mémoire et interrupteur.
Les FPGA haut de gamme sont à la pointe de la technologie : les sauts technologiques, comme la finesse de gravure, sont souvent réalisés sur ces composants avant de passer aux microprocesseurs.
Fabricants
Parmi les fabriquants de tels circuits programmables, on trouve Xilinx, Altera, Lattice Semiconductor, Actel, Cypress, Atmel et QuickLogic.
Liens
- [http://www.tutorial-reports.com/computer-science/fpga/ Cours d'instruction de FPGA] Inclut l'information sur Logique-bloquent, conduisant, des types, écoulement de conception et programmabilité.
- [http://www.netinformations.com/Hardware/Programmable_Logic/ FAQ PLD et FPGA]
- [http://andraka.com/whatisan.htm Les bases des FPGA par Ray Andraka]
- [http://www.fpga4fun.com Fpga4Fun : divers projets fpga]
- [http://www.opencores.org Open Cores : encore un site avec plusieurs projets fpga]
- vendeurs de FPGA :
- [http://www.xilinx.com/ Xilinx]
- [http://www.altera.com/ Altera]
- [http://www.latticesemi.com/ Lattice]
- [http://www.actel.com/ Actel]
- [http://www.cypress.com/cypress/prodgate/prog.html Cypress]
- [http://www.atmel.com/ Atmel]
- [http://www.quicklogic.com/ QuickLogic]
- [http://www.nallatech.com/ Nallatech]
- Applications
- [http://www.opencores.org/ Opencores:site de developement de hardware open-source en utilisant des FPGA]
- [http://www.gaisler.com/products/leon2/leon.html LEON2 processeur sparc open-source produit en utilisant des FPGA]
Catégorie:Composant actif
SimulateurUn simulateur est un outil ou appareil permettant de reproduire de façon virtuel le comportement d'un phénomene réel. Un simulateur représente sous des conditions de test un phénomène le plus proche possible de la réalité.
Un but majeur d'un simulateur est de substituer à une expérimentation réelle pouvant s'avérer lente et couteuse une simulation plus rapide et moins onéreuse.
Simulateur de vol
Simulation de composants électroniques
Un domaine industriel utilisant des outils de simulation est celui de
la conception de circuits électroniques. Un simulateur permet, par exemple, de vérifier la fonctionalite logique d'un circuit avant de poursuivre aux autres etapes suivantes de la conception.
Simule le comportement d'un circuit numérique.
- entrées du simulateur :
- circuits décrits dans un language de description materielle : Verilog, VHDL
- niveau de description : comportementale, RTL, portes, transistor.
- fonctionnement d'un simulateur numérique :
- testbench
- événements
Calcul du courant et de la tension aux noeuds d'un circuit analogue.
- entrées du simulateur :
- SPICE netlist
- fonctionement d'un simulateur numérique
Simulation de composants mixtes (voir Électronique mixte)
Catégorie:électronique
BasculeCatégorie:Logique Catégorie:Électronique
Une bascule est une structure logique de base appelée également registre ou fonction logique séquentielle. Il existe plusieurs types de bascules : les JK, les RS, les latchs, les bascules D (il en existe sûrement d'autres). Ceci permet de « mémoriser ». Les plus couramment utilisées sont les bascules D.
__TOC__
Bascule D
registre
- C'est une porte séquentielle permettant le stockage d'un bit. Ainsi, l'état de sa sortie dépend de ses entrées mais également de la valeur qu'elle contient.
- La bascule D la plus simple possède 2 entrées (entrée D et l'horloge) et une sortie Q. À chaque front (ici montant) d'horloge, Q recopie l'entrée D.
- Parfois, un signal reset existe afin de pouvoir initialiser la valeur initiale de la bascule lors de la mise sous tension.
- Elle peut être écrite avec une valeur binaire suivant l'état du signal d'horloge et de remise-à-zéro.
Table de vérité :
Bascule JK
horloge
- Pour J = K = 0, le signal d'horloge est sans effet, il y a conservation du dernier état logique pris par Q et /Q : il n'y a jamais de basculement.
- Pour J = K = 1, le système bascule à chaque front d'horloge.
- Pour J différent de K, la sortie Q recopie l'entrée J et la sortie /Q recopie l'entrée K à chaque front d'horloge.
Table de vérité :
Chronogramme :
Image:JK_FF_impulse_diagram.png
Bascule RS
Image:JK_FF_impulse_diagram.png
- Mise à 1 de S (Set) : la sortie Q passe à 1
- Mise à 1 de R (Reset) : la sortie Q passe à 0
- R = S = 0 : maintient de l'état précédent des sorties
- R et S ne peuvent pas être mis à 1 en même temps
Table de vérité :
ja:フリップフロップ
Registre
- Un registre en musique, les gammes accessibles à un instrument, les genres que préfère un chanteur ;
- Un registre de langue en linguistique, niveau d'usage d'un mot familier, courant ou soutenu ;
- Un registre littéraire ;
- En informatique :
- Un registre en matériel informatique, une case mémoire de plusieurs bits dans un microprocesseur (voir assembleur);
- La Base de registre de Windows
- Registre de noms de domaine, organisation qui gère un top-level domain
- Registre Internet régional ou regional Internet registry, organisation qui distribue les adresses IP
- Un registre en électronique, synonyme de bascule, une case mémoire d'un bit.
- Registre du commerce
- En France : Registre du commerce et des sociétés géré individuellement par les greffes de tribunaux, Registre national du commerce et des sociétés centralisé par l'Institut national de la propriété industrielle
- En Suisse : Registre du commerce (RC)
- Autres registres administratifs : registre des mariages, registres paroissiaux (voir généalogie, voir état civil en Suisse), registres des baptêmes et des sépultures (voir Histoire de l'état civil en France), registre pour les hypothèques, registre des prostitué(e)s (époque romaine : voir histoire de la prostitution; époque actuelle : voir prostitution), registre obituaire (voir Obituarophilie), registres du Parlement de Paris 1254-1318 (voir Olim) ....etc.
ASIC
Un ASIC (pour Application Specific Integrated Circuit) est un circuit intégré (micro-électronique) spécialisé. En général, il regroupe un grand nombre de fonctionnalités
uniques et/ou sur mesure.
L'interêt de l'intégration est de réduire les coûts de production et d'augmenter la fiabilité.
Avantage pour le maitre d'œuvre : un contrôle total du produit et coût de production réduit.
Inconvénients: coût de développement élevé voire très élevé (notamment pour la fabrication des masques de gravure) et un délai de développement de plusieurs mois.
Le développement se faisait (dans les années 1970-1980) en dessinant les motifs des circuits, servant à fabriquer les masques par un procédé photographique. Ajourd'hui, on développe un circuit électronique en utilisant un langage de description (VHDL, Verilog ou encore System C), qui est ensuite synthétisé pour produire automatiquement le dessin du circuit. On utilise le mêmes langages de description pour réaliser des prototypes et des pré-séries avec des composants logiques programmables ou FPGA.
En raison du coût initial important, la production d'ASIC est plutôt recommandée pour des gros volumes (>100 k / an), sauf lorsque le sur-mesure est indispensable.
On qualifie les gros ASICs de SoC (system-on-chip, ou système sur silicium), lorsqu'ils intègrent processeur(s), interfaces, mémoires, etc. , totalisant plusieurs millions de portes logiques, et qu'ils assurent la quasi-totalité des fonctions de la carte.
Voir aussi
- FPGA
- ASSP
- Processeur softcore
ASIC
ja:ASIC
Field-Programmable Gate ArrayUn circuit logique programmable, ou réseau logique programmable, est un circuit intégré logique qui peut être reprogrammé après sa fabrication.
Il est composé de nombreuses cellules logiques élémentaires librement assemblables.
Ce type de composant électronique est communément nommé par les sigles anglais:
- FPGA (field-programmable gate array, réseau de portes programmables in-situ),
- PLD (programmable logic device, circuit logique programmable),
- EPLD (electrically erasable programmable logic device, circuit logique programmable et effaçable électriquement),
- CPLD (complex programmable logic device, circuit logique programmable complexe),
- PAL (programmable array logic, réseau logique programmable),
- PLA (programmable logic array, réseau logique programmable),
- etc.
Bien que fondamentalement synonymes, ces termes ne sont généralement pas interchangeables dans le vocabulaire commercial des fabricants: FPGA désigne plutôt des composants à technologie RAM, EPLD des composants à technologie FLASH, PAL des composants à technologie fusible (voir § procédes technologiques).
Architecture matérielle
Les réseaux logiques programmables sont des circuits composés de nombreuses cellules logiques élémentaires librement assemblables.
Celles-ci sont connectées de manière définitive ou réversible par programmation, afin de réaliser la ou les fonctions numérique voulue. L'intérêt étant qu'une même puce peut-être utilisée dans de nombreux systèmes électroniques différents.
Certains modèles peuvent aussi comporter : de la mémoire d'usage général, des blocs "DSP" câblés, des boucles à verrouilage de phase pour la génération d'horloge.
Applications
Les FPGA sont utilisés dans diverses applications nécessitant de l'électronique numérique (télécommunications, aéronautique, transports...). Ils sont également utilisés pour du prototypage d'ASIC.
Les FPGA sont généralement plus lents que leur équivalent en ASIC (Application Specific Integrated Circuit) et consomment davantage d'énergie. Cependant, ils ont plusieurs avantages : délai de mise sur le marché, temps de développement plus court et coût inférieur pour de petites séries (moins de 10 000 unités). Il est parfois possible de transformer directement un FPGA en une version ASIC plus rapide et consommant moins.
Plusieurs FPGA modernes possèdent la possibilité d'être reconfigurés (on parle de configuration lorsqu'il s'agit de programmation du matériel) partiellement à la volée. Ceci permet d'obtenir des systèmes reconfigurables - par exemple une unité centrale dont les instructions changent dynamiquement en fonction des besoins.
Les FPGA modernes sont assez puissants pour être configurés pour héberger un cœur de processeur ou un DSP, afin d'exécuter un logiciel.
Conception du schéma logique
Afin de pouvoir finaliser un FPGA, il est nécessaire d'utiliser un langage de description du matériel (HDL, pour Hardware Description Language) ou bien un outil de saisie graphique. Après compilation de cette description, on obtient un fichier de configuration pour le FPGA choisi. VHDL et Verilog sont les deux langages de description les plus répandus.
Procédes technologiques
Les procédés technologiques de base pour les composants programmables sont les suivants :
- SRAM - (Static Random Access Memory). Programmables à volonté et in-situ. Habituellement en technologie CMOS.
- EPROM (UVPROM) - (Electrically Programmable Read-Only Memory). Peuvent être effacés (et reprogrammés) par exposition aux rayons ultra-violets. Technologie CMOS.
- EEPROM - (Electrically Eraseable Programmable Read-Only Memory). Peuvent être effacés et reprogrammés à volonté. Quelques-uns peuvent être programmés in-situ (souvent par une connexion JTAG). Technologie CMOS.
- Flash - (Flash-erase EPROM). Mêmes propriétés que EEPROM mais avec une densité supérieure (donc avec un coût inférieur pour une complexité donnée). Technologie CMOS.
- Fusible - Programmables une seule fois. Technologie bipolaire.
- Anti-fusible - Ne sont programmables qu'une seule fois. Technologie CMOS.
Dans le cas des technologies à mémoires (SRAM, EPROM, flash), la mémoire est située à côté du circuit logique proprement dit et chacun de ses bits pilote un interrupteur de configuration du réseau logique. Dans le cas des technologies à fusibles, ceux-ci sont directement dans le réseau logique et font à la fois la fonction mémoire et interrupteur.
Les FPGA haut de gamme sont à la pointe de la technologie : les sauts technologiques, comme la finesse de gravure, sont souvent réalisés sur ces composants avant de passer aux microprocesseurs.
Fabricants
Parmi les fabriquants de tels circuits programmables, on trouve Xilinx, Altera, Lattice Semiconductor, Actel, Cypress, Atmel et QuickLogic.
Liens
- [http://www.tutorial-reports.com/computer-science/fpga/ Cours d'instruction de FPGA] Inclut l'information sur Logique-bloquent, conduisant, des types, écoulement de conception et programmabilité.
- [http://www.netinformations.com/Hardware/Programmable_Logic/ FAQ PLD et FPGA]
- [http://andraka.com/whatisan.htm Les bases des FPGA par Ray Andraka]
- [http://www.fpga4fun.com Fpga4Fun : divers projets fpga]
- [http://www.opencores.org Open Cores : encore un site avec plusieurs projets fpga]
- vendeurs de FPGA :
- [http://www.xilinx.com/ Xilinx]
- [http://www.altera.com/ Altera]
- [http://www.latticesemi.com/ Lattice]
- [http://www.actel.com/ Actel]
- [http://www.cypress.com/cypress/prodgate/prog.html Cypress]
- [http://www.atmel.com/ Atmel]
- [http://www.quicklogic.com/ QuickLogic]
- [http://www.nallatech.com/ Nallatech]
- Applications
- [http://www.opencores.org/ Opencores:site de developement de hardware open-source en utilisant des FPGA]
- [http://www.gaisler.com/products/leon2/leon.html LEON2 processeur sparc open-source produit en utilisant des FPGA]
Catégorie:Composant actif
VerilogLe Verilog HDL (à ne pas confondre avec VHDL (Very high speed integrated circuits Hardware Description Language) qui représente une norme différente) est un langage de description de circuits logiques en électronique (le sigle anglais HDL -Hardware Description Language- signifie Langage de Description du 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é [http://www.cadence.com/ 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 :
- valider le comportement des circuits décrits (le résultat qu'ils délivrent est bien celui attendu) ;
- valider les performances de ces circuits (ils répondent dans un temps donné et les signaux qui parcourent les différents modules sont correctement synchronisés)
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
Catégorie:Langage informatique
ja:Verilog
Bit ko:비트 ja:ビット simple:Bit th:บิต
Le bit est une unité de mesure en informatique désignant la quantité élémentaire d'information représentée par un chiffre binaire. On en doit l'invention à John W. Tukey, et la popularisation à Claude Shannon.
Le mot bit est la contraction de l'anglais binary digit, qui signifie « chiffre binaire ». En anglais, bit a aussi le sens de « fragment » ou de « parcelle ».
Il est utile de signaler l'homophonie avec « byte » (octet en anglais), qui prononcé « à la française », peut prêter très souvent à confusion.
Un bit ne peut prendre que deux valeurs : 0 ou 1. Selon le contexte, numérique, logique (voir algèbre de Boole), ou électronique numérique, on les appelle « faux » et « vrai » ou « ouvert » et « fermé » :
On note que la valeur 0 est associée à « ouvert » en électronique, car dans cet état le courant ne passe pas (on parle d'interrupteur ouvert ou de circuit ouvert).
Le nombre de bits traités simultanément par un microprocesseur courant d'ordinateur a varié de 4 en 1973 à 64 en 2004. Le plus petit paquet traitable (ou adressable) est appelé byte. Aujourd'hui, une taille du byte de 8 bits, soit un octet, s'est imposée suite à la généralisation de l'échange de données et des télécommunications. Sur d'anciens processeurs, le byte était parfois de 6, 7 ou 9 bits. Stricto sensu, byte n'a donc pas toujours été synonyme d'octet. D'ailleurs, lorsqu'une norme technique anglophone désigne spécifiquement un paquet de 8 bits, elle utilise le mot anglais octet.
Lorsqu'un microprocesseur est conçu pour traiter simultanément plusieurs bytes, on appelle « mot » le paquet de bytes. Les tailles de mot les plus courantes sont de 8, 16, 32 et 64 bits. On parlera alors par exemple de « microprocesseur 64 bits ».
Voir aussi
Octet ~ Byte ~ Adressage mémoire ~ Microprocesseur ~ Informatique ~ Électronique numérique ~ Algèbre de Boole ~ Logique
Catégorie:Unité de mesure informatique
ImpédanceEn régime sinusoïdal de tension et de courant, on appelle impédance d'un dipôle la valeur obtenue en divisant la valeur efficace de la tension aux bornes de ce dipôle par la valeur efficace du courant qui la traverse. Elle est généralement notée Z.
:
- C'est une généralisation de la loi d'Ohm à tous les dipôles, résistifs ou non.
- L'impédance s'exprime en Ohm (Ω)
- L'impédance d'un dipôle résistif est égale à sa résistance.
- Pour la quasi-totalité des dipôles réels l'impédance est une fonction de la fréquence du régime sinusoïdal.
=Impédance des dipôles passifs linéaires idéaux=
On rappelle que :
:, étant la fréquence du régime sinusoïdal
- Il est très rare qu'un dipôle puisse être assimilé à une résistance idéale sur une vaste plage de fréquence. Il est souvent nécessaire de définir un domaine de validité de la relation ci-dessus.
=Impédance complexe=
En régime sinusoïdal, la valeur efficace de la somme de deux tensions n'est pas égale à la somme des valeurs efficaces de chacune des tensions (la loi des mailles ne s'applique pas aux valeurs efficaces).
Dans le cadre de la transformation complexe, afin de pouvoir calculer l'impédance des dipôles réels qui sont modélisés par un ensemble de dipôles linéaires idéaux, on définit l'impédance complexe du dipôle par la relation :
:
L'impédance complexe est donc un nombre complexe permettant de décrire le comportement du dipôle :
- Le module de l'impédance complexe est égal à l'impédance du dipôle.
- L'argument du nombre complexe correspond au déphasage de la tension au bornes du dipôle par rapport au courant qui le traverse.
Admittance complexe
Notée :, c'est l'inverse de l'impédance complexe :
:
Impédance et admittance complexes des dipôles passifs linéaires idéaux
Traditionnellement, on désigne par j le nombre complexe imaginaire pur de module 1 au lieu de i comme en mathématiques, afin d'éviter une éventuelle confusion avec l'intensité.
Résistance et réactance d'un dipôle quelconque
Une impédance complexe de module et d'argument peut aussi se mettre sous la forme :
:
On pose :
- résistance du dipôle (partie réelle de l'impédance complexe)
- réactance du dipôle (partie imaginaire de l'impédance complexe)
d'ou l'écriture :
:
Lois d'association des impédances complexes
Dipôles en série
L'impédance complexe équivalente à un ensemble de deux dipôles en série est égale à la somme des impédances complexes de chacun des dipôles :
:
Dipôles en parallèle
L'impédance complexe équivalente à un ensemble de deux dipôles en parallèle est égale à :
:
Il est en général plus simple d'utiliser alors les admittances complexes : l'admittance complexe équivalente à un ensemble de deux dipôles en parallèle est égale à la somme des admittances complexes de chacun des dipôles :
:
Et l'on retrouve bien le résultat mentionné ci-dessus.
Catégorie : Électricité
ja:インピーダンス
Norme
catégorie:Développement durable catégorie:Normalisation
Norme terme générique désignant un ensemble de spécifications décrivant un objet, un être, qui peut être virtuel ou non.
Individuelles
Par la volonté de certain décideurs, ou tout simplement de par son éducation et par le jeux de ses habitudes, l'être humain a tendance à édicter des normes précisant ce qui est normal et ce qui ne l'est pas. Ces normes varient fortement avec les époques, les individus et de manières plus générales les sociétés.
Juridique
Les normes dans le système juridique sont les lois et les codes.
Industrie
Les normes permettent de remplacer aisément un produit par un équivalent quand on rencontre une difficulté d'approvisionnement quelconque. De plus elles permettent une interopérabilité des systèmes et produits industriels entre eux. Elles sont donc devenues indispensables.
Pour essayer de fédérer l'industrie, des organismes publics ou privés, à but non lucratif en général, fondés et soutenus par un syndicat d'industriels concernés, réfléchissent et proposent des référentiels appelés normes ou recommandations.
Une norme peut être largement adoptée par l'industrie (exemples : IEEE 802.3 CSMA/CD Ethernet, IEEE 802.11 Wi-Fi, ISO 9002), ou être délaissée par celle-ci (exemple : norme OSI de l'ISO).
Un très grand effort de normalisation a été effectué dans le domaine industriel au . Charles Gide mentionne dans son Cours d'économie politique que de 1830 à 1895, le nombre de tailles de matelas, par exemple, est passé de plus de 80 à 14 seulement.
Une partie de la normalisation s'est effectuée en utilisant des séries de Renard :
- Charles Renard, officier du génie, spécialiste des aérostats (dirigeables, montgolfières) avait constaté en 1870 que l'armée utilisait 425 câbles de divers diamètres pour l'attache et la construction de ces appareils.
- Il calcula que 17 devaient suffire; les diamètres étant en progression géométrique qu'il s'agirait de définir par classes.
- Il créa alors les séries portant son nom : Ra5 (ou encore R5) - Ra10 - Ra20, etc.
- La série R5, par exemple, définit la progression géométrique de 1er terme uo = 1, de dernier terme u5 = 10. Sa raison est donc racine cinquième de 10. On obtient les termes de R5 en multipliant par 10 et en arrondissant à l'entier le plus proche : 10 16 25 40 63 100
- La série R10 intercale un terme moyen géométrique entre deux termes consécutifs de la suite R5. Sa raison est donc racine dixième de 10.
Exemple de norme : STEP
En règle générale, une norme n'est pas obligatoire, mais repose sur le bon vouloir du fabriquant.
Voir aussi
- Normes et standards industriels
- Interopérabilité
- Recommandation
- Organisme de normalisation
Mathématiques
- Norme (mathématiques)
Électronique analogiqueElectronique analogique
L' électronique analogique intègre tous les systèmes électroniques qui fonctionnent avec des états électriques variables :
- En tension dans les limites fixées par les alimentations et les contraintes technologiques.
- En fréquence : continu, BF ou basse fréquence, HF ou haute fréquence, VHF, UHF
On qualifie d'analogique un système électronique qui met en jeu des courants et tensions électriques variants dans des limites fixées, mais, contrairement à l'électronique numérique, sans palliers ni niveaux prédéfinis. Ce type de système électronique est le plus ancien.
Actuellement, comme la transmission de signal est sensible aux parasites qui tendent à se superposer à tous courants électriques et électroniques, le signal est transmis, de préférence, sous forme numérique (après avoir été numérisé). À l'arrivé, il sera retraduit sous forme analogique.
Avec ce type d'électronique on traite les signaux audio, vidéo et radio.
Voir aussi
Circuit en série
Parallèle
- En mathématiques, des droites ou des plans sont parallèles lorsqu'ils n'ont pas de point d'intersection ou si elles sont confondues.
- En géographie, un parallèle est une droite imaginaire sur la surface de la Terre, parallèle à l'équateur et correspondant à une latitude.
- Le calcul parallèle, en informatique, est l'exécution simultanée d'une tâche répétitive sur de multiples processeurs formant un seul système informatique, il permet d'obtenir des résultats plus rapide.
- Port parallèle, en informatique, est un branchement utilisé pour transmettre des informations à un périphérique, tel une imprimante, un scanner...
- Univers parallèles.
- En électricité, un circuit en parallèle est un circuit électrique sur lequel les tensions s'additionnent, en opposition au circuit en série.
ja:平行 Dragon (disambiguation)
A dragon is a mythological creature, typically depicted as a large and powerful serpent or other reptile, with magical or spiritual qualities.
Overview
The various figures now called dragons most likely have no single origin, but spontaneously came to be in several different cultures around the world, based loosely on the appearance of a snake and possibly fossilized dinosaur remains.
Chinese dragons (among others) are generally seen as benevolent, whereas European dragons are usually malevolent. However, malevolent dragons are not restricted to Europe and also occur in Persian mythology (see Azi Dahaka) and other cultures.
Malevolent dragons are prominent figures in Christian belief. In Revelation 12:3, an enormous red dragon with seven heads is described, whose tail sweeps one third of the stars from heaven down to earth (held to be symbolic of the fall of the angels). In Revelation 12:9, Satan is identified as this "great red dragon", who was cast down to earth along with his angels.
The biblical dragon carries over thirty possible references, with the fire-breathing leviathan described in Job 41. Strong's Hebrew 03882: [http://www.studylight.org/lex/heb/view.cgi?number=03882], 08568, 08577, and Greek 1404.
In iconography, some Christian Saints are depicted in the act of killing a dragon: for instance, Saint George at the coat of arms of Moscow, or, in Italy, Saint Mercurialis, who was the first bishop of the city of Forlì. In the Book of Job Chapter 41, the sea monster Leviathan, which has some dragonlike characteristics, is described as God talks about the "king of beasts" that lived upon the Earth at a former time. God fed Leviathan to Israel while they wandered in the wilderness for forty years (Psalm 74:14). Leviathan, by Ivan Bilibin.]]
In medieval symbolism, dragons were often symbolic of apostasy and treachery, but also of anger and envy, and eventfully symbolises great calamity. Several heads were symbolic of decadence and oppression, and also of heresy. But they also served as symbols for independence, leadership and strength. Colours often determined what symbolism a dragon carried.
Dragons are often held to have major spiritual significance in various religions and cultures around the world. In many oriental cultures dragons were, and in some cultures still are, revered as representative of the primal forces of nature and the universe.
Some believe that the dragon may have had a real-life counterpart from which the legends around the world arose — typically dinosaurs are mentioned as a possibility — but there is no evidence to support this claim. Another less common claim is that they are based upon some sort of flying machines possessed by some ancient, unknown culture. Both of these hypotheses are pseudoscience.
Dragons are very popular in video games today, especially role-playing games, and are typically used as very powerful bosses and villains.
The word "dragon" should not be confused with dragoon (infantry that moves around by horse, yet still fight as foot soldiers). However, numerous fantasy settings (such as the Final Fantasy games) make varying degrees of association between dragons and the dragoon character class (such as in the helmet of a dragoon-class character).
Dragons of myth and folkore
- Asian dragon
- Chinese dragon
- Indian dragon
- Japanese dragon
- Korean dragon
- Persian dragon
- European dragon
- Celtic dragon
- Egyptian dragon
- Finnish dragon
- French dragon
- Greek dragon
- Norse dragon
- Polish dragon
- Serbian dragon
- Slavic dragon
- Romanian dragons (Zmeu and Balaur)
- Tatar dragon
- Meso-American Dragon
- South American dragon
- Frost Dragon
- wyvern dragon
- marsupial dragon
- lindworm dragon
- ampithere dragon
- Norwegian Ridgeback dragon
- Chinese Fireball dragon
- Chinese lung dragon
- Tibetan dragon
Living things named after ancient dragons
- Komodo Dragon (Varanus komodoensis), a large lizard (a reptile)
- Some small species of lizards in Australia, in the family Agamidae
- Dragon trees (Dracaena), the resin is known as dragon's blood once believed to be a powerful item of medieval magic and alchemy
- The fruit of the pitaya cactus, often called dragonfruit
- The Snapdragon (Antirrhinum majus) flower, a small annual in the family Scrophulariaceae
- The dragonfly, an insect of the Order Odonata, Suborder Anisoptera.
- The leafy sea dragon or weedy sea dragon, two fish species in the seahorse family.
Other things named after ancient dragons
- Draco ("dragon"), a constellation
- Dragon, a sign in the Chinese zodiac
- Red, green and white Chinese dragons in the Mahjong game, see Mahjong tiles
- Dragon 32/64, 1980s home computers
- M47 Dragon, anti-tank weapon
- Dragon Variation, a chess opening
- Dragon, a French rocket
- HMS Dragon, a warship in the British Royal Navy
- Dragon, a class of racing sailboats
- Smocza Jama ("dragon's den"), a cave in Kraków, Poland
- Benefon Dragon, a model of a mobile phone
- Vlad II Dracul Vlad II the Dragon, father of Vlad III Dracula (Vlad Ţepeş or Vlad the Impaler)
- Dragon, Artemisia dracunculus a herb.
Dragons of modern literature and culture
- Puff the Magic Dragon, a poem, then song; dragons in children's culture.
- Middle-earth dragons, from the books by J. R. R. Tolkien
- Swamp dragon, a fictional reptile species from Terry Pratchett's Discworld
- Pernese dragons, from the books by Anne McCaffrey
- Zagorothian Dragons, from the books by K. Excelthior Wright
- Dragon King or the Lizard King, Jim Morrison
- The many characters in the Dragoncharm trilogy
- Dragons in Dungeons & Dragons and other fantasy role-playing games (e.g. Rêve de Dragon).
- Dragon Magazine, a Dungeons & Dragons magazine
- Dragon (band), a New Zealand band.
- Pickled dragon, a hoax involving a fake dragon fetus in formaldehyde
- Dragon and Dragon Reborn, of the Wheel of Time series by Robert Jordan
- Dragon Tales the animated children's series on PBS
- The dragons in Dragons: A Fantasy Made Real, a special on Animal Planet
- Eragon, book one of the Inheritance Trilogy by Christopher Paolini.
- Day of the Dragon, book one in a series of books based on the Warcraft universe. Written by Richard A. Knaak
- Draco from the movie Dragonheart
- Figment of Walt Disney World's Journey Into Imagination ride at Epcot
- Trogdor from Homestar Runner
- American Dragon: Jake Long a Disney Channel animated series.
- Dragons in the Harry Potter books by J.K. Rowling
- Dragons in the movie Reign of Fire, responsible for the disappearance of Dinosaurs.
- The Gap Dragon in Piers Anthony's Xanth novels.
- Dragon Ball Japanese anime loosely based on the Chinese Journey to the West novel.
- In Laurence Yep's book Dragonwings, the protagonist's father Windrider explains a dream. In this dream the Dragon King tells him of his past as a boastful flyer and an unpredictable dragon before he died and returned as a human.
See also
- An Instinct for Dragons
- List of dragons
- Draco Malfoy
- The Dragon School (sometimes just The Dragon), Oxford, England – a Dragon can also refer to a current pupil at the school
- Draconity
- Dragon (Wheel of Time)
Further reading
- Dragons, A Natural History by Dr. Karl Shuker
ja:ドラゴン
simple:Dragon
th:มังกร
Hotel Genoa |