Professional Documents
Culture Documents
library ieee ;
use ieee.std_logic_1164.all ;
---------------------------------------------------------
ENTITY ChHx_Aff7 IS
---------------------------------------------------------
BEGIN
-- !! Soit définir ChHx ...vector(0 to 3) , puis "Transfert" ChHxEnt <= INTEGER( ChHx ) ;
-- !! °°°°°° °°°°
-- !! Soit Ordonner --> 0 1 2 3 (... rangs croissants ! ) :
ChHxEnt <= INTEGER( ChHx(0) & ChHx(1) & ChHx(2) & ChHx(3) ) ;
Aff7 <= Etat7Sgmts( ChHxEnt ) ;
END ChHx_Aff7_arch ;
2 sur 60 11049388.xls VHDL
3 sur 60 11049388.xls VHDL
4 sur 60 11049388.xls VHDL
Les entités (entity)
' 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 …
' 2 3 2 5 2 7 2 2 2 11 2 13 2 2 2 17 …
ormule générant Tous les NbPrem , mais très souvent 2 !
NUMERATION ( Représentations des Nombres )
A] Système ancien : Romain http://villemin.gerard.free.fr/Wwwgvmm/Numerati/RomainNu.htm
Pour montrer que la plus ou moins bonne conception d' un Système engendre
plus ou moins de difficultés d' utilisation , et surtout de réalisations d' automatismes (ex: Opérations) .
soustractible de soustractible de soustractible de
Conventions :
a) chiffre : I V X L C D M
valeur : un cinq dix cinquante cent cinq cents mille
b) Nbre : { suite de chiffres , des +signifiants à gauche aux -signifiants à droite , sauf ° }
° Sans doute par soucis de limiter la longeur des chaînes de caractères
représentant les valeurs numériques , convention de "soustraction'" :
un chiffre parmi les "soustractibles" (en RougeSouligné ) , placé à gauche
d' un chiffre de valeur juste supérieure ou suivante , s' en soustrait ( ! ) :
I placé à gauche de V ou X ; X placé à gauche de L ou C ;
C placé à gauche de D ou M .
c) Quelques Nombres en exemple :
Nombre : III IV VIII IX XIV XVIII XXXIX
valeur : 3 4 8 9 14 18 39
Nombre : XLVII XCIX CDXC XD Faux!! CMXCIX
valeur : 47 99 490 !!! 999
d) Opérations élémentaires : exemple de multiplication
X4 L 3 I 2 V1 réf. Chiffre multiplicande L4 X3 I 2 V1
* Vc I b I a réf. Chiffre multiplicateur * Vc I b Ia
X L I V a Tous les L X I V a
X L I V b "soustraits" L X I V b
X X V c1 en Rouge ! X X V c1
=0 =0
(!) - V c2 (!) - V c2
C C L c3 L c3
(!) - L c4 C C L c4
C C C V I I I C D X L V I I I
B] Systèmes (bien) stucturés "à Base B" : ( 'représentation' de Zéro => 'bonne' structure )
1) Chiffres : B chiffres à valeurs 0 jusqu'à B-1 .
représentations usuelles selon Valeur de B :
quatorze
chiffre
quinze
valeur
douze
Base
treize
deux
onze
neuf
zéro
sept
huit
dix
....
un
3) Conventions de Représentation d' un nombre (non entier ) N , à partie "fractionnaire" , ou "à virgule"
Représentation : { ne-1 ne-2 . . . n1 n0 , n-1 n-2 . . . n-f } B à e + f chiffres .
Rem.: dans un contexte "unibase" , on ne représente que la suite des ni
à partir du non nul
de plus grand indice , jusqu' à n0 , et seulement les 1ers après la virgule … .
Les calculatrices n' affichent pas les derniers "0" après la virgule .
Valeur correspondante : = Σ i= -f à e-1 (ni) *Bi
Définition, propriétés :
Signe exprimé par Msb [ 0=>">0"; 1=>"<0" ]
Nb >0 : = Naturel
Nb <0 : = 0 moins° Nb
Plage : -2^(N-1) à 2^(N-1)-1
Opérations : Plus° , Moins° .. ; ° <-> "Sans différencier le Msb(signe)"
Extension : recopie du Msb
Méthodes pour obtenir l'expression de l'opposé :
1) Complémenter les bits; additionner 1 .
2) Depuis la droite recopier les bits jusqu'au premier 1; complémenter les suivants .
Périm.Terre = 40 000 000 m [32b] : 0000.0010.0110.0010.0101.1010.0000.0000
-Périm.Terre : 1111.1101.1001.1101.1010.0110.0000.0000
Table de "correspondance" 4 bits de { sX ; absX } <-> SNCà0
exhaustif
Algèbre de Boole et logique combinatoire
Généralités et définitions
Table de vérité, forme canonique, chronogramme
Fonctions OUI, NON, OU, ET
Fonctions IMPLICATION, INHIBITION
Fonctions NOR, NAND, fonction UNIVERSELLE, OU exclusif, ET exclussif
Propriétés
Lois de DE MORGAN
Propriétés de l'algèbre de Boole
Tableau de KARNAUGH
Définition du Tableau de Karnaugh
Écriture dans un tableau de Karnaugh
Lecture d'un tableau de Karnaugh et cas particulier
Méthode de résolution
Résolution d'un problème en logique combinatoire
Résumé
Tableau résumé Fonction Logique
Numération
Sommaire
Principe des systèmes de numération
Changement de base
Représentation des nombres à virgule flottante
Représentation des nombres à virgule fixe
Représentation des nombres signés
Codes et trancodage
Principe du codage
Les codes décimaux
Le code binaire naturel
Convertisseur BCD décimal
Convertisseur décimal BCD
Code 2421
Code plus 3
Code AIKEN
Code GRAY
Code complément à 9
Codage des caractères
Code ASCII
Code EBCDIC
apprécie
Code 2421
Parmi la variété de codes possibles, le code 2421 est également utilisé. Dans ce code, les poids affectés aux variables b
ne sont plus 8, 4, 2, 1 mais 2, 4, 2, 1. Le tableau suivant nous présente une comparaison entre le code 2421 et le 8421.
7 peut s'écrire :
0111 ou 1101
ainsi que 5 :
0101 ou 1011
La première représentation est étudiée dans cette page, la seconde est connue sous le nom de code 2421 AIKEN.
Nous pouvons remarquer également que le 9 en décimal est représenté par quatre bits à 1 dans le code 2421. Ce qui ve
Le code 2421 n'a pas l'objet d'une version "circuit intégré". Le circuit pourra être câblé en technologie discrète avec des
Mais l'intégration "en dur" d'un tel convertisseur est possible avec un CPLD ou FPGA. Nous pouvons décrire notre circui
La description textuelle par un langage de description de type VHDL est aussi une possibilité non négligea
Nous pouvons alors disposer d'un convertisseur de code 2421 vers décimal sous la forme d'une brique log
La totalité des 16 combinaisons à 4 bits n'étant pas utilisées il est possible de faire des économies de plus
Si nous observons les codes 8421 et 2421 représentés sur notre premier tableau nous nous apercevons q
Les positions A et A' ainsi que D et D' sont égales dans les deux cas. Les autres positions ne se distinguen
Avec l'ajout des deux termes B' D' et C' D', il est possible de compléter les équations afin d'utiliser un minimum de comp
e faire des économies de plusieurs fonctions logiques. Les équations logiques du convertisseur de code 2421 décimal se
bleau nous nous apercevons qu'il existe entre eux une importante similitude.
res positions ne se distinguent que par les nombres 8 et 9. La converssion du code 8421 en code 2421 se traduit alors
nt de la même manière :
Le code plus 3 est souvent utilisé sur des unités arithmétiques qui calculent en système numérique décimal plutôt qu'en sys
Ce code permet d'effectuer les opérations arithmétiques d'addition et de soustraction avec un minimum de fo
La complexité du code plus 3 pour d'autre applications nous dictera d'utiliser un transcodeur à l'entrée et à la sortie de l'unité
Le tableau suivant nous présente une comparaison entre le code 8421 et le code plus 3.
Le code plus 3 utilise les combinaisons de quatre chiffres du binaire pur compris entre les nombres décimaux
Chaque nombre s'obtient en ajoutant 3 à chaque chiffre du nombre décimal et en le codant en BCD 8421.
Dans ce système n'apparaissent pas les combinaisons 0000 et 1111. De plus ce code est auto complémentair
Exemple : le complément de 7 à 9 est 2
7 = 1010
2 = 0101.
En étudiant la table de vérité, nous allons obtenir les fonctions logiques pour le transcodage BCD 8421 vers le
Equation de A' :
Utilisons un tableau de Karnaugh et reportons les valeurs de A' pour les 9 combinaisons définies dans la table de vérité.
Aux combinaisons non définies nous ferons correspondre le symbole
.
Equation de B' :
Reportons les valeurs de B' dans un tableau de Karnaugh pour les 9 combinaisons valide de la table de vérité
Equation de C' :
Equation de D' :
D' = AC + BC + D
D' = C (A + B) + D.
En reprenant les équations logiques ci-dessus, nous sommes en mesure d'établir un logigramme pour construire le convertis
Nous avons vu que pour obtenir un nombre en code plus 3 on ajoute le nombre binaire 3 (0011) à ce nombre
Exemple :
Il est donc possible d'effectuer la conversion en sens inverse en soustrayant le nombre binaire 3 ou bien en a
Un additionneur complet à 4 bits du type SN74HC283 est tout à fait capable de réaliser ce genre d'opération.
Le schéma suivant représente le circuit pour les deux sens de conversion.
gigramme pour construire le convertisseur en technologie discrète. Le circuit est complexe à cause du nombre de fonctions logiques différe
bre binaire 3 (0011) à ce nombre correspondant en code 8421.
logique complexe.
du nombre de fonctions logiques différentes mises en oeuvres.
Code Aiken
Le code Aiken étant fréquemment utilisé dans les automatismes industriels, il est par conséquent nécessaire de le conve
En étudiant le code 2421 nous avions observé qu'il était possible de représenter certains chiffres de deux
Par exemple le 7 peut s'écrire 0111 ou 1101.
C'est la deuxième représentation qui est en code Aiken.
C'est un code 2421 pondéré. Pour les chiffres décimaux 0, 1, 2, 3, 4, il correspond avec le code BCD 8421, tandis que p
Exemple :
le complément à 9 de 6 est égale à 3.
6 = 1100
3 = 0011.
L'écriture du chiffre 3 est complémentaire du chiffre 6 ; les 0 du chiffre 6 deviennent des 1 pour le chiffre 3 et vice versa.
Nous remarquons également que la dernière variable pondérée 2 dans ce code est égale à 0 si le nombre
La conversion du code 8421 en code Aiken s'effectue en étudiant la table de vérité ci-dessus. Nous obtenons les équatio
A' = A
B' = D + BC + ABC
C' = D + AC + BC = D + C(A + B)
D' = D + AC + BC = D + C(A + B)
Les logigrammes suivants révèlent les schémas des circuits électroniques possibles pour le trancodeur 8421 Aiken.
Le premier schéma est établie avec C' = D + C(A + B)
et D' = D + C(A + B)
Dans la version ci-dessous les équations ne sont pas simplifiées (pas de mise en facteur de C) mais le tran
Une autre solution découle du fait que l'on obtient les valeurs B' et C' en ajoutant le nombre 6 (0110) au n
Cette fonction sera réalisée simplement avec un additionneur complet du type SN74HC283 à 4 bits.
Avec un circuit moins complexe il est possible d'effectuer le transcodage du code Aiken en code 8421. Pour D' = 1 on so
c le code BCD 8421, tandis que pour les nombres décimaux 5, 6, 7, 8, 9, il concorde avec les nombres 11, 12, 13, 14, 15 du code binai
de est égale à 0 si le nombre est inférieur à 5 et égale à 1 quand le nombre est supérieur à 5.
utant le nombre 6 (0110) au nombre correspondant dans le code 8421, lorsque D' = 1.
pe SN74HC283 à 4 bits.
n en code 8421. Pour D' = 1 on soustrait du nombre en code Aiken le nombre 6 (0110) ou bien on lui ajoute le complément à 16 soit 10
res 11, 12, 13, 14, 15 du code binaire pur.
i ajoute le complément à 16 soit 10 (1010), afin d'obtenir le nombre correspondant en code BCD 8421.
Code Gray
Le code Gray est fréquemment utilisé dans les capteurs angulaires ou de positionnement, mais aussi lorsque l'on désire une
Le code Gray sert également dans les tableaux de Karnaugh utilisés lors de la conception de circuits logiques.
Le code Gray est un code construit de telle façon qu'à partir du chiffre 0 chaque nombre consécutif diffère du précédent imm
En l'exprimant autrement nous pouvons également dire que l'on change un seul bit à la fois quand un nombre est augmenté
De plus, on opère de telle manière que le digit de transformation soit d'un poids faible. Si une erreur survient lors d'une trans
à un autre elle est ainsi minimisée.
Commençons par un exemple simple et établissons le code gray pour les 4 premiers chiffres décimaux 0 à 3.
Deux bits suffisent et les combinaison en binaire BCD sont les suivantes :
Nous remarquons que pour aller du nombre (1)10 à (2)10 nous changeons les deux bits à la fois pour passer de (01)
En code Gray, pour passer d'une ligne à la suivante, on inverse un seul bit de telle manière qu'il soit le bit
Ce qui donne les combinaisons suivantes :
Le nom code binaire réfléchi vient d'une autre méthode de construction. Elle est plus pratique ou plus visue
Soit un nombre N en binaire pur, pour obtenir son équivalent n en binaire réfléchi, il suffit d'effectuer l'opération suivante :
Exemple :
soit N = 0111,
nous avons 2N = 1110 (pour multiplier par 2 on effectue un décalage de la droite vers la gauche).
On effectue maintenant l'opération OU Exclusif de N et 2N :
Puis nous divisons par 2 le résultat soit 1001 / 2 = 0100 (pour diviser par 2 on effectue un décalage de la gauche vers la dro
Nous avons alors :
pour N = 0111 en binaire pur correspond n = 0100 en code Gray.
La construction du code Gray pour les nombres de 0 à 15 est représentée par le tableau suivant :
Etablissons un diagramme de Karnaugh pour G1, G2, G3, G4 à partir de B1, B2, B3 et B4.
Nous pouvons remarquer que le passage du binaire pur au code Gray se fait en effectuant une opération OU Exclusif.
Le circuit du transcodeur est très simple. En désignant par Bn (B1 = LSB) un bit quelconque en code binaire pur et pa
A partir de cette formule, il est tout à fait possible de concevoir sans difficulté le circuit représenté ci-dessous.
Pour la conversion du code Gray en code binaire la relation suivante s'apparente à l'équation vue pour le convertisseur inve
Là encore les fonctions OU Exclusif sont de mise pour la réalisation du circuit de transcodage.
Les circuit représentés ci-dessus peuvent être étendus au nombre de bit nécessaires ou souhaités.
Ce code est surtout utilisé pour des capteurs de positions absolue , par exemple sur des règles optiques ou un codeur angu
En effet, si on utilise le code binaire pur, pendant le passage de la position cinq (101)2 à six (110)2
On remarquera que le passage du maximum (quinze sur 4 bits) à zéro se fait également en ne modifiant
Ceci permet par exemple d'encoder un angle, comme la direction d'une girouette ou la position d'un axe sur une machine au
Pour la construction d'un codeur angulaire solidaire d'un axe il faut de préférence établir des ensembles de position angulair
Pour une girouette à huit position (0=Nord, 1=Nord-Est, 2=Est, ... 7=Nord-Ouest) le passage de Nord-Ouest à Nord se fait é
Nous avons 16 positions angulaires détectées en 4 bits. La lecture s'effectue par 4 cellules photosensibles.
hiffres décimaux 0 à 3.
manière qu'il soit le bit le plus à droite possible conduisant à un nouveau nombre.
e est plus pratique ou plus visuelle quand au choix du bit à inverser lors du passage d'un nombre au suivant.
fit d'effectuer l'opération suivante :
eprésenté ci-dessous.
r des ensembles de position angulaire multiples d'une puissance de 2 (2, 4, 8, 16, 32...) si l'on veut que le changement du nombre le plus é
ssage de Nord-Ouest à Nord se fait également sans problème en ne changeant qu'un seul bit.
ules photosensibles.
n nombre au suivant.
e par quatre (100)2 ou sept (111)2, ce que le code Gray évite.
que le changement du nombre le plus élevé du groupe vers le nombre le plus faible se fasse avec un seul bit.