Conception et réalisation d'un ASIC de filtrage numérique

Utilisation de l'outil Synopsys

 

 

1. Prise en main de l'outil Synopsys

Le tutorial sur l'utilisation de Synopsys vous permettra de prendre en main les outils de synthèse logique à partir du langage VHDL (design_analyzer, dc_shell) et de simulation VHDL (vhdldbx). Le texte du tutorial contient des questions sur la synthèse logique de composants basiques. Il est recommandé de les faire sérieusement comme application directe du cours. Les principaux résultats doivent être reportés dans le rapport.

 

2. Etude du cahier des charges pour la réalisation de l'ASIC FIR16

Soit le filtre numérique à réponse impulsionnelle finie (FIR) donné par l'équation suivante :

, on prendra N=16.

La vue extérieure du circuit est donnée ci contre. On dispose d'une horloge rapide et d'un reset général asynchrone.

Une spécification détaillée du circuit est donnée ci après.

Le signal x(n) arrive par liaison série selon un protocole défini dans la spécification, le résultat y(n) est également transmis en série. La fréquence de transmission du port série est fournie, celle d’échantillonnage est fixée à 8kHz. Un signal fin indique que l’ASIC a terminé son calcul.

Le cahier des charges fourni sera tout d'abord analysé puis découpé en blocs fonctionnels suivant un modèle synchrone, une partie de ce travail étant faite en TD. Deux équipes par groupe devront se coordonner pour la réalisation du circuit en se partageant le travail : unité de traitement, unité de contrôle, unité mémoire (ROM/RAM) et interface de communication. Cette découpe n’est pas imposée. L'unité de traitement sera elle-même découpé en blocs élémentaires. Les fichiers testbench de simulation VHDL des composants et de simulation du circuit peuvent également être réalisés par une personnes de l’équipe. On étudiera tout particulièrement les problèmes de synchronisation entre blocs (base de temps) afin de rendre l'ASIC sûr de fonctionnement, ainsi que la gestion du débordement dans l'additionneur de l'UT.

Ce projet est l’occasion d’apprendre à travailler en équipe. Pour qu’une équipe fonctionne, il faut optimiser l’efficacité de chacun, et faire en sorte que tout le monde participe à la conception et à la validation. Nommer un chef d’équipe peut aider à un bon avancement. A vous de vous organiser au mieux !

 

3. Synthèse des blocs fonctionnels

Chaque bloc devra être synthétisé, simulé pour être validé. Une simulation logique du circuit sera effectuée. Pour cela, divers fichiers de simulation émulant le comportement de la mémoire ou des entrées/sorties vous seront fournis. Chaque personne (ou binôme) devra faire une simulation du circuit complet en utilisant les blocs conçus par les autres.

Enfin, si vous finissez dans les temps, le placement routage du circuit permettra éventuellement d'effectuer les simulations électriques post-routage nécessaires à la validation complète du fonctionnement de l'ASIC. Celui ci pourra être réalisé en utilisant le logiciel de CAO Cadence.

 

4. Evaluation du projet

Ce projet fait l'objet d'une évaluation théorique résultant d'une moyenne pondérée entre une note individuelle (DS) et une note pratique sur la réalisation du projet intervenant également dans la moyenne pratique. L'évaluation du projet se fera selon les deux critères suivants.

  • Un rapport du travail réalisé respectant les règles de spécifications vues en cours et respectant le plan suivant :

  • Introduction rapide, solution retenue (différences éventuelles avec la solution proposée), point d'avancement, problèmes rencontrés.
  • Principaux résultats du tutorial en synthèse VHDL.
  • Conception et analyse du circuit et des blocs du circuit. Chaque bloc doit être expliqué, conçu et simuler pour valider son fonctionnement. Cette validation est importante car dans une tel circuit il n’est pas envisageable de debogger l’ensemble du circuit. Les performances temporelles de votre circuit (fréquence maximale) ainsi qu’une estimation de la surface sont indispensables.
  • Annexes du rapport, fournir tous les fichiers nécessaires à l'archivage du circuit.

Vous indiquerez clairement le travail de chaque personne au sein de l’équipe dans le rapport.

  • Une évaluation individuelle du comportement pendant les heures de projet.

 

Les points qui seront pris en compte pour la notation du projet sont les suivants :

    • Attitude en projet : 4 pts ;
    • Rapport, description du projet, présentation du travail : 5 pts ;
    • Spécifications VHDL cohérentes : 4 pts ;
    • Réponses aux questions posées : 2 pts ;
    • Simulations : 3 pts ;
    • Surfaces, timing, netlist : 2 pts ;

 

5. Etudes à réaliser

 

7. Planification du projet

   

Séance 1

Séance 2

Séance 3

Séance 4

Séance 5

Séance 6

Tâche 1

Tutorial, prise en main Synopsys, TP synthèse VHDL

   
   
   
   
   
   

Tâche 2

Définition système, définition interface,

Répartition des tâches

   
   
   
   
   
   

Tâche 3

Codage, simulations, synthèse

   
   
   
   
   
   

Tâche 4

Simulation et synthèse globale

   
   
   
   
   
   

