Examen de synthèse

13
INF3500 examen final automne 2014 Polytechnique Montréal page 1/13 Département de génie informatique et génie logiciel INF3500 : Conception et réalisation de systèmes numériques Examen final Automne 2014 Durée: 2h30 Pondération: 50% Documentation: Une feuille recto verso 8.5”×11” ou A4 permise. Calculatrice: Programmable permise. Directives particulières: Ordinateurs, tablettes, téléphones, caméras et autres appareils mobiles interdits. Répondre à toutes les questions, la valeur de chaque question est indiquée. Répondre sur le questionnaire et le remettre. Ne posez pas de questions. En cas de doute sur le sens d’une question, énoncez clairement toute supposition que vous faites.

Transcript of Examen de synthèse

Page 1: Examen de synthèse

INF3500 – examen final – automne 2014

Polytechnique Montréal page 1/13 Département de génie informatique et génie logiciel

INF3500 : Conception et réalisation de systèmes numériques

Examen final

Automne 2014

Durée: 2h30

Pondération: 50%

Documentation: Une feuille recto verso 8.5”×11” ou A4 permise.

Calculatrice: Programmable permise.

Directives particulières:

Ordinateurs, tablettes, téléphones, caméras et autres appareils mobiles interdits.

Répondre à toutes les questions, la valeur de chaque question est indiquée.

Répondre sur le questionnaire et le remettre.

Ne posez pas de questions. En cas de doute sur le sens d’une question, énoncez clairement toute

supposition que vous faites.

Page 2: Examen de synthèse

INF3500 – examen final – automne 2014

Polytechnique Montréal page 2/13 Département de génie informatique et génie logiciel

Question 1. (6 points)

L’unité de contrôle d’une version simplifiée du processeur PolyRISC comporte une unité de branchement.

Elle contribue à réaliser les instructions du type suivant : si (RA condition RB) goto (CP + valeur).

Elle a trois entrées et une sortie. Sa sortie doit être vraie quand il faut effectuer un branchement.

L’unité arithmétique et logique du processeur calcule la différence RA – RB et fournit les signaux Z et N à

l’unité de branchement. L’entrée Z indique si la différence est 0 et l’entrée N indique si la différence est

négative. L’entrée condition, exprimée avec 3 bits (un entier de 0 à 7) spécifie quand il faut brancher :

0: si RA = RB, 1: si RA != RB, 2: si RA < RB, 3: si RA > RB, 4: si RA <= RB, 5: si RA >= RB

6: brancher, indépendamment de Z et N, 7: ne pas brancher, indépendamment de Z et N

Donnez une architecture, en VHDL synthétisable, d’un module combinatoire qui correspond à ces spéci-

fications et à la définition d’entité suivante.

library ieee; use ieee.std_logic_1164.all;

entity uniteBranchement is

port(

Z, N : in std_logic;

condition: in integer range 0 to 7;

brancher: out std_logic

);

end uniteBranchement;

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

brancher

condition

Z

N

/

3

Page 3: Examen de synthèse

INF3500 – examen final – automne 2014

Polytechnique Montréal page 3/13 Département de génie informatique et génie logiciel

Question 2. (6 points)

Considérez le code VHDL et le modèle de FPGA suivants. Montrez, sur le modèle du FPGA, un résultat

possible de la synthèse et de l’implémentation de ce code. Indiquez directement sur le dessin où chaque

signal et port de sortie se situe ainsi que les interconnexions entre les blocs. Les interconnexions peuvent

contourner les blocs. Indiquez aussi la fonction logique réalisée par chaque LUT que vous utilisez. Res-

pectez l’assignation donnée pour les ports d’entrée.

library ieee;

use ieee.std_logic_1164.all;

entity module10 is

port (

clk, A, B, C, D, E: in std_logic;

X, Y, Z: out std_logic

);

end module10;

architecture arch of module10 is

signal F, G, H : std_logic;

begin

X <= not(A and B and E);

Y <= G xor H;

process(clk) is

begin

if rising_edge(CLK) then

F <= A and B and C and D;

G <= F xor E;

H <= B or C or D;

end if;

end process;

process(A, B, C)

begin

if A = '1' then

Z <= B or C;

else

Z <= B and C;

end if;

end process;

end arch;

Table de

conversion

(LUT)

D

CLK

QBloc entrée/

sortie

(IOB)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

A

Bloc entrée/

