v. Bus vi. Ports d`entrées/sortie b. Circuits numériques i. Circuits

publicité
v. Bus
Dans un système électronique et microinformatique, nous trouverons tout ou partie des sousensembles :
- Le circuit microcontrôleur, cœur du système.
- Un clavier, un afficheur, des convertisseurs Analogique-numérique et D-A, des ports
d'entrées sorties, des mémoires, etc.
Ces composants étant parfois situés sur des cartes séparées, il est hors de question de relier
chacun par des nappes de dizaines de fils véhiculant des données en parallèle. C'est ici
qu'intervient la notion de bus, pour sérialiser les données et permettre les échanges.
Tous ces composants vont dialoguer avec 2 ou trois fils ce qui va beaucoup simplifier la
réalisation.
Définir un bus consiste donc à fixer les points clefs :
- Combien de signaux seront véhiculés (nombre de fils)
- Tensions des niveaux logiques et type des fils et connecteurs (séparés, torsadés,
coaxial...)
- Vitesse des échanges (horloge)
- Format de la trame et codage des informations
- Normalisation des adresses des périphériques
- Gestion des conflits de bus et dispositions anti-collisions
Par ailleurs, les circuits logiques d’un ordinateur sont divisés en deux catégories suivant leur
structure fonctionnelles : les circuits combinatoires et les circuits séquentiels.
Circuits combinatoires : Un circuit est dit combinatoire si les sorties ne dépendent que des
valeurs assignées aux valeurs d’entrée au moment considéré. Autrement dit, dans un tel
circuit, le comportement des sorties peut toujours être exprimé par des fonctions logiques.
vi. Ports d’entrées/sortie
Dans un système à base d'un processeur, d'un microprocesseur, d'un microcontrôleur ou
d'un automate, on appelle Entrées-Sorties les échanges d'informations entre le processeur et
les périphériques qui lui sont associés. De la sorte, le système peut réagir à des modifications
de son environnement, voire le contrôler. Elles sont parfois désignées par l'acronyme I/O, issu
de l'anglais Input/Output ou encore E/S pour Entrées/Sorties.
Les périphériques sont reliés au reste du système par des circuits appelés ports d'entrées et
ports de sortie (certains ports peuvent combiner les deux fonctions).
b. Circuits numériques
i. Circuits logiques standards
L'ordinateur est un dispositif électronique sophistiqué qui traite l'information mise sous forme
d'impulsions électriques traduisant les chaînes binaires utilisées pour représenter les symboles
qu’on y introduit codés sous forme d’une suite bits. Rappelons qu’un ordinateur ne comprend
que les impulsions électriques.
Les traitements, pour leur part, sont essentiellement réalisés à l'aide d'opérations telles
l'addition, la soustraction, la multiplication, la division, la comparaison. Plus
fondamentalement, les opérations sont composées d'opérations logiques qui sont effectuées
par des circuits logiques de base appelés portes. Une porte est en fait un circuit combinatoire à
une ou plusieurs entrées et à au moins une sortie. Les conditions aux entrées d'une porte
déterminent l'état des sorties.
Il existe trois portes de base correspondant aux trois opérations logiques: OU, ET, NON.
Circuits séquentiels : Un circuit est dit séquentiel si les sorties le comportement des sorties
dépend des valeurs assignées aux variables ‘entrée et selon son histoire. De tels circuits
contiennent une mémoire à côté d’une partie combinatoire. Cette mémoire a pour rôle de
conserver l’histoire du circuit, histoire qui peut influencer les sorties pour une nouvelles
combinaison de valeurs assignées aux entrées. L’information qui se trouve en mémoire à un
moment donné définit l’état du circuit séquentiel. L’état suivant et le comportement des
sorties sont déterminés par l’état actuel et la combinaison des valeurs données aux entrées. Par
conséquent, un circuit séquentiel se caractérise par une séquence de signaux aux entrées et
une séquence d’états pour chaque séquence de signaux appliquées aux entrées.
Exemples de circuits logiques :
- Le semi-additionneur
Il s'agit de réaliser un circuit permettant d'additionner 2 bits d'entrée, et d'obtenir comme
sortie le résultat de l'addition et la retenue:
10
11
Ceci nous donne le circuit logique suivant :
- Le décodeur
Un décodeur k bits possède k entrées et 2k sorties. La sortie dont le numéro est donné par les
entrées est active (valeur 1) alors que toutes les autres sorties sont inactives (valeur 0).
- L’additionneur
Le semi-additionneur permet d'additionner deux bits, et de donner la somme et la retenue.
L'additionneur complet tient compte non seulement des deux entrées, mais aussi de la retenue
obtenue lors de l'addition des deux valeurs de la position précédente. On a alors, pour
l'addition des deux valeurs de position n, les entrées suivantes: xn, yn et Rn-1 (la retenue de
l'addition des deux valeurs de la position n-1).
12
13
-
- Le multiplexeur
Un multiplexeur k bits permet de sélectionner une entrée parmi 2k disponibles. Un
multiplexeur k bits a k + 2k entrées et une seule sortie. Les k premières entrées A0,…,Ak-1 sont
appelées bits d'adresses car elles donnent le numéro de l'entrée à sélectionner parmi les
entrées B0,…,B2k-1. La sortie S est alors égale à cette entrée sélectionnée.
Par exemple, le multiplexeur 2 bit a donc 6 entrées A0, A1, B0, B1, B2 et B3 et une seule
sortie S. La formule donnant la sortie S en fonction des entrées est la suivante.
S = (A1 . A0 . B3) + (A1 . ¬A0 . B2) + (¬A1 . A0 . B1) + (¬A1 . ¬A0 . B0)
Caractéristiques en tension :
Les entrées et les sorties d’un circuit logique sont représentée sous forme de tension. Cidessous quelques caractéristiques d’un circuit logique en tension :
- Vih (Voltage Input High) : Il s'agit de la tension (voltage) d'entrée (Input) à partir de
laquelle le circuit logique considère qu'un niveau logique "1" (High) lui est appliqué
- Vil (Voltage Input Low) : C'est la tension d'entrée limite jusque laquelle le circuit
considère qu'un niveau logique "0" (Low) lui est appliqué
- Voh (Voltage Output High) : C'est la tension de sortie (Output) du circuit logique, à
partir de laquelle on considère qu'un niveau logique "1" est délivré.
- Vol (Voltage Output Low) : c'est la tension de sortie limite en dessous de laquelle on
considère qu'un niveau logique "0" est délivré.
- Immunité au bruit ou marge de bruit : C'est une marge de protection qui évite
qu'une perturbation (un parasite par exemple) ne change le niveau de sortie de la porte
logique. Elle correspond à la différence entre Voh et Vil d'une part et entre Vih et Vil
14
d'autre part. Plus cette marge est importante, et plus le circuit peut être utilisé dans un
milieu parasité.
Tension de déchet : C'est la différence de tension entre la tension théorique
correspondant respectivement au niveau logique "1" ou au niveau logique "0" et la
tension réelle.
Technologiquement, il existe actuellement deux familles prépondérantes de circuits de
logique qui correspondent à deux techniques différentes de réalisation sous forme intégrée.
Ces deux technologies sont la famille des circuits logiques TTL (Transistor-Transistor Logic)
et la famille des circuits logiques CMOS (Complementary Metal Oxide Semi-conductor).
Parmi les avantages de ces deux familles, nous retiendrons la faible consommation statique et
la grande impédance d'entrée (~109) des CMOS, ainsi que la rapidité de la famille TTL.
Transistor-Transistor Logic ou TTL est une famille de circuits logiques utilisée
en électronique inventée dans les années 1960. Cette famille est réalisée avec la technologie
du transistor bipolaire et tend à disparaître du fait de sa consommation énergétique élevée
(comparativement aux circuits CMOS).
La technologie TTL est normalisée pour une tension d'alimentation de 5 V. Un signal TTL est
défini comme niveau logique bas entre 0 et 0,5 V, et comme niveau logique haut
entre 2,4 V et 5 V (ces niveaux varient légèrement entre les différentes séries).
L'alimentation des circuits TTL doit être précise : +5 V +-5 %, en comparaison aux
circuits CMOS qui ont, eux, une plage de tension d'alimentation bien plus vaste (de +3 à
+18 V).
La technologie CMOS, ou Complementary Metal Oxide Semiconductor, est une
technologie de fabrication de composants électroniques et, par extension, l'ensemble des
composants fabriqués selon cette technologie. À l'instar de la famille Transistor-Transistor
logic (TTL), ces composants sont en majeure partie des portes logiques (NAND, NOR, etc.)
mais peuvent être aussi utilisés comme résistance variable.
ii. Circuits programmables
o Microcontrôleur
Un microcontrôleur (en notation abrégée µc, ou uc ou encore MCU en Anglais) est
un circuit
intégré qui
rassemble
les
éléments
essentiels
d'un
ordinateur : processeur, mémoires (mémoire morte pour le programme, mémoire vive pour les
données), unités périphériques et interfaces d'entrées-sorties. Les microcontrôleurs se
caractérisent par un plus haut degré d'intégration, une plus faible consommation électrique,
une vitesse de fonctionnement plus faible (de quelques mégahertz jusqu'à plus d'un gigahertz)
15
et un coût réduit par rapport aux microprocesseurs polyvalents utilisés dans les ordinateurs
personnels.
Par rapport à des systèmes électroniques à base de microprocesseurs et autres composants
séparés, les microcontrôleurs permettent de diminuer la taille, la consommation électrique et
le coût des produits. Ils ont ainsi permis de démocratiser l'utilisation de l'informatique dans un
grand nombre de produits et de procédés.
Les microcontrôleurs sont fréquemment utilisés dans les systèmes embarqués, comme les
contrôleurs des moteurs automobiles, les télécommandes, les appareils de bureau,
l'électroménager, les jouets, la téléphonie mobile, etc.
Traditionnellement, ces composants sont intégrés dans des circuits distincts. Le
développement d'un tel système à base de microprocesseur se trouve donc pénalisé par :
- la nécessité de prévoir l'interconnexion de ces composants (bus, câblage, nappes de
connexion) ;
- la place occupée physiquement par les composants et les moyens d'interconnexion ;
- la consommation énergétique ;
- la chaleur dégagée ;
- le coût financier.
Les microcontrôleurs améliorent l'intégration et le coût (lié à la conception et à la réalisation)
d'un système à base de microprocesseur en rassemblant ces éléments essentiels dans un seul
circuit intégré. Un microcontrôleur est donc un composant autonome, capable d'exécuter le
programme contenu dans sa mémoire morte dès qu'il est mis sous tension. Selon les modèles
et les conditions de fonctionnement, les microcontrôleurs peuvent avoir besoin de quelques
composants externes (quartz, quelques condensateurs, parfois une ROM), mais ceci reste très
limité.
Le processeur est l'élément central d'un système informatique : il interprète les instructions et
traite les données d'un programme. Il a besoin de certains éléments externes pour
fonctionner :
- une horloge pour le cadencer
- de la mémoire pour stocker les variables durant l’exécution du programme (mémoire
vive RAM) et le programme d’une mise sous tension (mémoire morte ROM).
- des périphériques (pour interagir avec le monde extérieur).
Ces éléments sont reliés par 3 bus :
- le bus d'adresse qui permet au microprocesseur de sélectionner la case mémoire ou le
périphérique auquel il veut accéder pour lire ou écrire une information (instruction ou
donnée) ;
- le bus de données qui permet le transfert des informations entre les différents
éléments ; ces informations seront soit des instructions, soit des données en
provenance ou à destination de la mémoire ou des périphériques ;
- le bus de contrôle qui indique si l'opération en cours est une lecture ou une écriture, si
un périphérique demande une interruption pour faire remonter une information au
processeur, etc.
Un microcontrôleur intègre sur un unique circuit intégré :
- un processeur (CPU), avec une largeur du chemin de données allant de 4 bits pour les
modèles les plus basiques à 32 ou 64 bits pour les modèles les plus évolués ;
- de la mémoire vive (RAM) pour stocker les données et variables ;
- de la mémoire morte (ROM) pour stocker le programme. Différentes technologies
peuvent être employées : EPROM, EEPROM, mémoire flash (la plus récente) ;
- souvent un oscillateur pour le cadencement. Il peut être réalisé avec un quartz, ou
un circuit RC ;
- des périphériques, capables d'effectuer des tâches spécifiques. On peut mentionner
entre autres :
o les convertisseurs analogiques-numériques (CAN)
o les convertisseurs numériques-analogiques (CNA)
o les générateurs de signaux à modulation de largeur d'impulsion (MLI, ou en
anglais, PWM pour Pulse Width Modulation),
o les timers/compteurs (compteurs
d'impulsions
d'horloge
interne
ou
d'événements externes),
o les chiens de garde (watchdog), (pour s'assurer qu'un automate ou
un ordinateur ne reste pas bloqué à une étape particulière du traitement qu'il
effectue. C'est une protection destinée généralement à redémarrer le système, si
une action définie n'est pas exécutée dans un délai imparti.)
o les comparateurs (comparent deux tensions électriques),
o les contrôleurs de bus de communication.
Le fonctionnement des périphériques peut être paramétré et commandé par le programme
et/ou les entrées-sorties. Les périphériques peuvent générer une interruption qui contraint le
processeur à quitter le programme en cours pour effectuer une routine de traitement de
l’interruption, lorsque l’événement qui la déclenche survient.
Les microcontrôleurs peuvent généralement se placer dans un état de sommeil, dans lequel ils
présentent une très faible consommation électrique. Un signal envoyé par l'un de leurs
périphériques (timer, broche d'entrée-sortie, watchdog, etc.) permet de les faire sortir de cet
état de sommeil.
16
17
Certains microcontrôleurs ont un nombre très restreint de broches, si bien qu'une broche
donnée peut correspondre à plusieurs périphériques internes. La fonction choisie doit alors
être sélectionnée par logiciel.
Le choix des périphériques à intégrer dans un microcontrôleur est délicat. Les fabricants
doivent réaliser un compromis entre des besoins contradictoires : utiliser des fréquences
élevées, réduire la taille du circuit, apporter des fonctionnalités nombreuses, élaborer une
architecture flexible, assurer des coûts modérés, etc.
-
un programmateur, pour microcontrôleurs et souvent également d’EEPROM. On parle
alors de programmateur universel.
un programmateur ISP qui a l'avantage de ne pas nécessiter de sortir le
microcontrôleur du système électronique complet. Ce type de programmation pourra
se faire via le bus de communication standard JTAG ou un autre bus, souvent
propriétaire (Microchip par ex. avec sa série PIC16F) et, malheureusement, inadapté
au test des cartes lors de la phase de production.
Un microcontrôleur peut effectuer la plupart des instructions machine habituelles, avec
certaines restrictions liées à son caractère embarqué (taille restreinte des mots machine, petite
taille disponible, etc.). On note cependant quelques particularités.
Les capacités mathématiques sont en général particulièrement limitées, réduites à des
additions, soustractions et décalages sur des octets pour les plus simples d'entre eux. Les
calculs mathématiques évolués doivent donc être ramenés à une succession d'opérations
simples portant seulement sur des octets. Des routines mathématiques (petits programmes
permettant de réaliser les calculs complexes) ont été développées pour la plupart des
microcontrôleurs populaires.
Les instructions d'entrée-sortie sont bien développées, de façon à pouvoir :
- lire l'état d'un port d'entrée ;
- écrire une information dans le registre d'un port de sortie, qui maintient l'information à
la disposition des circuits extérieurs.
Les microcontrôleurs disposent généralement de nombreuses instructions destinées aux
opérations sur les bits, de façon à rendre les programmes plus compacts, notamment lorsqu'ils
agissent sur une entrée-sortie donnée. Ainsi, un processeur généraliste peut avoir besoin
de plusieurs instructions pour tester la valeur d'un bit d'un registre et effectuer un saut si le bit
vaut vrai. Cette fonction courante est assurée par une seule instruction dans certains
microcontrôleurs.
Les modes d'adressage utilisables sont en général semblables à ceux des autres processeurs.
De façon générale, les instructions et modes d'adressage disponibles varient fort selon les
familles de microcontrôleurs.
Les microcontrôleurs représentent la plus grosse partie des ventes dans le marché
des microprocesseurs. En effet, un foyer moyen d'un pays développé est susceptible d'être
équipé de seulement un ou deux microprocesseurs généralistes (ordinateurs), mais d'une ou
deux douzaines de microcontrôleurs (appareils électroménagers). Une automobile de milieu
de gamme est équipée d'au moins 50 microcontrôleurs
Le
programme
d'un
microcontrôleur
est
généralement
appelé micrologiciel ou microprogramme.
À l'origine, les microcontrôleurs se programmaient en assembleur. Fortement bas niveau (et
donc, intrinsèquement optimisé), l'assembleur posa et pose toujours d'énormes problèmes
pour la maintenance et l'évolution des logiciels embarqués. Désormais, on utilise de plus en
plus des langages de haut niveau, notamment le langage C
Des simulateurs sont disponibles pour certains microcontrôleurs, comme
l'environnement MPLAB de Microchip. Les développeurs peuvent ainsi analyser le
comportement du microcontrôleur et du programme, comme s'il s'agissait du composant réel.
Une fois le programme compilé, le fichier binaire doit être envoyé au microcontrôleur. On
utilise soit :
18
o DSP
Un DSP (de l'anglais « Digital Signal Processor », qu'on pourrait traduire par « processeur de
signal
numérique »
ou
« traitement
numérique
de
signal »)
est
un microprocesseur optimisé pour exécuter des applications de traitement numérique du
signal (filtrage, extraction de signaux, etc.) le plus rapidement possible .
Les DSP sont utilisés dans la plupart des applications du traitement numérique du signal en
temps réel. On les trouve dans les modems (modem RTC, modem ADSL), les téléphones
mobiles, les appareils multimédia (lecteur MP3), les récepteurs GPS... Ils sont également
utilisés dans des systèmes vidéo, les chaînes de traitement de son, partout où l'on reçoit
un signal complexe que l'on doit modifier à l'aide du filtrage.
Un DSP fournit des instructions usuelles comme la multiplication, l'addition, la soustraction,
etc. Mais le jeu d'instruction d'un DSP est aussi optimisé de façon à exécuter des opérations
très courantes dans les algorithmes de traitement de signal les plus usuels.
Les DSP sont aussi fortement optimisés pour exécuter des boucles le plus rapidement
possible. En effet, il n'est pas rare que les programmes de traitement du signal utilisent des
boucles, notamment pour parcourir des tableaux. Accélérer ces boucles est donc un enjeu
majeur de la conception des DSP.
Les DSP sont capables de gérer des boucles FOR en un seul cycle d'horloge.
Les DSP supportent souvent des modes d'adressages assez particuliers, qu'on ne retrouve pas
sur les autres jeux d'instructions.
19
L'accès à la mémoire est aussi particulièrement optimisé sur les DSP. Nos DSP sont en effet
capables d'effectuer plusieurs accès mémoires simultanés. Ils peuvent ainsi effectuer plusieurs
lectures ou écritures en parallèle. Pour gérer ces accès mémoires simultanés, un DSP est
souvent relié à plusieurs mémoires, ou à des mémoires multiports.
Un DSP est un processeur dont l'architecture est optimisée pour effectuer des calculs
complexes en un cycle d'horloge, mais aussi pour accéder très facilement à un grand nombre
d'entrées-sorties (numériques ou analogiques).
Il possède aussi quelques caractéristiques assez spécialisées :
- Seulement des processus parallèles, pas de multitâche. Des contraintes sont imposées
car les DSP n'ont qu'une gestion rudimentaire des interruptions quand ils en ont une.
- La possibilité d'être utilisé comme un périphérique accédant directement à la mémoire
dans un environnement hôte.
- Peut acquérir les données numériques d'un convertisseur analogique-numérique (CAN
ou ADC), appliquer un traitement à ces données et les restituer au monde extérieur
grâce à un convertisseur numérique-analogique (CNA ou DAC).
- Pas de mémoire virtuelle, pour diminuer les couts de fabrication et la latence des accès
mémoires.
Les DSP peuvent être combinés avec d'autres composants dans le même boîtier. Par exemple,
un ou plusieurs DSP peuvent être combinés avec un microprocesseur classique et des
convertisseurs ADC et DAC. Ce type d'assemblage (circuits intégrés dédiés) permet de
réduire les coûts dans des fabrications de grande série.
Dans un appareil équipé de DSP, la vitesse d'exécution des calculs dans le DSP est
généralement la partie déterminante de la vitesse d'exécution du travail effectué par la
machine. Il s'agit souvent de programmes très courts, de quelques centaines de lignes au
maximum dont certaines parties (boucles) doivent être optimisées au maximum. C'est
pourquoi beaucoup de programmeurs de DSP utilisent l'assembleur et analysent en détail le
schéma d'exécution du code par la machine.
Cependant, certains DSP ont une architecture tellement complexe qu'il devient long et
difficile pour le programmeur d'optimiser manuellement l'exécution. Il peut alors écrire son
programme en C et laisser au compilateur le soin de réaliser l'optimisation du code. S'il le
souhaite, le programmeur pourra alors analyser le code généré par le compilateur et y apporter
les dernières retouches permettant d'obtenir du DSP la meilleure performance possible.
Le choix entre ces deux langages se fera donc en fonction de la complexité du programme, de
la vitesse de traitement souhaitée, du nombre de programmeurs qui travailleront sur le projet
et du coût du produit. D'autres facteurs comme l'expérience personnelle et les outils que
propose le constructeur doivent aussi être considérés.
20
o FPGA
Un 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 et bascules logiques librement connectables (c'est justement la
reconfiguration, ou programmation, du composant qui définit les connexions faites entre
portes logiques).
Les FPGA (Field Programmable Gate Arrays ou "réseaux logiques programmables") sont des
composants VLSI (Very Large Scale Integration: circuits intégrés à très haut niveau
d'intégration) entièrement reconfigurables ce qui permet de les reprogrammer à volonté afin
d'accélérer
notablement
certaines
phases
de
calculs.
L'avantage de ce genre de circuit est sa grande souplesse qui permet de les réutiliser à volonté
dans
des
algorithmes
différents
en
un
temps
très
court.
Le progrès de ces technologies permet de faire des composants toujours plus rapides et à plus
haute intégration, ce qui permet de programmer des applications importantes.
Les circuits FPGA sont constitués d'une matrice de blocs logiques programmables entourés de
blocs d'entrée sortie programmable. L'ensemble est relié par un réseau d'interconnexions
programmable.
Les FPGA sont bien distincts des autres familles de circuits programmables tout en offrant le
plus haut niveau d'intégration logique.
L'avantage des FPGA est de pouvoir être configuré sur place, sans envoi du circuit chez le
fabricant, ce qui permet de les utiliser quelques minutes après leur conceptions. Les FPGA les
plus récents sont configurables en une centaine de millisecondes.
La plupart des grands FPGA modernes sont fondés sur des cellules SRAM aussi bien pour le
routage du circuit que pour les blocs logiques à interconnecter.
Un bloc logique est de manière générale constitué d'une table de correspondance
(LUT ou Look-Up-Table) et d'une bascule (Flip-Flop en anglais). La LUT sert à implémenter
des équations logiques ayant généralement 4 à 6 entrées et une sortie. Elle peut toutefois être
considérée comme une petite mémoire, un multiplexeur ou un registre à décalage. Le registre
permet de mémoriser un état (machine séquentielle) ou de synchroniser un signal (pipeline).
Les blocs logiques, présents en grand nombre sur la puce (de quelques milliers à quelques
millions en 2007) sont connectés entre eux par une matrice de routage configurable. Ceci
permet la reconfiguration à volonté du composant, mais occupe une place importante sur le
silicium et justifie le coût élevé des composants FPGA.
Afin de pouvoir finaliser un FPGA, il est nécessaire d'utiliser un langage de description
matériel 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.
21
o CPLD
Les CPLD (Complex Programmable Logic Device), de conception plus ancienne, utilisent
des « macrocellules » logiques, composées d'un réseau combinatoire de portes ET et OU afin
d'implémenter des équations logiques. Des bascules sont disponibles seulement dans les blocs
d'entrée-sortie. Un composant contient de quelques dizaines à quelques centaines de
macrocellules.
Comme le routage est fixe, les temps de propagations sont bornés et permettent une fréquence
de fonctionnement élevée et indépendante du design. Par contre, l'utilisation des ressources
n'est pas optimale (tout terme non utilisé dans une équation logique équivaut à des portes
perdues), avec des taux d'utilisation d'environ 25 %.
Comparés aux FPGA, les PLD contiennent un nombre relativement petit de portes logiques et
les fonctions implémentables sont plus petites et plus simples
o ASIC
Un ASIC (acronyme de l'anglais Application-Specific Integrated Circuit, littéralement
« circuit intégré propre à une application », ou bien circuit intégré développé pour un client)
est un circuit intégré spécialisé. En général, il regroupe un grand nombre de fonctionnalités
uniques ou sur mesure.
Les circuits ASIC regroupent tous les circuits dont la fonction peut être personnalisée d'une
manière ou d'une autre en vue d'une application spécifique, par opposition aux circuits
standards dont la fonction est définie et parfaitement décrite dans le catalogue de composants.
Les ASIC sont conçus pour une tâche bien précise et cela leur permet d'être plus petits, moins
chers, plus rapide et de consommer moins de puissance.
D'une manière générale l'utilisation d'un ASIC conduit à de nombreux avantages provenant
essentiellement de la réduction de la taille des systèmes. Il en ressort :
• Réduction du nombre de composants sur le circuit imprimé. La consommation et
l'encombrement s'en trouvent considérablement réduits.
• Le concept ASIC par définition assure une optimisation maximale du circuit à réaliser.
Nous disposons alors d'un circuit intégré correspondant réellement à nos propres
besoins.
• La personnalisation du circuit donne une confidentialité au concepteur et une
protection industrielle.
• Enfin, ce type de composant augmente la complexité du circuit, sa vitesse de
fonctionnement et sa fiabilité.
Dans l'approche des circuits personnalisés, l'inconvénient majeur réside dans le fait du
passage obligatoire chez le fondeur ce qui implique des frais de développement élevés du
circuit.
iii. Mémoires : SRAM, DRAM, FLASH EPROM, ….
Une mémoire est un élément de stockage d'information. Les bits stockés sont organisés en
forme de matrice: la dimension de la mémoire est donnée par le nombre de lignes fois la
largeur de la ligne. Chaque ligne de la mémoire est appelée un mot. Elle est identifiée par une
adresse (numéro de la ligne). Le nombre de lignes est toujours une puissance de deux. Deux
opérations sont possibles, toujours sur un mot complet: la lecture (read) et l'écriture (write).
22
Il existe deux grands types de mémoire:
- RAM (random-access memory): mémoire volatile
o Statique (SRAM): l'information est conservée tant que la tension
d'alimentation est présente
o Dynamique (DRAM): il faut recharger (rafraîchir) périodiquement les cellules
de mémoire pour conserver les données
- ROM (read-only memory): mémoire non volatile
o mask: le contenu est initialisé au moment de la fabrication et ne peut plus être
modifié
o PROM (programmable ROM) ou OTP ROM (one-time programmable): le
contenu peut être modifié une fois par l'utilisateur, à l'aide d'un équipement
spécialisé
o EPROM (erasable PROM): le contenu peut être effacé et modifié plusieurs
fois
o UV EPROM: le contenu est effacé par des rayons ultra-violets (plusieurs
minutes)
o EEPROM (electrically EPROM) ou E2PROM: le contenu est effacé
électriquement (quelques millisecondes)
o Flash: le contenu est effacé électriquement et plus rapidement que sur les
EEPROM
iv. Système sur puce (SoC)
Un système sur une puce, également souvent désigné dans la littérature scientifique par le
terme anglais system on a chip ou son abréviation SoC, est un système complet embarqué sur
une seule puce, pouvant comprendre de la mémoire, un ou plusieurs microprocesseurs, des
périphériques d'interface, ou tout autre composant nécessaire à la réalisation de la fonction
attendue.
On
peut
intégrer
de
la
logique,
de
la
mémoire
(statique,
dynamique, flash, ROM, PROM, EPROM, EEPROM), des dispositifs mécaniques (capteurs),
électroniques, chimiques ou biologiques ou des circuits radio.
Ils permettent une réduction des coûts, une adaptation fine des composants et une réduction de
la consommation.
Ils nécessitent la cohabitation de technologies incompatibles et la collaboration de
compétences variées.
23
3. Composants logiciels
a. Système d’exploitation
b. Langage de développement
i. Assembleur
ii. Langages séquentiels (C, C++, Fortran, VHDL…)
iii. Langages concurrents de haut niveau (java, ada,
C#,…)
c. Outils et environnements de développements
d. Outils de simulation
4. Lien entre le matériel et le logiciel (le Codesign)
24
Téléchargement