I Introduction
L'ASIC "Lancer de rayons" est destiné a accélérer l'algorithme de lancer de rayons pour la synthèse d'image. Il devra s'interfacer avec un Transputer T800 qui lui communiquera les données nécessaires aux calculs, puis lira les résultats. Son rôle principal sera de calculer une intersection entre une sphère et un rayon lancé. Ses principales fonctions sont : interfaçage avec le T800, Unité de Traitement (Multiplieur, Additionneur, Comparaison, Racine Carrée), et Unité de Contrôle dédiée. La période d'horloge de fonctionnement ainsi que la contrainte de temps sont à déterminer.II Environnement du circuit
Fig 1. Vue extérieure de l'ASIC |
Fig 2. Environnement du circuit sur la carte |
III Organisation générale du circuit
- Bus de données bidirectionnel 32 bits (D0..D31)
- Bus d'adresse pour la sélection des registres internes 3 bits (A0..A2)
- Signal de contrôle de sélection de boîtier CS (actif bas)
- Signal de contrôle de sélection de sens de transfert R/W (R/W = 1 lecture; R/W = 0 écriture)
- Signal d'horloge externe
- Signal de reset général (actif bas)
IV Fonctions réalisées
Dans le chapitre VI, l'algorithme de lancer de rayon à implanter sur l'ASIC est fourni.Cet algorithme contient 7 *, 12 +/-, 1 racine carrée, 1 calcul de minimum.
Une étude précise de la fonction de racine carrée devra être faite.
Les données externes sont codées sur 8 bits (ou 12 bits). Le chemin de données interne sera taillé pour une minimisation de la surface de silicium sans toutefois dépasser 16 bits (ou 24 bits).
La fonction de décodage sera déduite
du chapitre VI.
Le bloc RF (Register file) devra mémoriser
les données d'E/S à échanger avec l'extérieur.
Les autres données intermédiaires de calculs seront intégrées
dans l'UT.
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 à spécifier.
- Timing à respecter : les cycles de lecture/écriture des données se répètent toutes les us.
VI Interface logicielle
4 registres internes 32 bits sont accessibles de l'extérieur. Ils sont groupés par paquets de 8 bits selon le principe suivant :Adresse Coté
Transputer |
Contenu
(MSB..LSB) |
Taille réelle | Sens |
---|---|---|---|
@2000 | Px,Py,Pz | 24 bits | Écriture |
@2001 | Dx, Dy, Dz | 24 bits | Écriture |
@2002 | Vx, Vy, Vz, r2 | 32 bits | Écriture |
@2003 | lambda | 16 bits | Lecture |
Écrire (0, 0, Pz, 0, 2000) ; Pour tous les pixels Pour tous les objets Écrire (Dx, Dy, Dz, 0, 2001) ; Écrire (Vx, Vy, Vz, r2, 2002) ; Lire (lambda, 2003) ; Fait Fait
La deuxième écriture déclenchera le départ de l'UC.
ENTITY lancer_de_rayon
IS
PORT (Px,Py,Pz:IN INTEGER; -- Coordonnes de l'observation Dx,Dy,Dz:IN INTEGER; -- Vecteur de rayon Vx,Vy,Vz:IN INTEGER; -- Coordonnes du centre de la sphere Rcarre:IN INTEGER; -- Carre du rayon de la sphere lambda:OUT INTEGER ); -- Vecteur de direction calculé END lancer_de_rayon; ARCHITECTURE behavioral OF lancer_de_rayon IS
CONSTANT Tacces : TIME := 150 ns;
Y := 0 - Vy; Z := Pz - Vz;
B := X * Dx + Y * Dy + Z * Dz;
Delta := B * B - C;
RDelta := SQRINT(Delta);
WAIT FOR tmp; END behavioral ; |
---|
VII Conduite de projet
Dans ce paragraphe, nous vous donnons quelques indications concernant le déroulement du projet.Ce qui vous est fournis ...
- d'un package définissant les constantes, types et fonctions utilisables pour ce projet ;
- une bibliothèque d'opérateurs (multiplieur, additionneur, additionneur/soustracteur, registre, etc) permettant de construire l'unité de traitement ; ;
- un modèle d'une machine d'états ;
- la trame d'une entite de test.
Planning et travail en équipe
Le projet se déroule en équipe de 3 binômes. Le découpage du travail sera réalisé de la façon suivante :
- réalisation de l'unité de traitement (dont le composant racine et le format de codage). Il s'agit ici de réaliser une unioté de traitement de facon structurelle (spécification du schéma de l'unité de traitement) ;
- réalisation de l'unité de contrôle. Cette unité sera réalisée selon le modèle composé de 2 logiques combinatoire et d'un registre d'états. On veillera a respecter strupuleusement ce modèle afin d'aboutir à une synthèse correcte ;
- réalisation de l'interface. Cette interface sera réalisée à partir d'un assemblage de registres que l'on pilotera à partir d'un décodeur ;
TP | Séance 1 | Séance 2 | Séance 3 | Séance 4 | Séance 5 | Séance 6 | Séance 7 | ||
---|---|---|---|---|---|---|---|---|---|
Tâche 1 | Tutorial, prise en main Synopsys | ||||||||
Tâche 2 | TD sur machine
|
||||||||
Tâche 3 | Description comportementale de l'ASIC Description du TestBench |
||||||||
Tâche 4 | Répartition des taches dans l'équipe
|
||||||||
Tâche 5 | Synthèse de chaque partie de facon indépendante | ||||||||
Tâche 6 | Mise en commun et synthese globale |
- La tâche 3 est très importante, elle vous permettra de bien comprendre le foncionnement global du ciruit, et vous permettra d'avancer plus vite lors du développement de votre partie. De plus, cette tache vous permettra de vous familiariser avec le langage VHDL.
- La tâche 4 ne doit pas être prise à la légère. De la décomposition du travail de chaque binome dans l'équipe découlera la cohérence globale du projet et du bon fonctionnement final. Cette partie doit notamment permettre de spécifier clairement l'ensemble des interfaces entre les différentes unités du circuit.
- Enfin la tâche6 sera précédée par une diffusion du travail de chaque binôme vers l'équipe. Chaque binôme s'attachera ensuite à réaliser la simulation et la synthèse du système.
Notation
- attitude en projet : 4 pts ;
- rapport, description du projet, présentation du travail : 5 pts ;
- spécifications VHDL cohérentes : 6 pts ;
- simulations : 3 pts ;
- surfaces, timing, netlist : 2 pts.