sortie

(IOB)

D

CLK

Q

B

Bloc entrée/

sortie

(IOB)

D

CLK

Q

C

Bloc entrée/

sortie

(IOB)

D

CLK

Q

D

Bloc entrée/

sortie

(IOB)

D

CLK

Q

E

Bloc entrée/

sortie

(IOB)

D

CLK

Q

Bloc entrée/

sortie

(IOB)

D

CLK

Q

Bloc entrée/

sortie

(IOB)

D

CLK

Q

Bloc entrée/

sortie

(IOB)

D

CLK

Q

Bloc entrée/

sortie

(IOB)

D

CLK

Q

Page 4: Examen de synthèse

INF3500 – examen final – automne 2014

Polytechnique Montréal page 4/13 Département de génie informatique et génie logiciel

Question 3. (8 points)

Aidez le père Noël à calculer la valeur de Q = N / D, où N est le nombre de cadeaux fabriqués et D est le

nombre d’enfants sages, par la méthode de la division par la réciproque. On peut calculer la réciproque de

D au besoin puis effectuer le calcul Q = N × (1 / D).

La méthode de Newton-Raphson permet de calculer la réciproque d’un nombre D par un processus itéra-

tif. À chaque itération, on calcule Xk+1 = Xk + Xk × (1 – D × Xk). Si D est dans l’intervalle [0.5, 1] (suite à

une normalisation préalable) et avec X0 = 1, la valeur de Xk converge vers D-1 avec une précision accep-

table en 4 itérations. On peut décrire l’algorithme avec les micro-opérations suivantes où Din, N et init

sont des ports d’entrée du circuit, et que fini et Qout sont des ports de sortie du circuit. On suppose que

la valeur Din est dans l’intervalle [0.5, 1]. Quand fini prend la valeur 1, la sortie Qout indique le nombre

de cadeaux par enfant sage. (On suppose qu’on peut avoir des fractions de cadeaux par enfant.)

init : k ← 0; init’ ET k != 4: k ← k + 1;

init : X ← 1; init’ ET k != 4: X ← X + X * (1 – D * X);

init : fini ← 0; init’ ET k = 4 : fini ← 1

init : D ← Din;

Qout ← N * X

Donnez le diagramme d’un chemin des données correspondant à ces micro-opérations.

Page 5: Examen de synthèse

INF3500 – examen final – automne 2014

Polytechnique Montréal page 5/13 Département de génie informatique et génie logiciel

Question 4. (7 points)

Considérez le code VHDL suivant pour un arbitre de bus. L’arbitre permet à trois processeurs de partager

un bus unique. Quand un processeur veut avoir accès au bus, il active un des trois signaux de contrôle r

(pour « requête »). Pour informer un des processeurs qu’il peut se servir du bus, l’arbitre utilise l’un des

trois signaux de contrôle g (pour « go »). Quand le processeur correspondant a terminé du bus, il en in-

forme l’arbitre de bus en désactivant son signal de requête r.

-- tiré de S. Brown & Z. Vranesic,

-- Fund. of Digital Logic, McGraw-Hill, 2005.

LIBRARY ieee;

USE ieee.std_logic_1164.all;

ENTITY arbiter IS

PORT (

Clock, Resetn : IN STD_LOGIC ;

r : IN STD_LOGIC_VECTOR(1 TO 3);

g : OUT STD_LOGIC_VECTOR(1 TO 3)

) ;

END arbiter ;

ARCHITECTURE Behavior OF arbiter IS

TYPE State_type IS (Idle, gnt1, gnt2, gnt3);

SIGNAL y : State_type ;

BEGIN

g(1) <= '1' WHEN y = gnt1 ELSE '0';

g(2) <= '1' WHEN y = gnt2 ELSE '0';

g(3) <= '1' WHEN y = gnt3 ELSE '0';

PROCESS ( Resetn, Clock )

BEGIN

IF Resetn = '0' THEN y <= Idle;