Tableau 1 : Planification du projet

Commentaires sur le planning :

    • Les tâches 1 et 2 sont très importantes, elles conditionnent le bon déroulement de l'ensemble du projet. Elles seront réalisées par l'équipe au complet.
    • La tâche 3 verra chaque binôme de l'équipe travailler sur sa partie. Les deux premières séances sont dédiées à la spécification en VHDL synthétisable de votre bloc ainsi qu’à sa simulation. La dernière séance doit vérifier que le bloc fonctionne après synthèse, et qu’il s’interface correctement avec l’environnement.
    • Enfin la tâche 4 sera précédée par une diffusion du travail de chaque personne vers l'équipe. Chaque personne (ou binôme) s'attachera ensuite à réaliser la simulation et la synthèse du système.

Le projet est conçu pour tenir dans le temps prévu. Ce planning doit absolument être respecté pour y arriver. Si vous sentez que vous prenez du retard, n’attendez pas la dernière séance pour le rattraper. Pensez qu’en équipe votre retard pénalise l’ensemble du projet.

 

8. Aides au projet

Vous y trouverez également :

  • les tutoriaux des outils de CAO utilisés,
  • les programmes du cours et les transparents,
  • les TD et TP ainsi que quelques corrections,
  • les fichiers d’aide à la réalisation du projet (fichiers de simulation, quelques exemples, fichiers de configuration),

 

 

Bon projet !

Spécification détaillée de l'ASIC

"FIR16"

 

I Introduction

L'ASIC "FIR16" est destiné à réaliser un filtrage numérique passe-bas de type RIF sur 16 points. Il devra s'interfacer avec un convertisseur Analogique/Numérique 16 bits qui lui communiquera les données nécessaires aux calculs par liaison série, puis lira le résultat. La période d'horloge de fonctionnement sera déterminée en fonction des premiers résultats de synthèse du circuit, la contrainte de temps est liée à une fréquence d’échantillonnage de 8KHz. Son rôle principal sera de calculer l’équation (1).

Ses principales fonctions sont : interfaçage série avec le CAN, Unité de Traitement en virgule fixe avec gestion du débordement (Multiplieur, Additionneur), Unité de Contrôle dédiée, et mémorisation interne des coefficients (ROM) et du signal (RAM).

N=16 (1)

II Environnement du circuit

Figure 1. Environnement du circuit sur la carte

 

 

III Organisation générale du circuit

Interfaces externes

    • Liaison série définie par le CAN/TLC de Texas Instrument 

    • Dx : entrée de donnée série, Dr : sortie de donnée série
    • Ioclk : entrée d’horloge de la liaison série (2.592 MHz, 385.8 ns)
    • Fsr : signal restant à l’état bas pendant la transmission des 16 bits d’un échantillon
    • Eodr : signal passant à l’état bas à la fin de la transmission des 16 bits d’un échantillon et utilisé comme signal de début de calcul

    • Signal de fin de calcul du filtrage : fin
    • Signal d'horloge externe : clk
    • Signal de reset général (actif bas) : rstb

Principales fonctions

    • Interfaçage série avec le CAN,
    • Unité de Traitement en virgule fixe et double précision avec gestion du débordement (multiplieur câblé, additionneur),
    • Unité de Contrôle dédiée et spécifiée sous forme de machine d’état,
    • Mémorisation interne des coefficients (ROM) et du signal (RAM) dont il faut gérer l’évolution.

 

IV Fonctions réalisées

Fonctions d’entrée sortie

Le protocole de communication avec le CAN suit le chronogramme donné à la figure suivante. Les signaux Fsr et Eodr auront une fréquence de fonctionnement de 8kHz. Le signal ShiftClk est de fréquence 2.592 MHz.

Coefficients du filtre

Coefficients

Hexadécimale

Décimale

Valeur effective

H(0) et H(15)

17D

381

0.00581

H(1) et H(14)

4A9

1193

0.0182

H(2) et H(13)

180

384

0.00586

H(3) et H(12)

F621

-2527

-0.0385

H(4) et H(11)

F0E6

-3866

-0.06

H(5) et H(10)

59E

1438

0.022

H(6) et H(9)

32FB

13051

0.2

H(7) et H(8)

5A1B

23067

0.35

Remarque : la somme des coefficients est supérieure à 1, il faudra donc gérer le débordement qui pourra avoir lieu à la fois dans les simulations de réponse impulsionnelle et réponse indicielle.

 

Autres fonctions

A spécifier ultérieurement.

 

V Caractéristiques matérielles

Interface physique

    • Packaging : PLCC 68
    • Brochage : non encore défini
    • Technologie des E/S : CMOS

Chronogrammes et timings

    • Chronogramme de lecture / écriture de l'ASIC : voir figure 2.
    • Timing à respecter : les cycles de lecture/écriture des données se répètent à la cadence d’échantillonnage soit 125 us. Cela signifie que les échantillons x(n) arrivent à cette cadence, et que le signal filtré de sortie y(n) doit être envoyé au Can à cette même cadence.

 

VI Interface logicielle

Pas de signification dans notre cas