Corrections des exercices d'architectures spécialisées, Exercices de Concepts de physique
Kilian_Te
Kilian_Te29 January 2014

Corrections des exercices d'architectures spécialisées, Exercices de Concepts de physique

PDF (535.6 KB)
5 pages
169Numéro de visites
Description
Exercices de sciences physiques, corrections des exercices d'architectures spécialisées. Les principaux thèmes abordés sont les suivants: Filtrage récursif, Synthèse d’architecture de la multiplication complexe, simulati...
20points
Points de téléchargement necessaire pour télécharger
ce document
Télécharger le document
Aperçu3 pages / 5
Ceci c'est un aperçu avant impression
Chercher dans l'extrait du document
Ceci c'est un aperçu avant impression
Chercher dans l'extrait du document
Aperçu avant impression terminé
Chercher dans l'extrait du document
Ceci c'est un aperçu avant impression
Chercher dans l'extrait du document
Ceci c'est un aperçu avant impression
Chercher dans l'extrait du document
Aperçu avant impression terminé
Chercher dans l'extrait du document
CORRECTIONS TD SOC.dvi

ENSSAT EII3/DEA STIR

Corrections TD Architectures Spécialisées

Olivier Sentieys

23 novembre 2009

1. Filtrage récursif

On s’intéresse à la mise en œuvre d’un algorithme de traitement du signal récursif, le filtre RII trans- verse :

y(n) =

[

N ∑

i=0

a(i).x(n − i)

]

+

[

P ∑

i=1

b(i).y(n − i)

]

1. On désire mettre en œuvre les calculs de ce filtre sur une architecture pipeline spécifique. Celle-ci intègre des registres, multiplieurs et additionneurs. Représentez un graphe flot de données de ce filtre lorsque N = P = 4. y(n) = [a(0).x(n) + a(1).x(n − 1) + a(2).x(n − 2) + a(3).x(n − 3) + a(4).x(n − 4)]

+[b(1).y(n − 1) + b(2).y(n − 2) + b(3).y(n − 3) + b(4).y(n − 4)] Les évaluations dans les crochets se faisant de gauche à droite, le graphe flot de signal est celui de la figure 1. 2. Sur le graphe précédent, indiquez le temps Ti qui sépare l’utilisation de chaque variable y(n− i), de la fin du calcul de y(n) (pour une itération du filtre). Chaque temps sera donné en fonction de Tadd et Tmult, temps de fonctionnement des additionneurs et des multiplieurs. Les boucles sont au nombre de 4. Chaque boucle part de y(n), passe par 1, 2, 3 ou 4 éléments de retard z−1, avant de retourner au point y(n). Chaque boucle i possède un temps de calcul Ti valant : T1 = Tmult+ 4.Tadd T2 = T1 T3 = Tmult+ 3.Tadd T4 = Tmult+ 2.Tadd

3. Trouvez la fréquence maximale d’échantillonnage du filtre. Le nombre de période d’échantillonnage séparant y(n) de y(n − i) est i. En effet, y(n) représente la valeur du signal y(t) échantillonné à l’instant t = nT , où T est la période d’échantillonnage. Par conséquent le temps de calcul Ti doit être inférieur à i.T . On a donc : T i 6 i.T,∀i = 1 . . . P T > Ti

i ,∀i = 1 . . . P ⇒ T > maxi[

Ti

i ]

Remarque : Fe 6 mini i

Ti

On retrouve ici la notion de boucle critique vue en cours, où toute boucle dans le SFG peut limiter le fonctionnement en pipeline. Tbc = T1/1. TeMIN = Tmult+ 4Tadd = 12ns

4. Quel est le retard Td en fonction de Tmult et Tadd qui sépare l’acquisition de x(n) et le calcul de y(n) ; on donnera ce retard en fonction de N et P . Indiquez en quoi ce retard peut être gênant. Le retard (ou delay, ou latence dans le cas d’architectures pipelines) est le temps séparant l’acquisition de x(n) de la production du résultat y(n) correspondant. Dans notre cas il s’agit du chemin critique du SFG entre x(n) et y(n), c’est à dire :

1

docsity.com

x(n)

z-1 x

x

x

x

+ + +

z-1

z-1

z-1 x

+ + y(n)

z-1

x

x

x

x

+ + +

z-1

z-1

z-1 y(n-1)

y(n-2)

y(n-3)

y(n-4)

y(n)

Figure 1 – Question 1 du problème 1

