wiki:ToolsCourseTp7

Version 51 (modified by alain, 17 years ago) (diff)

--

TP7: Routage manuel "overcell"

1 Objectif

Nous avons vu dans le TP6 comment dessiner une cellule précaractérisée. Le but de ce TP7 est de réaliser le dessin des masques d'un bloc combinatoire résultant de l'intreconnexion d'une quinzaine de cellules de la biblioyhèque SXLIB.

On va donc effectuer à la main (c'est à dire en utilisant l'éditeur interactif graal), le placement et le routage de cet opérateur, pour mieux comprendre les problèmes que doivent résoudre les outils de placement/routage automatiques.

2 Spécification fonctionnelle

On souhaite réaliser le décodeur 3 vers 4 tel que décrit ci-dessous.

No image "compteur.jpg" attached to ToolsCourseTp7

La sortie Zi prend la valeur 1 quand le nombre de bits d'entrée ayant la valeur 1 est égal à i. Les 3 autres sorties prennent la valeur 0.

Les équations sont les suivantes:

  • Z0=/A./B/./C
  • Z1=(A./B./C)+(/A.B./C)+(/A./B/.C)
  • Z2= (A.B./C) +(A./B.C)+ (/A.B.C)
  • Z3=A.B.C

De ces équations , on déduit le schéma en portes logiques inverseuses No image "schema.jpg" attached to ToolsCourseTp7

Le bloc à raliser contient donc 10 portes NAND3 et 5 inverseurs. Regardons plus précisément les caractéristiques de chaque cellule :

  • La cellule NAND3 a une largeur de 5 pitchs.

Les 3 signaux d'entrée E1, E2 et E3 sont accessibles sur 6 pistes de routage. Le signal de sortie S est accessible sur 7 pistes de routage. No image "nand3.jpg" attached to ToolsCourseTp7

  • La cellule INVERSEUR a une largeur de 3 pitchs.

Le signal d'entrée E est accessible sur 6 pistes de routage. Le signal de sortie S est accessible sur 7 pistes de routage.

No image "tp3.jpg" attached to ToolsCourseTp7

On propose le placement ci-dessous pour cet opérateur, mais vous pouvez choisir un autre placement si vous le souhaitez :

No image "place.jpg" attached to ToolsCourseTp7

Le dessin ci-dessous illustre un exemple de routage "overcell" pour la génération d'un signal de sortie No image "routage.jpg" attached to ToolsCourseTp7

3 Saisie du schéma

Utiliser le langage STRATUS pour décrire le schéma proposé ci dessus, et générer le fichier 'decodeur'.vst correspondant à la description structurelle VHDL de cet opérateur. Valider ce schéma en écrivant quelques stimuli, et en simulant sous asimut.

4 Placement / Routage

Saisir sous graal le dessin du bloc decoder en instanciant les 5 portes inv_x1 et les 10 portes na3_x1. Dessiner les fils de routage sous graal, puis vérifier l'absence de violation des règles de dessin. le routage "overcell" en lançant le vérificateur de règles de dessin druc sous graal.

Pour que cette vérification soit significative, il faut préalablement "mettre à plat" le bloc decoder, en utilisant la commande real flat.

5 Validation du routage

Extraire la netlist du bloc decoder au format .al avec l'outil COUGAR, mais sans descendre au niveau des transistors : On veut obtenir une net-list de cellules, et non une net-list de transistors.

Vérifier que les deux net-lists définies par les fichiers decoder.vst et decoder.al sont isomorphes en utilisant l'outil lvx.

Attachments (7)

Download all attachments as: .zip