ELSIF (Clock'EVENT AND Clock = '1') THEN

CASE y IS

WHEN Idle =>

IF r(1) = '1' THEN y <= gnt1;

ELSIF r(2) = '1' THEN y <= gnt2;

ELSIF r(3) = '1' THEN y <= gnt3;

ELSE y <= Idle ;

END IF ;

WHEN gnt1 =>

IF r(1) = '1' THEN y <= gnt1;

ELSE y <= Idle ;

END IF ;

WHEN gnt2 =>

IF r(2) = '1' THEN y <= gnt2;

ELSE y <= Idle ;

END IF ;

WHEN gnt3 =>

IF r(3) = '1' THEN y <= gnt3;

ELSE y <= Idle ;

END IF ;

END CASE ;

END IF ;

END PROCESS ;

END Behavior ;

a. (5 points) Donnez un diagramme d’états illustrant le fonctionnement de ce module. Identifiez claire-

ment chaque état, les transitions entre les états, et les conditions de transition entre les états.

b. (2 points) Combien de vecteurs de test seraient nécessaires pour effectuer un test exhaustif ? Justifiez

complètement votre réponse et montrez tous vos calculs.

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

Page 6: Examen de synthèse

INF3500 – examen final – automne 2014

Polytechnique Montréal page 6/13 Département de génie informatique et génie logiciel

Question 5. (8 points)

Considérez le code VHDL suivant pour un module combinatoire et son banc de test associé.

library IEEE;

use IEEE.std_logic_1164.all;

entity module3 is

port (

A, B, C : in std_logic;

F, G : out std_logic

);

end module3;

architecture arch2 of module3 is

signal S1, S2, S3 : std_logic := '0';

begin

S3 <= S1 or B;

G <= S3 or not(A);

process (A, B, C)

variable V : std_logic := '0';

begin

S1 <= A and C;

V := (not A) and (not B);

S2 <= V or C;

F <= B or C;

end process;

end arch2;

library ieee;

use ieee.std_logic_1164.all;

entity module3_TB is

end module3_TB;

architecture arch of module3_TB is

signal A, B, C, F, G : std_logic;

begin

UUT : entity module3(arch2)

port map (A, B, C, F, G);

A <= '1' after 0 ns;

B <= '0' after 0 ns;

C <= '0' after 0 ns, '1' after 10 ns;

end arch;

Donnez la valeur de tous les ports et signaux internes du module combinatoire en fonction du temps, en

tenant compte des délais deltas.

temps delta A B C S1 S2 S3 F G

0 ns 0

0 ns

0 ns

0 ns

0 ns

0 ns

0 ns

10 ns 0

10 ns

10 ns

10 ns

10 ns

10 ns

10 ns

Page 7: Examen de synthèse

INF3500 – examen final – automne 2014

Polytechnique Montréal page 7/13 Département de génie informatique et génie logiciel

Question 6. (7 points)

Considérez le chemin des données suivant du processeur PolyRISC.

UAL

B

A

F

Z

N

op_UAL

B

ch

oix

Ch

arg

e

Bloc des registres

ch

arg

eB

R

ch

oix

B

ch

oix

A

AdonnéeBR

Mémoire des données

donnee_MD

adresse

charge_MD

M[adresse]

ch

oix

B_

UA

L

ch

oix

Do

nn

ee

_B

R

`

va

leu

r

Op_UAL:

0: F <= A

1: F <= B

2: F <= A + B

3: F <= A – B

4: F <= A ET B

5: F <= A OU B

6: F <= NON A

7: F <= A OUX B

Sélection des muxes:

0: signal du haut

1: signal du bas

a. Indiquez si chaque opération ou groupe d’opérations simultanées suivants est possible. Si oui, donnez

la valeur des signaux de contrôle correspondants.

Opération ou groupe d’opérations simultanées

Po

ssib

le ?

ch

arg

eB

R

ch

oix

Ch

arg

e

ch

oix

A

ch

oix

B

vale

ur

Ch

oix

B_U

AL

Op

_U

AL

Ch

arg

e_

MD

ch

oix

Do

n-

nee_B

R

R4 := M[R0 + R2] ;

R7 := R1 + R2 ;

M[R1 + R2] := R1;

R0 := 534 ;

R4 := M[R0 + 534];

R3 := R4 + R5;

R4 := M[R4 + R5] ;

R2 := R1 ET 85;

M[R1 + 85] := R3;

b. Si des opérations ou groupes d’opérations sont impossibles, indiquez pourquoi dans chaque cas et pro-

posez une modification au chemin des données pour la/les rendre possible(s).

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

Page 8: Examen de synthèse

INF3500 – examen final – automne 2014

Polytechnique Montréal page 8/13 Département de génie informatique et génie logiciel

Question 7. (8 points)

Le diagramme de la page suivante montre un circuit implémenté sur un FPGA simplifié. Les entrées du

circuit sont C, D, E et F et les sorties sont Q, R et S. Le FPGA est composé de tranches ayant chacune une

table de conversion (LUT) et une bascule pouvant être utilisée ou non, et de blocs d’entrée/sortie (IOB)

dans lesquels les bascules sont toujours utilisées. Les LUTs ont un délai de 2.25 ns. Les bascules ont un

délai de 0.75 ns, un temps de préparation tsu de 0.25 ns, et un temps de maintien th de 0.1 ns. Les intercon-

nexions ajoutent un délai de 0.2 ns pour chaque rangée et chaque colonne de distance. Par exemple, le

signal qui part de la tranche C0R4 (colonne 0, rangée 4) pour aller à la LUT de la tranche C2R3 a un délai

de (2 (colonnes) + 1 (rangée)) × 0.2 ns = 0.6 ns.

a. (3 points) Identifiez le chemin critique du circuit sur le diagramme et donnez la fréquence maximale

d’horloge, en supposant aucun déphasage d’horloge.

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

b. (2 points) Le FPGA souffre d’un sérieux problème de conception pour la distribution du signal

d’horloge. Les bascules de chaque colonne reçoivent un signal d’horloge qui est en avance de 0.2 ns par

rapport aux bascules de la colonne précédente. Par exemple, les bascules de la colonne 0 reçoivent des

fronts d’horloge qui sont en retard de 0.4 ns par rapport à ceux reçus par les bascules de la colonne 2.

Dans ces conditions, quelle est la fréquence maximale d’horloge du circuit implémenté?

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

c. (3 points) Une nouvelle version du FPGA a été produite sans problème de déphasage d’horloge. Le

circuit est à nouveau implémenté. On veut le pipeliner pour atteindre un débit de 250 × 106 résultats par

seconde, où un résultat est un triplet Q/R/S. Indiquez clairement sur le dessin où et comment ajouter des

registres de pipeline. Identifiez le nouveau chemin critique et donnez la fréquence maximale d’horloge.

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

_____________________________________________________________________________________

Page 9: Examen de synthèse

INF3500 – examen final – automne 2014

Polytechnique Montréal page 9/13 Département de génie informatique et génie logiciel

a. Annotez le circuit pour indiquer le chemin critique.

c. Annotez le circuit pour montrer comment le pipeliner.

Bloc entrée/

sortie

(IOB)

D

CLK

Q

Bloc entrée/

sortie

(IOB)

D

CLK

Q

Bloc entrée/

sortie

(IOB)

D

CLK

Q

Bloc entrée/

sortie

(IOB)

D

CLK

Q

Bloc entrée/

sortie

(IOB)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Bloc entrée/

sortie

(IOB)

D

CLK

Q

Bloc entrée/

sortie

(IOB)

D

CLK

Q

Bloc entrée/

sortie

(IOB)

D

CLK

Q

Bloc entrée/

sortie

(IOB)

D

CLK

Q

Bloc entrée/

sortie

(IOB)

D

CLK

Q

D

C

E

F

Q

Colonne 1 Colonne 2Colonne 0

R

Rangée 0

Rangée 1

Rangée 2

Rangée 3

Rangée 4

S

Bloc entrée/

sortie

(IOB)

D

CLK

Q

Bloc entrée/

sortie

(IOB)

D

CLK

Q

Bloc entrée/

sortie

(IOB)

D

CLK

Q

Bloc entrée/

sortie

(IOB)

D

CLK

Q

Bloc entrée/

sortie

(IOB)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Table de

conversion

(LUT)

D

CLK

Q

Bloc entrée/

sortie

(IOB)

D

CLK

Q

Bloc entrée/

sortie

(IOB)

D

CLK

Q

Bloc entrée/

sortie

(IOB)

D

CLK

Q

Bloc entrée/

sortie

(IOB)

D

CLK

Q

Bloc entrée/

sortie

(IOB)

D

CLK

Q

D

C

E

F

Q

Colonne 1 Colonne 2Colonne 0

R

Rangée 0

Rangée 1

Rangée 2

Rangée 3

Rangée 4

S

Page 10: Examen de synthèse

INF3500 – examen final – automne 2014

Polytechnique Montréal page 10/13 Département de génie informatique et génie logiciel

Solutions

1. Réponse

architecture arch of uniteBranchement is

begin

-- unité de branchement

process(Z, N, condition)

begin

case condition is

when 0 => brancher <= Z; -- =

when 1 => brancher <= not(Z); -- !=

when 2 => brancher <= N; -- <

when 3 => brancher <= not(N) and not(Z); -- >

when 4 => brancher <= N or Z; -- <=

when 5 => brancher <= not(N) or Z; -- >=

when 6 => brancher <= '1'; -- toujours

when 7 => brancher <= '0'; -- jamais

end case;

end process;

end;

2. Réponse

Page 11: Examen de synthèse

INF3500 – examen final – automne 2014

Polytechnique Montréal page 11/13 Département de génie informatique et génie logiciel

3. Réponse

4. a. Solution :

sur les transitions, l’ordre

des signaux est r1r2r3, et

un ‘x’ indique un signal

sans importance

(figure tirée de S. Brown & Z. Vranesic, Funda-

mentals of Digital Logic, McGraw-Hill, 2005.)

b. 4 états, 3 entrées : un test exhaustif requiert au minimum 4 × 23 = 32 vecteurs de test

Page 12: Examen de synthèse

INF3500 – examen final – automne 2014

Polytechnique Montréal page 12/13 Département de génie informatique et génie logiciel

5. Réponse

6. Réponse

Opération ou groupe d’opérations simultanées

Po

ssib

le ?

ch

arg

eB

R

ch

oix

Ch

arg

e

ch

oix

A

ch

oix

B

vale

ur

Ch

oix

B_U

AL

Op

_U

AL

Ch

arg

e_

MD

ch

oix

Do

n-

nee_B

R

R4 := M[R0 + R2] ; oui 1 4 0 2 - 0 2 0 1

R7 := R1 + R2 ;

M[R1 + R2] := R1; oui 1 7 2 1 - 0 2 1 0

R0 := 534 ;

R4 := M[R0 + 534]; non L’architecture ne permet pas de charger deux registres simultanément.

R3 := R4 + R5;

R4 := M[R4 + R5] ; non L’architecture ne permet pas de charger deux registres simultanément.

R2 := R1 ET 85;

M[R1 + 85] := R3; non

L’UAL n’a qu’une sortie et ne peut donc pas faire l’addition et l’opération

logique ET en même temps.

Pour les opérations #3, il faudrait un bloc de registres à deux entrées, deux chemins de rétroaction vers

l’entrée du bloc de registres, et deux signaux distincts choixCharge1 et choixCharge2. Il faudrait de plus

pouvoir aiguiller la valeur provenant de l’unité de contrôle (ici 534) vers le bloc des registres.

Pour les opérations #4, il faudrait un bloc de registres à deux entrées, deux chemins de rétroaction vers

l’entrée du bloc de registres (un de la mémoire et un de la sortie de l’UAL), et deux signaux distincts

choixCharge1 et choixCharge2.

Pour les opérations #5, il faudrait avoir deux sorties à l’UAL, par exemple une pour les fonctions logiques

et une pour les fonctions arithmétiques. Les additions devraient pouvoir être envoyées à l’adresse de la

mémoire. Toutes les opérations devraient pouvoir être retournées vers le bloc des registres en rétroaction.

[En pratique, on utilise un 2e additionneur pour calculer les adresses de la mémoire.]

Page 13: Examen de synthèse

INF3500 – examen final – automne 2014

Polytechnique Montréal page 13/13 Département de génie informatique et génie logiciel

7. Réponse

a. Le chemin critique a un délai de 0.75 + 0.6 + 2.25 + 0.6 + 2.25 + 0.25 = 6.7 ns, pour une fréquence

maximale d’horloge de 149 MHz.

b. Sur le chemin critique, on doit ajouter 0.4 ns à la période minimale d’horloge, donc Tmin = 7.1 ns,

fmax = 141 MHz.

Sur les chemins courts, p.ex. de IOB C à C0R1, on a un délai de 0.75 + 0.2 + 2.25 + 0.25 = 3.2 ns > th ok.

Donc fmax = 141 MHz.

c. On insère des registres de pipeline dans la colonne 1. Attention, il faut utiliser une tranche supplémen-

taire pour le chemin de C0R4 à C2R3. Le chemin critique a maintenant un délai de 0.75 + 0.6 + 2.25 +

0.25 = 3.85 ns, donc fmax = 259 MHz ok pour 250 × 106 résultats par seconde.