Td = Tmult+ (N + 1).Tadd Ce retard peut devenir gênant si il est très supérieur à Te. Il peut par exemple devenir audible dans le cas d’un signal de parole, engendrer un dysfonctionnement dans le cas d’un système asservi, . . . 5. On calcule les produits de convolution en faisant décroître le indices, c’est à dire en commençant les accumulations sur les échantillons d’indice les plus anciens. Que deviennent dans ce cas Femax et Td. y(n) = [a(4).x(n − 4) + a(3).x(n − 3) + a(2).x(n − 2) + a(1).x(n − 1) + a(0).x(n)]

+[b(4).y(n − 4) + b(3).y(n − 3) + b(2).y(n − 2) + b(1).y(n − 1)] TeMIN = Tmult+ 2.Tadd = 8ns Td = Tmult+ 2.Tadd = 8ns

6. Pour N = P = 4, et Tmult = 4ns, Tadd = 2ns, indiquez l’ordonnancement du graphe aboutissant à une architecture pipeline à coût minimum pour une période d’échantillonnage de 12ns. Le nombre de multiplieurs doit être >

Nmult×Tmult

Te

= ⌈

9×4

12

= 3

Le nombre d’additionneurs doit être > ⌈

Nadd×Tadd

Te

= ⌈

8×2

12

= 2 Un premier ordonnancement est représenté figure 3. On se rend compte que cet ordonnancement aboutit sur une impossibilité car la boucle critique est calculée en un temps supérieur à Te = 12ns. Par conséquent, il est nécessaire d’ordonnancer la boucle en priorité comme sur la figure 4.

4. Synthèse d’architecture de la multiplication complexe

1. Tcc = Tmult + Tadd = 90 ns

2. Il faut au minimum 1 additionneur et 1 multiplieur. L’ordonnancement est donné à la figure 3

3. L’architecture obtenue contient les 2 opérateurs précités, ainsi que 5 registres (ou 4 registres et 1 multiplexeur).

2

docsity.com

x(n)

z-1 x

x

x

x

+ + +

z-1

z-1

z-1 x

+ + y(n)

z-1

x

x

x

x

+ + +

z-1

z-1

z-1

Figure 2 – Question 5 du problème 1

4. Si on impose un seul bus (ce qui est le cas général), les chargements des registres en tête du multiplieur ne peuvent se faire qu’à la cadence de 1 par cycle. Ceci impose maintenant que une multiplication prend 2 cycles. Cependant, en utilisant une fréquence d’horloge de 30 ns, et en modifiant légèrement l’ordonnancement, on peut maintenir la contrainte imposée de 240 ns.

5. Le VHDL comportemental pourrait être le suivant :

-- Multiplication complexe --

entity multiplication_complexe is

port (A,B,C,D:in integer; Re,Im:out integer);

end multiplication_complexe;

architecture behavioral of multiplication_complexe is

constant latency : time := 240 ns;

begin

process

begin

Re <= a * c - b * d;

Im <= a * d + b * c;

Wait for latency;

end process ;

end behavioral ;

6. Le code VHDL au niveau RTL est bien entendu beaucoup plus verbeux . Il faudrait décrire chaque opérateur (add, mult, registre, ...), les interconnecter, et enfin décrire le contrôleur sous forme de machine d’état. Le code comporterait ici 550 lignes si on utilisait la synthèse comportementale pour le générer ... On a donc évidement un gain important sur la simplicité de la spécification

3

docsity.com

x

x

x

x

x

x

x

x

x

+ + + ++ +

+ + +

0 2 4 6 8 10 12 14 16 18 20

z

x x x

x x x

x

+ + ++ +

+

Figure 3 – Question 6 du problème 1

x

x

x

x

x

x

x

+ + + ++ +

+ + +

0 2 4 6 8 10 12 14 16 18 20

z�

x

x

Figure 4 – Question 6 du problème 1 (suite)

4

docsity.com

-x

x +x

x

Re

Im

-x x

+x x

Figure 5 – Graphe flot de données de la multiplication complexe et son ordonnancement

impliquant un gain de conception et de simulation.

5

docsity.com

commentaires (0)
Aucun commentaire n'a été pas fait
Écrire ton premier commentaire
Ceci c'est un aperçu avant impression
Chercher dans l'extrait du document
Docsity n'est pas optimisée pour le navigateur que vous utilisez. Passez à Google Chrome, Firefox, Internet Explorer ou Safari 9+! Téléchargez Google Chrome