Electronique numérique: synthèse 1 Exercices d’électronique numérique. Synthèse
Electronique numérique: synthèse 1 Exercices d’électronique numérique. Synthèse. 1. Exercice de synthèse : codeur CMI Dans les transmissions numériques par par infra-rouge, télécommandes par exemple, on utilise souvent un code d’émission, dit code ligne tel que chaque bit émis est transmis sur deux périodes de l’horloge. On se propose ici de réaliser un codeur qui transforme des données binaires d’entrée, din, qui arrivent à raison d’un bit toutes les deux périodes d’horloge, en un code ligne, sligne, qui est construit de la façon suivante : si din = '0' : sligne = '0' pendant une période d’horloge puis sligne = '1' pendant une période d’horloge. si din = '1' : sligne = '0' pendant deux périodes d’horloge ou sligne = '1' pendant deux périodes d’horloge, en alternance. L’alternance signifie que le niveau correspondant à un '1' logique pour din change d’une fois à l’autre, que les '1' successifs soient ou non séparés par des '0'. Le chronogramme ci-dessous donne un exemple de transmission : horloge din sligne temps Le codeur qui transforme din en sligne reçoit en entrée l’horloge et din. Il fournit en sortie sligne, retardée d’une période d’horloge, car le plus simple est de concevoir une machine de MOORE. a A combien d’états internes correspond l’émission d’un bit ? b Pourquoi les états correspondant à l’émission des codes pour des valeurs din = ‘1’ successives ne peuvent ils pas être toujours les mêmes ? (évident) Electronique numérique: synthèse 2 c Pourquoi les états correspondant à l’émission des codes pour din = ‘0’ ne peuvent ils pas être toujours les mêmes ? (question plus difficile) d Déduire de l’analyse précédente le nombre d’états que doit posséder le codeur. e Proposer une ébauche de diagramme de transitions. On nommera les états par des noms, par exemple pzero0 et pzero1 pour l’émission d’un zéro, dans l’un des cas analysée au point c. A ce niveau on représentera les transitions importantes, mais pas forcément toutes les transitions possibles. f Le codeur peut, en début d’émission, ne pas être synchronisé correctement. Compléter le diagramme précédent pour garantir qu’il se synchronise aussi vite qu’il peut le faire. g Choisir un codage intelligent pour les états. h Proposer une solution VHDL au problème. i Proposer une solution pour le décodeur. 2. Synthèse : codeur AMI (texte de TP VHDL) 3. Analyse : comparaison de deux réponses à un même problème. Pour réaliser un codeur AMI (la connaissance de ce code n’est pas nécessaire à la compréhension du sujet), deux concepteurs différents proposent deux solutions, toutes deux justes, concrétisées par deux architectures (amidec et amidir) décrivant la même entité. Les résultats de simulation fonctionnelle des deux solutions sont identiques (voir figures en annexe). Les programmes sources sont donnés en annexe. Chacune de ces deux solutions est synthétisée et implémentée dans un circuit programmable AMD 16V8H-25 (tPD = 25 ns, tCO = 12 ns, Fmaxint = 40 MHz). a Pour chaque solution indiquer la structure (pas les équations détaillées) du circuit généré. Préciser soigneusement les natures, combinatoires ou séquentielles, des différents blocs fonctionnels. Déduire de chaque programme la dimension du registre d’état correspondant. Construire les diagrammes de transitions associés. b On teste les circuits réalisée avec une horloge à 40 Mhz. Les résultats des deux tests sont fort différents, comme l’attestent les chronogrammes fournis en annexe. Interprétez quantitativement ces chronogrammes en vous appuyant sur les documents constructeur. Pour faciliter l’analyse on a placé des curseurs à des instants intéressants, et demandé l’affichage de l’écart temporel entre les curseurs. c Conclure. Annexe : programmes entité commune : entity amicod is port( hor, din : in bit ; plusout, moinsout : out bit ); end amicod ; architecture « amidec » : architecture amidec of amicod is type ami is (mzero,pzero,moins,plus) ; signal etat : ami ; begin plusout <= '1' when etat = plus else '0' ; moinsout <= '1' when etat = moins else '0' ; encode : process begin wait until hor = '1' ; Electronique numérique: synthèse 3 case etat is when mzero => if din = '1' then etat <= plus ; end if ; when pzero => if din = '1' then etat <= moins ; end if ; when moins => if din = '1' then etat <= plus ; else etat <= mzero ; end if ; when plus => if din = '1' then etat <= moins ; else etat <= pzero ; end if ; when others => etat <= mzero ; end case ; end process encode ; end amidec ; architecture « amidir » : architecture amidir of amicod is subtype ami is bit_vector(2 downto 0) ; constant mzero : ami := "000" ; constant pzero : ami := "001" ; constant moins : ami := "010" ; constant plus : ami := "100" ; signal etat : ami ; begin plusout <= etat(2) ; moinsout <= etat(1) ; encode : process begin wait until hor = '1' ; case etat is when mzero => if din = '1' then etat <= plus ; end if ; when pzero => if din = '1' then etat <= moins ; end if ; when moins => if din = '1' then etat <= plus ; else etat <= mzero ; end if ; when plus => if din = '1' then etat <= moins ; else etat <= pzero ; end if ; when others => etat <= mzero ; end case ; end process encode ; end amidir ; Electronique numérique: synthèse 4 amidec ou amidir : simulation fonctionnelle du programme source amidir : fonctionnement du circuit amidec : fonctionnement du circuit Electronique numérique: synthèse 5 4. Décodeur de signaux Morse L’alphabet morse est construit à partir de deux motifs : les points et les traits1. Dans une transmission en morse on réalise le point par un ‘1’ logique qui dure une période d’horloge, le trait par un ‘1’ logique qui dure deux périodes d’horloge. Entre deux motifs d’un même caractère le ‘0’ dure une période d’horloge, entre deux caractères le zéro dure au moins deux périodes d’horloge. On veut réaliser un automate qui reçoit en entrée le code morse (des impulsions qui arrivent en série) et qui fournit en sortie trois signaux : un indicateur d’espace entre lettres, un indicateur de point, un indicateur de trait. Ces indicateurs, actifs à ‘1’, durent une période d’horloge. Si le signal d’entrée est à ‘1’ pendant plus de deux périodes d’horloge l’automate se met en position d’erreur, il n’en sort que quand le signal d’entrée revient à ‘0’. morse hor point trait espace sep point trait sig espace erreur Une ébauche de diagramme de transitions est fourni ci-dessus. 1 Expliquez à quoi correspondent les états du diagramme. 2 Compléter le diagramme par des conditions sur les transitions. 3 Dans ce diagramme seuls deux états peuvent durer plus d’une période d’horloge, lesquels ? 4 Combien de bascules sont-elles nécessaires au minimum ? 5 Si on choisit de générer chaque signal de sortie par une sortie de bascule combien faut-il de bascules ? 6 Proposer un programme VHDL qui réalise l’automate. Question subsidiaire : 7 Proposer l’automate qui décode l’alphabet… 1 Pour les amateurs : A . ± N ± . B ± . . . O ±±± C ± . ± . P . ±± . D ± . . Q ±± . ± E . R . ± . F . . ± . S . . . G ±± . T ± H . . . . U . . ± I . . V . . . ± J . ±±± W. ±± K ± . ± X ± . . ± L . ± . . Y ± . ±± M ±± Z ±± . . Electronique numérique: synthèse 6 5. Codeur HDB3 Dans les liaisons téléphoniques numériques à haut débit (2, 8 et 34 Mbits/s) on utilise en Europe un code à trois niveaux dérivé du code AMI (voir poly de travaux pratiques) : • Les bits d’information égaux à ‘1’ sont transmis par des impulsions alternativement positives ou négatives, de façon à maintenir une valeur moyenne nulle pour le signal véhiculé sur la ligne. Les bits égaux à ‘0’ correspondent à une différence de potentiel nulle sur la ligne (« absence » d’impulsion). • L’horloge de réception utilise les transitions du signal reçu pour maintenir une bonne synchronisation ; des longues séquences de ‘0’ risquent donc de créer des glissements entre l’horloge d’émission et l’horloge de réception. Pour remédier à ce problème, toutes les séquences de quatre ‘0’ successifs sont codées par des motifs (suites d’impulsions et de niveaux nuls) qui, pour être différenciés des motifs « normaux », ne respectent pas les règles d’alternance. On parle de violation. • Pour assurer le maintien de la valeur moyenne nulle, deux violations successives doivent être de polarités opposées. Si cette alternance ne correspond pas à la situation « naturelle », c’est un problème de parité du nombre des ‘1’ qui séparent deux groupes successifs de uploads/S4/ synthesesvhd.pdf
Documents similaires










-
24
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Apv 09, 2021
- Catégorie Law / Droit
- Langue French
- Taille du fichier 0.0797MB