wiki:conventions de dénomination des cellules et signaux

Convention de dénomination des cellules et signaux

Cette page est une proposition et une discussion pour l'adoption d'une convention de dénomination des cellules de nos bibliothèques. Cette discussion est ouverte et ne souhaite en aucun cas imposer quelque chose.

Cellules

Note préliminaire

Toutes les cellules, sans exception, doivent debutées par une minuscule. Idéalement, le nom d'une cellule ne comportera que des charactères minuscules. Bien que restrictive, cette démarche se justifie par le fait que si une description fonctionelle de la cellule est faite, surtout en VHDL, cadence se comporte de facon étrange car le VHDL n'est pas sensible à la casse alors que virtuoso l'est.

Fonction principale

Donner d'abord la fonction principale de la cellule comme par exemple :

  • compteur : counter
  • lfsr
  • registre à décalage : shift register

Cela permet, lorsque les cellules sont classées par ordre alphabétique, ce qui est le comportement par défaut du Library Manager LMGR, de voir toutes les cellules avec la même fonction.

Par exemple, dans le cas des compteurs :

  • counter_a;
  • counter_b;
  • counter_c.

Particularité de la fonction principale

On donne ensuite la spécificité de la cellule. Dans le cas d'un compteur, on peut avoir des compteurs binaires, gray, bcd, circulaires, etc.

  • counter_binary;
  • counter_gray;
  • counter_bcd;

Ceci permet de voir tous les compteurs, d'un seul coup d'oeil dans le LMGR.

Taille

On pourra ensuite ajouter la taille en bit de la cellule lorsque l'information est pertinente. Cependant, cette information peut être redondante avec le nombre d'entrées ou de sorties.

Par exemple, dans le cas d'un compteur, il peut être intéressant de connaitre le nombre de bit sur lequel il compte. Cependant est aussi contenue dans le nombre de sorties.

Dans le cas d'un LFSR, la largeur est une donnée pertinente puisqu'elle n'est pas contenue dans le nombre d'entrées ou de sorties.

Pour ce faire, on pourra accoler un suffixe du type s pour size suivi du nombre de bit : lsfr_zero_included_s16.

Nombre d'entrées

Il peut aussi être utile de renseigner le nombre d'entrée du circuit, encore une fois, si cette information n'est pas redondante. Par exemple, dans le cas d'un ou exclusif réduit, le nombre d'entrée est une information pertinente. On pourra accoler en suffixe la lettre i suivi du nombre d'entrées : xor_reduced_i8.

Nombre de sorties

La même démarche est appliquée pour les sorties, mais cette fois avec un o : cell_o8.

Sortance

Sur les cellules de la bibliothèque CORELIB, une information est donnée sur la sortance des cellules, matérialisée par un x suivi d'une lettre. On pourra donc utiliser la même démarche pour donner une information sur la sortance, conformément à celle utilisée par la bibliothèque CORELIB :

  • x1 <=> 1 x 2.55 x L_min
  • x2 <=> 2 x 2.55 x L_min
  • ...

La sortance est une information qui a peut etre plus de sens pour les cellules faites "à la main"...

Exemples de nom de cellules

  • counter_gray_o16x0 : compteur gray 16 bits;
  • lfsr_zero_included_s8x16 : lfsr avec état zéro inclus 8 bits et sortance de 16;
  • xor_reduced_i4x2 : ou exclusif réduit avec 4 entrées et une sortance de 2.

Signaux

Pour les signaux, je propose que nous utilisions les suffixes plutôt que des préfixes. La raison tient au fait que le classement naturel du nom des signaux est alphabétique. Par conséquent, des signaux, par différentiels, seront classés proche les uns des autres :

  • dout_m & dout_p pour une paire différentielle;
  • reset & reset_n pour un signal reset et son complément.

Je propose aussi d'éviter le CamelCase qui n'est pas évident à lire lorsque le nom des signaux est long.

Je propose aussi d'éviter les abréviations, surtout lorsqu'elles sont ambigües.

Last modified 8 years ago Last modified on Dec 17, 2015, 2:26:39 PM