| 31 | La bibliothèque de cellules utilisée dans ce TP est la bibliothèque SxLib, développée par le laboratoire LIP6, |
| 32 | pour la chaîne de cCAO ''ALLIANCE''. La particularité de cette bibliothèque est d'être "portable" : le dessin des |
| 33 | masques de fabrication (vue ''physique'') utilise une technique de dessin ''symbolique'', qui permet d'utiliser |
| 34 | cette bibliothèque de cellules pour n'importe quel procédé de fabrication CMOS possédant au moins trois niveaux |
| 35 | de métallisation. |
| 36 | |
| 37 | Evidemment les caractéristiques physiques (surface occupée, temps de propagation) dépendent du procédé de |
| 38 | fabrication. Les cellules que vous utiliserez dans ce TP ont été caractérisées pour un procédé de fabrication |
| 39 | CMOS 0.35micron. |
| 40 | |
| 41 | La liste des cellules disponibles dans la bibliothèque SxLib peut être obtenue en consultant la page man : |
| 42 | {{{ |
| 43 | >man sxlib |
| 44 | }}} |
| 45 | |
| 46 | Comme vous |
| 48 | |
| 49 | == B1) schéma du bloc adder == |
| 50 | |
| 51 | Un additionneur 4 bits peut être réalisé en interconnectant 4 additionneurs 1 bit suivant le schéma ci-dessous. |
| 52 | |
| 53 | Un additionneur 1 bit (encore appelé ''Full Adder'') possède 3 entrées a,b,c, et deux sorties s et r. |
| 54 | La table de vérité est définie par le tableau ci-dessous. Le bit de "somme" s vaut 1 lorsque le nombre de bits d'entrée égal à 1 est impair. Le bit de "report" est égal à 1 lorsqu'au moins deux bits d'entrée valent 1. |
| 55 | |
| 56 | || a || b || c || r || s || |
| 57 | || 0 || 0 || 0 || 0 || 0 || |
| 58 | || 0 || 0 || 1 || 0 || 1 || |
| 59 | || 0 || 1 || 0 || 0 || 1 || |
| 60 | || 0 || 1 || 1 || 1 || 0 || |
| 61 | || 1 || 0 || 0 || 0 || 1 || |
| 62 | || 1 || 0 || 1 || 1 || 0 || |
| 63 | || 1 || 1 || 0 || 1 || 0 || |
| 64 | || 1 || 1 || 1 || 1 || 1 || |
| 65 | |
| 66 | Ceci donne les expressions suivantes : |
| 67 | * s <= a XOR b XOR c |
| 68 | * r <= (a AND b) OR (a AND c) OR (b AND c) |
| 69 | |
| 70 | Il existe plusieurs schémas possibles pour réaliser un Full Adder. |
| 71 | Nous vous proposons d'utiliser le schéma ci-dessous, qui utilise les deux cellules na2_x1 et nxr2_x1. |
| 72 | |
| 73 | |
| 74 | Il faut donc écrire explicitement, en langage VHDL structurel, les deux fichiers adder.vst, et half_adder.vst, |
| 75 | correspondant aux deux schémas ci-dessus. |
| 76 | |
| 77 | == B2) schéma en portes S |
| 78 | |
| 79 | |
| 80 | |
| 81 | |
| 82 | |