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
Principales fonctions
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
Chronogrammes et timings
VI Interface logicielle
Pas de signification dans notre cas