Vous êtes sur la page 1sur 153

LSI2

Mthodologie de conception des circuits


intgrs VLSI
De lide lASIC
Introduction
I. Technologie des CIs
II. Mthodologie de conception des ASIC
III. Conception synchrone des circuits
IV. Synthse logique partir de VHDL
V. Projet de ralisation dun ASIC

Thomas GUIHAL
thomas.guihal@irisa.fr
http://r2d2.enssat.fr/

ENIAC - premier ordinateur lectronique


ENIAC : Electronic Numerical Integrator and
Computer
1946, J. Eckert et J. Mauchly
Calcul de tables balistiques
Base 10
18,000 tubes
160 m2 au sol, 30 tonnes, 150,000 Watts
200,000 Hz
5000 additions/soustractions par seconde
350 multiplications et 50 divisions par seconde
2

1958 Premier circuit intgr


1947 : W. Schockley (Bell Labs) invente le transistor
(prix nobel de physique 1956 )

1958 : J. Kilby (Texas Inst.) conoit le premier C.I.


Transistors, diodes, condensateurs, fils, agencs sur une mince plaque de
silicium
"I perceived that a method for low-cost production of electronic circuits was in hand.... that
instead of merely being able to build things smaller, we could fabricate entire networks in one
sequence, and that we had extended the transistor's capability as a fundamental electronics
tool."
Jack Kilby, 1958, prix nobel de physique 2000
3

Le premier microprocesseur

Intel 4004
1971
00
1084kHz
4
4 bits
1200 FF
0,06 MOPS

10 microns
2300 transistors
640 adressable bytes

Puis tout s'acclre

1970
1972
1977
1979
1980
1984
1986
1988
1990
1990
1991
1993
1997
1999
2000
2002
2003

Mmoire 4Kbits MOS


1er processeur : 4004 (Intel), techno. NMOS
16K DRAM et 4K SRAM en production
64K DRAM en production
Intel Processeur x86
Intel Processeur 80286 (PC AT)
1 mgabit DRAM
TI/Hitachi 16-megabit DRAM
Intel Processeur 80286 (fonctions multimdia)
Wafer de 20cm en production
4 mgabit DRAM en production
Intel Processeur Pentium
Intel Pentium II Processor
Intel Pentium III Processor
Intel Pentium 4 Processor
Intel Itanium 2 Processor
Intel Pentium M Processor, 1 gigabit DRAM

25 ans dvolutions
INTEL 4004 (1971)
Donnes sur 4 bits
2300 transistors, 10 microns
0,06 MOPS, 108 kHz

INTEL Pentium II (1996)


Donnes sur 32 bits
5.5M de transistors, 0.35, 2 cm2
200 MHz, 200 MOPS, 3.3V, 35W

Intel Microprocessor Gallery


1999 : Intel Pentium III Processor
9.5M Tr, 0.25um, 450MHz 1GHz

2000 : Intel Pentium 4 Processor


42M Tr, 0.18um, 1.5GHz 3.6GHz

Nombre de transistors
Loi de G. Moore (INTEL corp.)

Millions Transistors

160
Pentium 4 42M

140

Le nombre de transistors
- augmente de 41% par an
- x2 tous les 2 ans

120
100
80
60

286
134K

40
20

4004
2,3K

0
1970

8088
29K

1980

Pentium
Pentium Pro
Pentium II
Pentium III

486
1,2M

386
275K

1990

2000

3,3M
5,5M
7,5M
9,5M

2010
8

volution de la vitesse

Millions d'Instructions Par Seconde

MIPS

Loi de G. Moore (INTEL corp.)


Pentium 4

1600
1400
1200
1000

1500

Vitesse (MIPS)
- augmente de 58% par an
- x4 tous les 3 ans

800
600

286
1,5

400
200 4004
0,06
0
1970

8088
0,75

1975

1980

386
5,0

1985

Pentium
Pentium Pro
Pentium II
Pentium III

486
27,0

1990

1995

100
200
300
700

2000
9

Evolutions Technologiques
Microlectronique sur Silicium
Evolution des techniques

augmentation des vitesses


rduction des dimensions
augmentation de la surface des puces
complexit des CI (Nb de Tr)

Atome de Si
(15% / an)
(1,50 / an)

5.43 A

Silicium couvre 99% du march


CMOS couvre 80% du march des CI
Nombre de bits des DRAM : 4x tous les 3 ans

Aujourd'hui

Mmoires DRAM 1 Gbits


Transistor MOS longueur de canal 0.18
CI comportant 20.106 transistors (P)
=> VLSI
Dispositifs d'une vitesse de 100 ps (NAND2 # 280 ps)
Wafer de Si de 20 cm de diamtre
Taille de la puce (3-6 cm2) limite par la consommation / fiabilit

En 2010

Perspectives pour pour la premire dcennie du 21me sicle


CMOS, 600M transistors, wafer de 40 cm, puces de 6 14 cm2
Canal de 700 Ang. (0.07 m), vitesse de 10 ps, traitement au GHz, 0.6 Volt
DRAM 64 GBits 10ns, SRAM (cache) de 1 GBits 1.5ns
Usine de fabrication de plusieurs milliards de $US

=> ULSI

10

Perspectives : RoadMap SIA


0.35 m en 1995
0.25 m en 1997
0.18 m en 1999, 0.15 m en 2001, 0.13 m en 2003,
0.07 m en 2009, 0.05 m en 2012
Anne d'introduction

1997

1999

2001

2003

2006

2009

2012

Technologie (m)

0,25

0,18

0,15

0,13

0,1

0,07

0,05

Nb de niveaux de mtal

6-7

7-8

8-9

Tension d'alimentation (V)

1,8-2,5 1,5-1,8 1,2-1,5 1,2-1,5 0,9-1,2 0,6-0,9 0,5-0,6

Puissance sous radiateur (W)

70

90

110

130

160

170

175

Horloge locale On-chip P

750

1250

1500

2100

3500

6000

10000

Horloge locale On-chip ASIC

300

500

600

700

900

1200

1500

Frquence de fonctionnement (MHz)

[RoadMap SIA]
11

Perspectives : RoadMap SIA


Anne d'introduction

1997

1999

2001

2003

2006

2009

2012

Technologie (m)

0,25

0,18

0,15

0,13

0,1

0,07

0,05

DRAM

280

400

450

560

790

1120

1580

Microprocesseur

300

340

385

430

520

620

750

ASIC

480

800

850

900

1000

1100

1300

4G

16G

64G

256G

Taille du circuit (mm2)

Mmoire
Taille

256M 1G

Bits/cm2

96M

270M 380M 770M 2,2B

6,1B

17B

Cot/MBit (Centimes)

20

10

2,5

0,9

0,32

0,11

Logique Tr/cm2

3,7M

6,2M

10M

18M

39M

84M

180M

Cot/MTr (Centimes)

500

290

166

97

42

18

Logique Tr/cm2

8M

14M

16M

24M

40M

64M

100M

Cot/MTr (Centimes)

8,3

4,1

3,3

2,5

1,6

0,8

0,4

Microprocesseur

ASIC

12

March des semi-conducteurs


Un march mondial de
205 milliards de US
dollars en 2000, pour
une croissance de 37%
En 2001, 249 B US$
(+22%)
En 2004, 218.5 B US$
(+23,4%)
DSPs : 6 B US$, +40%
en 2000
DRAM, 23.1 B US$ en
1999, 76 B US$ en 2002
4 milliards de microprocesseurs
50 millions de microprocesseurs pour PC
Le march est dans les P embarqus

13

Semi-conducteurs et conomie
Usine, lithographie : investissement important
Loi de Rock : croissance des investissements (19% / an)
Plus dhommes pour concevoir les circuits
Le cot par porte quivalente en baisse

3000
2500
Prix d'une usine

2000
million $

1500
1000
500
0

10

1,5

0,8 0,6

0,4 0,25 0,05

Prix des usines de fabrication en fonction de la technologie

14

Submicronique profond (DSM)


Changement fondamental dans le dlai des composants
Les interconnexions dominent le temps de fonctionnement et la
consommation
Jusqu' 60% du chemin critique du aux interconnexions

Problme pour prdire de manire prcise le routage


Exemple: temps de propagation d'une NAND 2 entres :
connect 2mm de mtal : 280 ps
connect 0.5mm de mtal : 119 ps

DSM implique un comportement non linaire des portes


Cuivre, augmentation du nombre de niveaux de mtal

15

Pourquoi soccuper de la puissance ?


Evolution de la consommation des microprocesseurs
x4 tous les 3 ans
40

A21164-300 HP PA8000

35

Power(W)

30

A21064A
UltraSparc-167
PPro-150
HP PA7200

25
20
15
10
5
0

PPro200

PP-66

SuperSparc2-90
PPC 604-120
MIPS R5000
PP166

MIPS R4400
PPC 601-80 PP-100
PP-133
486-66
i486C-33
DX4 100
i386 i386C-33
'91

'92

MIPS R10000

'93

PPC603e-100
'94

'95

[Source: Microprocessor Report]

'96
16

Qu'est ce qu'un circuit ASIC


ASIC : acronyme pour Applications Specific Integrated Circuit
"circuit la demande" ou "circuit spcifique"
Circuit intgr ou FPGA conu exclusivement pour le projet ou
l'application qui l'utilise. Cela permet de le distinguer d'un composant
standard pouvant tre utilis dans un large ventail d'application

ASIC

17

Pourquoi un ASIC ?
Diversit des applications justifiant le dveloppement
d'un ASIC
Transformations de solutions existantes : opration d'intgration de
solutions utilisant l'lectronique analogique ou numrique.
Augmentation des performances. Rduction du cot de production.
Augmentation de la confidentialit.
Dveloppement d'interfaces lectroniques spcifiques : environnement
physique (moteur, clavier, cran, ...), couplage entre tout type d'entit
ou procd.
Conception de fonctionnalits nouvelles : la technologie VLSI permet
de considrer de nouvelles fonctionnalits spcifiques.
Dveloppement d'architectures gnrales : P, DSP, FPGA conduisent
accrotre les possibilits de dveloppement et la diversit des
applications, rduire le temps de dveloppement ainsi que le cot par
rutilisation d'un mme type de composants.

18

Systmes sur Silicium (SOC)


Cur de P

ASIC

Analogique
phone

RAM & ROM

CDMA
TDMA

DMA

phone
book
book

keypad
interf.

Image

control

protocol

speech
quality
enhancement

digital
down
conv

Cur de P/C
protocole et contrle
interface utilisateur

Turbo
Equal.

A/D
RF, modulation

image
decoder

voice
recognition

speech
coder
decoder

Cur de DSP
calculs lents
flexibilit

ASIC
Analogique

Curs de DSP

acclrateurs

Mmoire
Bus internes
19

Ex. 1 : terminal 2G

Analogique

Numrique

GSM standard
Future gnration
20

Ex. 1 : terminal 2G

C540

ARM7

From TI' OMAP

21

Ex. 2 : IXP1200 Intel NPU

6.5M Transistors

StrongARM Core

SRAM I/F

IX Bus

PCI

SDRAM I/F

6 Micro-RISC

22

Ex. 3 : FPGA Xilinx VIRTEX II Pro

Jusqu 4 blocs
processeurs IBM
PowerPC 405.
Frquence de travail
jusqu 300MHz.
Curs Rocket I/O MultiGigaset Tranceiver
(transformation des
donnes srie-parallle)
Architecture des Virtex
II Pro

Bloc processeur des


Virtex II Pro

23

Ex. 3 : FPGA Xilinx VIRTEX II Pro

Caractristiques des
Virtex II Pro

24

Avantages et inconvnients
Avantages offerts par les circuits spcifiques
Rduction de la taille des produits finis.
Consommation lectrique diminue : les transistors internes ne
commandent que les charges internes et non les pistes du circuit imprim.
Augmentation de la vitesse : les signaux internes circulent plus
rapidement dans une puce qu'entre plusieurs puces.
Confidentialit des projets.
Augmentation du nombre de fonctions proposes.
Cot d'assemblage rduit et fiabilit accrue du dispositif final.
Supriorit technologique d'une socit : prolonger la dure de vie des
produits.

Inconvnients de la solution ASIC


L'utilisation des ASIC implique un niveau d'engagement lev (financier et
technique).
Perte de contrle partielle au niveau des cots et des dlais en phase de
fabrication.
Complexit de conception (systmes sur puces)
Risques encourus en cas de non-fonctionnement ou de retard de fabrication
Cot du premier circuit
25

Description hirarchique dun circuit


Spcification fonctionnelle de lASIC

HDL
Diagramme

Action 1
Action 2

Action 3

Niveau Fonctionnel
ou Comportemental

Synthse Architecturale
HDL
Schma
Diagramme dtats

RAM

ALU

Control

Niveau Architectural

Register Transfer
Level (RTL)

Synthse Logique
HDL
Schma / Netlist
Equation logique

D Q

Niveau Logique ou porte

Gate Level
Placement/Routage

Modle lectrique
Equation diff.
Modle physique

Niveau Electrique
et Physique

Layout

26

Plan Gnral
I Technologie des CIs
1 Classification des CI
2 Technologie MOS

II Mthodologie de conception
1 Dmarche de conception
2 Spcification dun ASIC
3 Outils de CAO

III Conception synchrone des C.I.


1 Rgles de conception synchrone
2 Machine UT/UC cble
3 Conception pour rapidit

IV Synthse Logique partir de VHDL

1 Conception des ASICs : Mthodes et Outils


2 Synthse logique partir de VHDL
3 Mcanismes de synthse logique

V Projet de ralisation dun ASIC


A vous de jouer!

27

I Technologie des CI
1. Fabrication des C.I.
- Processus de fabrication
- Phnomnes physiques et chimiques
- Exemple d'une diode et d un transistor

2. Classification des C.I.


3. Technologie MOS
- Le transistor MOS : prsentation gnrale
-Modle et performances
-Technologies MOS (nMOS, pMOS, CMOS) et volutions

28

Le composant de base
Le transistor : un robinet lectrons

grille
isolant
source

drain
substrat de silicium

Permet de raliser des fonctions logiques,


arithmtiques, ...
29

Comment fabrique t'on un CI ?


Du sable au silicium
Du silicium au circuit intgr

30

I.1

Fabrication des circuits intgrs


Disque de Silicium pur 99,9999999%

Wafer
Contrle sous
pointes des puces
31

Impression en 3D
Comme l'impression d'un livre miniature

32

Fabrication des circuits intgrs

33

I Technologie des CI
1. Fabrication des C.I.
2. Classification des C.I.
- Circuits Customs
- Circuits Prdiffuss
- Circuits Prcaractriss
- Circuits FPGA
- Critres de choix

3. Technologie bipolaire
4. Technologie MOS

34

Classification des ASICs


ASIC : optimisations vs flexibilit, cot, temps de
dveloppement, prototypage, fondeurs, outils
ASIC

Custom

Semi-Custom

Cell-based

Standard Cells
Compiled Cells

Macro Cells

Array-based

Pr-diffuss
ou Gate Arrays

Pr-cbls
ou FPGAs

> 1M portes

250.000 portes

50.000 portes

11-15 masques

3-5 masques

RAM, fusibles

35

1997 CMOS Logic Market

Custom
6%

Programmable
10%

Gate Array
24%

Standard Products
28%

Standard Cell
32%
Source: Dataquest

$23.7B
36

Top 10 ASIC/PLD Suppliers: 1997


Lucent
LSI

$1,182

TI

$883

NEC

$631

IBM

$616

Xilinx

$612

$1,863

$667

Altera

Fujitsu

$886

$754

VLSI

Toshiba

$1,486

$1,291

$506

$1,541
$660
$1,248

$453

500

1 000
Sales
($M)

1 500

2 000

In Bold : Does Not Include Intracompany Sales


Source: Dataquest
37

Circuits custom
Transistors taills sur mesure
Avantages : optimisation densit,
performance, consommation
Inconvnients : prix trs lev,
temps de dveloppement (6/17
trans./jour), pas de reengineering
UTILISATION : processeurs,
domaine spatial, mmoires,
modules performants.

Pentium II (1998)
Data 32 bits,7.5 M Transistors,
300 MHz, 3.3V, 0.35, 43W, 2 cm2

(Exemple DEC Alpha : semi-custom except


pour les units arithmtiques)
38

Circuits base de Cellules


(Standard Cells, Prcaractriss, Cell based, .....)
Plots (pads)
FIFO

ROM

Blocs compils
ROM, RAM
multiplieur
DataPath
- paramtrables
- gnriques

Registre
dff

Bibliothque de cellules lmentaires


dfinies au niveau physique
portes logiques
bascules, latches
buffers, mux, dcodeurs
Full Adder/Substracter
Pad, compteurs, level shifter...
+ CAN, CNA, PLA, UART, P

nand

Additionneur

description mono-bit
de la cellule puis
extension par compilation
ou juxtaposition sur N bits

largeur variable
ex. NAND : 14.2
DFF : 73,6
hauteur fixe
ex. 43 pour
techno. 1

plots Vcc/Vdd pour mise en srie

connecteurs d'E/S de la cellule

-> Compilation de silicium


39

Circuits base de Cellules (suite)


Avantages

Conception hirarchique de modules rutilisables


Rduction du temps de conception, cots moindres
Perte de place pour les Connexions entre modules irrguliers.
Challenge : placement routage
Rutilisation des cellules
Librairies riches
Mthode en pleine croissance
Logic Cell
Feedthrough Cell

Hauteur des
cellules fixe
Rows of Cells

Canaux de routage
des interconnexions
: mtal 1
: mtal 2
Functionnal

Dans les techno. 3 et plus niveaux


de mtal, les feedthrough
(connexions au dessus des cellules )
disparaissent

module
(RAM, mult, ...)

Module compil
datapath
40

Standard Cells

ROM

UT

Interface

RAM

Circuit FIR16
1995
ES2 1
24 sqmm

Mulitplieur

UC

41

Circuits Prdiffuss
Gate Array

Sea of Gates

Tableaux de transistors
pr-intgrs.

Zones de
cellules

Les fonctions souhaites


sont obtenues en
ralisant les connexions
adquates.
Pad d'entre/sortie

Cellule lmentaire
Cellule lmentaire

polysilicon
Polysilicon
VDD

In1 In2

Oxide-isolation

In3 In4

PMOS

PMOS

metal

Metal
GND

possible
contact

NMOS
Out

Non-Caractrise

4-input NOR

NMOS
42

II Mthodologie de conception
1. Spcification d'un ASIC

1 Nature de la spcification d'un ASIC


2 Spcification dtaille
3 Plan mthodologique type de ralisation

2. Dmarche de conception

1 Mthodologies ascendante et descendante


2 Cas de la conception de circuit

3. Outils de CAO

1 Evolution des outils


2 Simulation
3 Placement et routage
4 Synthse logique

43

II.1

Spcification d'un ASIC

Le terme spcification regroupe toutes les informations qui caractrisent de


l'extrieur le composant raliser. Les spc sont indpendantes de
l'utilisation qui est faite du circuit. Elles ont pour but de dcrire ce que doit
faire le composant (le QUOI) et pas du tout comment il le fait (le COMMENT).

Fonctionnelle, Opratoire, Technologique


Sous forme papier ou informatique
-> Vrification des spcifications

ASIC

SPEC

44

II.1.1

Nature de la spcification d'un circuit

Spcifications fonctionnelles

Description des fonctions que doit assurer le circuit (ou le bloc)

Equation logique, Table de vrit, Chronogramme, Table de transition (quation d'tat)


Diagramme tat/transition, Grafcet (divergence/convergence ET/OU)
Statechart (extension du diagramme d'tat au paralllisme)
Rseau de Petri (comportement temporel)
Diagramme des activits (diagramme flots de donnes et flots de contrle : Statamate de
iLogix)
Modle mathmatique (TNS)
Description algorithmique

Spcifications opratoires

Manire dont une fonction doit oprer, conditions et domaines de fonctionnement

Renseignements sur les grandeurs ou donnes utilises dans les spcifications fonctionnelles
(type, domaine de dfinition, prcision)
Informations pour guider les concepteurs dans le choix des solutions mettre en uvre
(expriences prcdentes dans l'entreprise ou ailleurs)
Test oprer sur le circuit

Spcifications technologiques

Renseignements en rapport avec la ralisation matrielle

dfinition lectrique des E/S (DC, type de driver,...)


performances / contraintes
spc de ralisation (taille, cot, technologie, type de botier,...)
contraintes de l'environnement
qualit de test (AQL)

45

II.1.2

Spcification dtaille d'un ASIC

Une spcification dtaille (ASIC Detailed Design


Specification) d'ASIC est un document crit qui regroupe
La spcification de la dfinition
La notice descriptive de fonctionnement
Elle doit fournir toutes les informations utiles aux
concepteurs des cartes utilisatrices, ainsi qu'aux
concepteurs de logiciels.

[Alcatel]
46

Plan type de spcification dtaille


1 Introduction
Rappelle l'utilisation du circuit sur la carte
Rle principal et fonctions

2 Environnement du circuit
Prsentation gnrale de l'environnement du circuit sur la carte

3 Organisation gnrale du circuit


Interfaces externes
Prsentation gnrale des fonctions
Synoptique gnrale du circuit faisant apparatre les blocs fonctionnels
Description des liaisons inter-blocs

4 Fonctions ralises
Description dtaille des fonctions ralises par le circuit :
fonctions d'entres-sorties
fonction d'initialisation
fonctions pour le test du composant
fonctions pour le test en sortie de fabrication des cartes utilisant le circuit
etc.

47

Plan type (suite)


5 Caractristiques matrielles
Interface physique
Packaging
Brochage. Description des signaux d'E/S et des alimentations
Technologie des E/S

Chronogramme et Timings
Chronogrammes thoriques associs aux diverses fonctions
Timings respecter

Caractristiques lectriques
Limites lectriques, conditions transitoires et oprationnelles
Caractristiques statiques et dynamiques des E/S (alimentations, tension, courant,
capacits de charge, Slew Rate Control,...)
Dcouplage d'alimentation prvoir sur la carte

6 Interface Logiciel
Synthse des informations relatives l'interface matriel/logiciel
Description des registres et compteurs accessibles et de leur mode d'accs
L'utilisateur logiciel doit pouvoir se limiter ce paragraphe pour le
dveloppement des logiciels

48

II.1.3

Spcification de ralisation

But de la spcification de ralisation est :


Dans la phase de conception des blocs, de prciser aux concepteurs les
directives de ralisation
De dcrire l'architecture interne et de fournir une description dtaille de
chacun des blocs constituant l'ASIC
Ce document est ncessaire pour les ASICs dont la complexit ncessite
plusieurs concepteurs. En fin de conception, la spcification fait l'objet
d'une mise jour.

Plan type

Prsentation gnrale de la dcoupe en blocs


Diagramme gnral du circuit dcoup
Interfaces inter-blocs ou avec l'extrieur
Les bus et liaisons de contrle principaux
La distribution d'horloge interne
Les cycles d'changes entre blocs

Pour chaque bloc :

Une description succincte de la fonction ralise


Une estimation de la complexit
Les mmoires, macrocellules ncessaires (capacit, temps de cycle, simple/multi port...)
La frquence moyenne de fonctionnement et le taux d'activit

49

Plan type (suite)


Les Contraintes de ralisation

Botier : type de montage sur carte (soud, support)


Nombre et type d'E/S
Frquence aux accs
Contraintes principales de timing
Bilan des mmoires et/ou macrocellules ncessaires
Technologie (CMOS, bipolaire, ECL,...)
Type de "Matrice" et rfrence fondeur du circuit

Description dtaille des interfaces inter-blocs

Fonctions et chronogrammes de chaque bus ou liaison de contrle


interne

Description dtaille de chaque bloc

Fonctions ralises
Accs E/S
Structure interne du bloc
Complexit du bloc (nombre de portes)

50

Un travail d'quipe avant tout


Complexit croissante des ASIC et dlais de + en + courts
-> quipe de plusieurs personnes pour un mme CI

Dcoupe prcise du travail


Distribution des tches
Front End, Back End, Verification

Mthode de travail
Gestion informatique

Une personne : Une fonction


Chaque fonction communique avec
d'autres
Runions frquentes pour prciser les
interfaces et les changes de donnes

51

Dcoupe du circuit en blocs fonctionnels


Cahier des charges :
-> Recensement des fonctions implanter dans l'ASIC
-> Regroupement en blocs fonctionnels
-> Dfinir l'ordre des traitements appliquer aux
donnes
-> Synoptique global du circuit

Organisation du circuit :
Que fait ce bloc ?
Quelle est la place la plus adapte pour lui dans la
chane de traitement des donnes ?
Quel est le format des donnes qu'il reoit ?
Quel est le format des donnes qu'il transmet ?

52

II Mthodologie de conception
1. Spcification d'un ASIC

1 Nature de la spcification d'un ASIC


2 Spcification dtaille
3 Plan mthodologique type de ralisation

2. Dmarche de conception

1 Mthodologies ascendante et descendante


2 Cas de la conception de circuit

3. Outils de CAO

1 Evolution des outils


2 Simulation
3 Placement et routage
4 Synthse logique

53

Le problme clef du design


Foss croissant entre la complexit des systmes et la
productivit des concepteurs de circuits

10.000.000

100.000.000

1.000.000

10.000.000

Tr/chip 58%

100.000

1.000.000

10.000

100.000

1.000

10.000
1000

100

Comp. Productivity 21%

10

100
10
2009

2007

2005

2003

2001

1999

1997

1995

1993

1991

1989

1987

1985

1983

1
1981

Logic Transistor per Chip

Potential Design Complexity and Designer Productivity

Source sematech 97

54

II.2

Conception dun systme

La conception d'un circuit ou d'un systme consiste


passer d'un cahier des charges une ralisation.
On distingue quatre grands niveaux de conception :
Niveau Spcification (ou systme) : Dfinition du
problme
Niveau Architectural: Agencement gnral de la
ralisation
Niveau Logique ou logiciel: Conception dtaille
Niveau Implantation: Ralisation physique
La ralisation peut tre matrielle ou logicielle.
55

Boucles de Verification
Vrifications
de Spcifications

Document de spcification
Modle Comportemental

Simulateur
Comportemental

Conception Architecturale
Modle Architectural

Synthse Logique
Modle Logique

Simulation
Verification

Corrections

Simulateur Logique

Synthse Physique
Paramtres Electriques

Modle logique
complt par
rtroannotation
Simulateur
Electrique
Stimuli

Fabrication / Programmation
Test

Vecteurs de Test

Gnration des
Vecteur de Test

56

II.3

Outils de CAO de CI VLSI


Par jour un ingnieur
- crit 10 lignes de code
corrects
- dessine 10 portes
corrects
- place 10 cellules
corrects

Actuellement :
Recherche

Synthse systme
Preuve formelle

Disponible

40

60

Simulation

30

Schematic
Entry

50

Synthse logique et RTL


CAO (saisie de schma,
simulation, P&R,...)

Placement
& Routing

Hierarchy
Generator

30

40
30

1979

1985

Logic-Level Synthesis

Synthse architecturale

Outils du commerce

70

1990

2
High-Level Synthesis

10

1997

Person-Month for 20k Gates

57

II.3.2

Simulation du circuit

Comportement du circuit une fois ralis


Simulation logique
Simulateurs VHDL/Verilog : ModelSim, VSS,
Modes minimum, nominal, maximum

Simulation lectrique
SPICE, ...

Vrifications temporelles et lectriques


Mthodes et moyens
pour obtenir les vecteurs de test

Description

Modle du
Circuit

SIMULATION

Paramtres du modle

Rsultats
Droulement
temporel
Erreurs

Conditions de fonctionnement

Interprtation
des rsultats

58

II.3.3

Placement et Routage

Le Placement Routage consiste d'une part trouver l'arrangement optimal


des modules ou cellules composant le CI et d'autre part effectuer
l'interconnexion des signaux entre les modules, cellules et Plots d'E/S.
Avant cette opration reprsentait 30 60% du temps de conception d'un
circuit. L'automatisation apporte gain de temps, souplesse de construction et
scurit du rsultat obtenu.
Placement-routage :
passage d'une description structurelle
une description physique
L'entre du processus est une liste des lments qui constituent le circuit, et une liste de
signaux qui donnent les interconnexions.
La sortie est la liste des lments (cellules de base, modules, plots d'E/S) et des
interconnexions. Pour chacun des constituants, on connat coordonnes, surface,
orientation.
Les deux processus sont intimement lis et interdpendants. Du placement dpend la
longueur des connexions et la faisabilit du routage.
En pratique, les algorithmes de placement et de routage sont adresss sparment et
squentiellement (grande complexit de l'approche globale). Cependant des rtroactions
sont toujours ncessaires.
Problme du P&R des FPGA largement aussi complexe que pour les Standard Cells.
59

Placement d'un CI
Placement
Gate Array : Place et dessine la topologie des transistors associs aux diffrentes
cellules dans la matrice du circuit
Standard Cell : Place les rangs/colonnes de cellules sur la puce. Toutes les cellules ont
la mme hauteur (ou largeur), il faut dimensionner le canal de routage. Dans une
approche sur mesure, les cellules peuvent tre de tailles diffrentes.
Place ventuellement d'autres blocs prcompils (ROM, CNA, ...)
Doit minimiser la complexit du routage

Techniques
placement constructif : production d'un placement initial complet. Techniques de
partitionnement, approche globale, technique de branch&bound et de cluster.
placement itratif : modification d'un placement pour en obtenir un meilleur. Ce
processus est ritr jusqu' atteinte d'un critre d'arrt (amlioration relative ou absolue,
temps d'excution). Techniques d'changes de paires de composants, force-directed,
ensembles non interconnects, simulation de monte-carlo.
complexit en O(n2) ou plus : il faut donc hirarchiser ou partitionner un gros circuit en
sous problmes solvables.

Intervention du concepteur

partitionnement ou hirarchisation manuel.


prciser les critres (surface, vitesse) optimiser
contraintes sur certains nuds (horloge, contrle,...) par des poids de routage
outils d'valuation priori des long. des interconnexions pour influencer le placement.
60

Routage
Routage : gnration des dessins de masque ralisant les
interconnexions lectriques entre les composants du CI.

Routage lintrieur d'une cellule en bibliothque


Routage inter-cellules la charge de l'outil de CAO
4 niveaux de masques sur une technologie bi-metal (metal1, metal2, contact, via)
Distribution des alimentations, Routage de E/S, de l'horloge
Format JDEC pour les composants programmables
Format CIF pour les ASIC masqus

Techniques
Optimisations du routage : certaines connexions trop longues causent des dlais
de propagation importants -> optimisation des signaux critiques (par poids de
routage).

Dcomposition en un ensemble de sous problmes :


La gnration des canaux de routage divise la surface de routage en zones.
Cette gnration est simple pour des cellules standard (CI prcaractris).
On peut privilgier un dcoupage horizontal ou vertical.

Le routage global assigne chaque nud un ensemble de canaux de routage.


Cette tape dfinit la topologie du routage et un ensemble de problmes
restreints.
Prdiction du routage, rduction de la surface, minimiser la longueur
Amliorer la faisabilit et rpartir quitablement le routage
Techniques : trouver un chemin pour chaque connexion travers un graphe dont les arcs sont valus.

Le routage dtaill rsout chaque problme restreint et donne en rsultat le dessin


de masques des couches d'interconnexions et les contacts entre elles.
Certains routeurs privilgient une couche de mtal pour une direction donne.

Un routage manuel est souvent utilis


Masse, alimentations, horloge, signaux non-routs.

61

Placement / Routage sur Standard Cells


Compteur/Dcompteur 4 bits avec enable

62

Placement du compteur

63

Routage du compteur

64

II.3.4

Synthse logique : le challenge

La problmatique
A gain d'intgration => gain de productivit en conception
A accroissement de complexit => gain en scurit
A demande forte du march => rapidit de prototypage

Les origines de la synthse : une rencontre


Techniques de base connues depuis longtemps
Dfinition de langages pour la description de systmes matriels
(VHDL, Verilog, )

=> La conception
devient modlisation

65

Synthse logique

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity compteur is
port ( reset, clk, load, up : in Std_Logic;
val : in Std_Logic_Vector(3 downto 0);
count : buffer Std_Logic_Vector(3 downto 0) );
end compteur;
architecture comportementale of compteur is
begin
synchrone : process(reset,clk)
begin
if reset='1' then
count <= "0000";
elsif clk'event and clk='1' then
if load = '1' then
count <= val;
elsif up = '1' then
count <= count + "0001";
else
count <= count - "0001";
end if;
end if;
end process;
end comportementale ;

66

Cycle de conception avec HDL


Modelisation
en vue de la
Synthse

ModlisationVHDL

Validation par Simulation


Processus
de
Synthse

Constraintes de Synthse
(vitesse, surface, )
Optimisation:
allocation de ressources
mapping

Netlist EDIF
Validation
Finale

netlist VHDL
Validation par Simulation
- capacits estimes
- capacits relles
(retro-annotation )

Routage
layout

Validation par simulation


(logique, RC, lectrique)
67

III Conception synchrone des ASICs


1. Rgles de conception
- Problmes et paramtres gnraux
- Mthodes synchrones
- Circuits recommands
- Circuits non recommands

2. Machine UT/UC
- Modle synchrone
- Diagramme d'tats
- Machine Moore/Mealy

3. Cellules arithmtiques et de mmoire


- Additionneurs, Soustracteurs
- Multiplieurs
- Mmoire
68

Paramtres Temporels
SDN

Bascule D

s
D Q

CP

Q
QN

CDN

Temps de Setup
Temps de Hold
Temps de propagation
Largeur minimum d'impulsion

sur

clock
reset ...

69

Chemin Critique
Principe
Tout circuit possde une frquence limite de fonctionnement.
La frquence limite est lie un seul retard : celui du chemin critique.
Les donnes doivent tre prtes (stables) avant l arrive de l horloge, le dlai
de transmission maximal entre deux composant synchrones reprsente le
chemin critique.
Ce dlai est d la logique combinatoire qui limite le fonctionnement ou la
vitesse d'un circuit.

Type de chemin critique

Pad d'entre Combinatoire pad de sortie


Pad d'entre Combinatoire patte d'entre d'un lment de mmorisation (a)
Patte d'horloge d'un lment de mmorisation Combinatoire pad de sortie
Patte d'horloge d'un lment de mmorisation Combinatoire patte d'entre
d'un autre lment de mmorisation (chemin interne) (b)
Ce peut aussi tre un temps d accs mmoire, une distribution dhorloge, une
opration arithmtique.
D Q

D Q

D Q
Q

(a)

(b)
70

Chemin Critique
Exemple :
Deux registres (identiques) R1 et R2 spars par de la logique
combinatoire comb2.
Rebouclage de la sortie Out sur lentre In.
Le chemin critique est le maximum du temps de propagation de 1 vers 2
et du temps de rebouclage 2 vers 1.

TCC = Max(T12 , T21 )


T12 = (TDQ + Tcomb2 + Tsetup )
T21 = (TD Q + Tcomb1 + Tsetup )

In

comb1 R1

Q1

comb2 R2

Q2

Out

71

Meta-stabilit
Etat analogique entre deux tats logiques
-> non-observation des temps setup et hold
-> violation de largeur minimum d'impulsion
-> remise zro asynchrone
-> fronts lents
S
D

setup

clk
din

hold

clk

Energie

probabilits d'tat mtatstable


P > P'

dout

signal
(externe)

D Q

P
D Q

P'

signal
(interne)

CLK
(externe)

cascadage de bascules rduit la probabilit de mta-stabilit


72

Clock Skew
Dcalage entre les transitions de la mme horloge
diffrents points dun circuit
Horloge deux phases idale
t

1(t) . 2(t) = 0 t

Timing Circle

2
2

Avec fronts lents


1

1(t) . 2(t) = 0 sur les niveaux


1(t) . 2(t) 0 sur les transitions

2
2

Avec skew
skew

skew : temps pendant lequel 1(t). 2(t) = 1

2
2

73

Clock Skew : Exemple du P


DEC Alpha 21164 (1995)

Clock Drviers

Clock Generator

Clock Drviers

9.3M Transistors 0.5


300 MHz 64/128 Bits

74

Clock Skew : causes


Fronts lents

Tensions de seuil
1x
1x

Gnration dhorloges
1
1x

Charges diffrentes
C2

Tskew = Tinv
C1

H
H

Routage dhorloge
Floorplan
small skew

large skew

clock
drive

zero skew

small skew

75

Clock Skew : problmes et remdes


Problmes
Dcalage (skew) maximal dtermin par le dlai minimal entre registres
Priode d horloge minimale dduite du dlai maximal
entre registres
Tp min - Thold
D1

Q1

Comb

CLK1

D2

Q2

D2
clk1
clk2

CLK2

t < t + tR1 + titx + tcomb - thold


t - t = Tskew < Tp min - Thold

Tskew

avec Tp min = MIN ( tR1

+ titx + tcomb )

Skew min : le retard sur lhorloge ne doit pas tre tel que le signal issu de l horloge soit pris
en compte par la bascule suivante dans le mme cycle.

Remdes
1x

4x

quilibrage
horloges non recouvrantes

16x

1
2

C2

C1

Tskew = 0

H
H

76

Distribution des signaux


1x

Distribution de lHorloge

4x

16x

64

sortance relative constante

Gomtrique : accroissement constant


de la taille des buffers (dlai min)
Arborescent
Gomtrique et Arborescent
Exemples : Htree, ...

1x

1x

1x
1x
1x

sortance relative constante

Horloge

Horloge local

Seul le skew relatif est important.


Arbre en H : skew constant dans chaque bloc de
taille gale. Bloc de taille suffisamment petite
pour que le skew interne soit faible

Module

Module

Module

Module

Module

Module

Buffer secondaire

Horloge principale
Buffer principal
Buffer et Arbre : rduction du dlai absolu et
matrise possible de la consommation (alim.
teinte pour les modules non utiliss)

77

Distribution des signaux


Distribution de l alimentation :
Sparation du cur de la puce (forte activit) des buffers
dentres/sorties (fort courant)
Accs au VDD et GND par l intermdiaire de rails
Capa. de dcouplage alim/puce
Package faible inductance et rsistance

plot d'alimentation
rail d'alimentation
rail de masse

plot de masse

78

Rgles de conception
Mthodes Synchrones : rgles de base
Bonne horloge

(buffer, distribution, fronts rapides,...)

Phase dhorloge connecte toutes les bascules


Reset asynchrone global connect toutes les bascules
Quelques rgles supplmentaires :
Eviter les rebouclages combinatoires
Minimiser le nombre de portes de transmission
Contrle centralis des module trois-tats
Eviter les fronts lents
79

Circuits de base
Circuits non recommands
ripple clock
D Q

D Q

reset asynchrone

gated clock
D Q

D Q

en
clk

clk

retard d'activation

dsynchronisation
pics sur enable -> clock

COMB

clrb

tat reset transitoire


-> Tp bascules
passage trop bref du reset
-> Treset bascules

Circuits recommands
bascule E
D
en
clk

D Q
Q

reset synchrone
reset asynchrone global

bascule T (toggle)
D Q
T
clk

reset
synchrone

D Q
clk

reset
asynchrone

COMB

clrb

80

Circuits de base (suite)


Circuits non recommands
monostables
ligne retard
trigger

gnrateur d'impulsion
pulse

pulse

D Q

trigger

oscillateurs
oscillateur

trigger

lignes retard
S

bistables RS
(mmorisation)

s
D Q
r

tats inconnus
rebouclage combinatoire

Circuits recommands
gnrateur d'impulsion
trigger

D Q

D Q

clk

synchrone

latch en RS

RS synchrone

pulse

s
D Q

EN Q

tats toujours connus

R
S

D
clk

reset prioritaire
81

III Conception synchrone des ASICs


1. Rgles de conception
- Problmes et paramtres gnraux
- Mthodes synchrones
- Circuits recommands
- Circuits non recommands

2. Machine UT/UC
- Modle synchrone
- Diagramme d'tats
- Machine Moore/Mealy

3. Cellules arithmtiques et
mmoire

82

Architecture gnrale
Unit arithmtiques : datapath

Additionneur, multiplieur, dcaleur, comparateur,

Mmoire

RAM, ROM, registre, banc de registres, buffers, registres dcalage

Contrle

Machine dtats (PLA, logique combinatoire, registre), compteurs, ROM

Interconnexions

Bus, arbitres, trois-tats, multiplexeurs,

Entres-sorties
MEMORY
T
U
P
T
U
O
T
U
P
N
I

CONTROL

DATAPATH
83

Machine UT/UC cble


Modle synchrone
reset

entres

horloge

synchro

UC

UT

E/S

base de
temps

UC : Machine MOORE
Entres Synchronises (mta-stabilit)
RAZ global du circuit -> connatre l'tat initial
Base de temps : donnes stables pendant leur chantillonnage
UC: changement d'tat
commandes UT
lectures UT

UT: changement d'tat


Synchronisation des entres
84

Unit de contrle : spcifications


Diagramme d'tat

Ci

Ei

Cj

Ej

C'j
Ck

Ek

C'i
Transitions : conditions boolennes des entres
horloge implicite
conditions de sortie disjointes
rebouclage sur un tat implicite
Nuds : tats stables de l'UC
nombre d'tats -> taille du registre d'tat
Codage des tats : valeur numrique du registre d'tat (Ei -> b0001)
types de codages (binaire, gray, johnson,...)
Sorties de l'UC : dcodage de l'tat
Prcautions : Machine de Moore plus sre
Forcer le codage des tats non-atteints (struck states)
Entres et tats stables lors de leur chantillonnage
Le codage influe sur les parasites de sortie et sur la frquence MAX

85

Entres

Logique
Combinatoire
de Sortie

Machine de Mealy
Registre
d'Etat

Logique
Combinatoire
d'Entre

Logique
Combinatoire
de Sortie

Registre
d'Etat

Entres

Logique
Combinatoire
d'Entre

Machine de Moore

Sorties

Sorties

Horloge

Horloge

Sorties = F(EtatCourant)
EtatSuivant = F'(EtatCourant, Entres)
E1

E2

C1
S=1

Sorties = F(EtatCourant, Entres)


EtatSuivant = F'(EtatCourant, Entres)

transformabilit

C2

E31

E32

C3

Moore<-> Mealy
S=0

E1

E2

C1
S=0

C2
S=1

E3
C3
S=0

C3

E3

S=0

Synchrone
Plus sre de fonctionnement
Plus d'tats

E4
Asynchrone
Plus rapide
Alas de fonctionnement

86

Vitesse
Rduire le nombre d'entres

AND4

Utilisation de la logique AND/OR/INV (AOI) ou OR/AND/INV (OAI)


r
e

s
a

b
Multiplexeur en AOI

D
clk

D Q

Bascule E avec reset en AOI

Rduire la taille des chemins critiques


Distribution des signaux sur le chemin critique optimise
signaux non critiques
(early-changing inputs)
signaux critiques
(late-changing inputs)
87

Vitesse (suite)
Compteur de Johnson
vitesse maximum
plus coteux : M/2 > log2(M)

D Q

q0

D Q

q1
0
0
1
1

q1

q0
0
1
1
0

M bascules
2M tats

clk
reset

Duplication pour rduire la sortance


faible sortance
chemin critique
forte sortance
chemin non critique

Utilisation des cellules rapides de la librairies


40 ns

20 ns

fmax = 25 MHz

20 ns

fmax = 50 MHz

Pipeline

88

V Synthse logique
1. Synthse logique partir de VHDL
- Principe et Flot de conception
- VHDL pour la synthse
- Styles de description
- Logique combinatoire
- Logique squentielle

2. Mcanismes de synthse logique


- Optimisations
- Structuring / Flattening / Mapping

3. Conclusions gnrales

89

Synthse comportementale
E

AB

Contraintes d E/S
Partage des ressources
Droulement temporel
Contraintes temporelles
(frquence, latence)

CD

AB

+
CD

x
A

R1

R2

horloge
Contrleur
Sel A
Load R1
Sel B
Load R2
Add

F <= E * (A + B);
G <= (A+B) * (C+D);

2
Sel C
Load R1
Sel D
Load R2
Add
Sel E
Load R3
Load R4
Mul

R3

R4

x
R5

R6

Chemin de donnes
Registres, mmoires
Structure d E/S
Contrleur (machine d tats)
90

Synthse logique

Exemple

Fonction combinatoire : en entre : un mot de 8 bits


en sortie : le nombre de 1 prsent dans ce mot.
Description algorithmique

library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.STD_LOGIC_ARITH.all;
entity nb2 is
port(DIN : in std_logic_vector(7 downto 0);
nombre : out integer range 0 to 8);
end nb2;
architecture arch of nb2 is
begin
process(DIN)
variable nombre_int : integer range 0 to 8;
begin
nombre_int := 0;
for i in 0 to 7 loop
nombre_int := nombre_int + conv_integer(DIN(i));
end loop;
nombre <= nombre_int;
end process;

end arch;

nombre = DIN (i )
i =0

Optimisation logique

Synthse : 7 additionneurs en cascade


91

Synthse logique
Synthses des fonctions logiques
Architecture d un systme numrique

Units
Unitsde
decontrle
contrle
--signaux
signauxde
decommandes
commandes

Units
Unitsde
detraitement
traitement
--oprateurs
oprateurslogiques
logiquesetet
arithmtiques
arithmtiques
--lments
lmentsde
destockage
stockage

- machines d tats
- automates
- dcodage

- slection, multiplexage
- oprateurs arithmtiques
- registres, compteurs, ...
- mmoires

92

Synthse Logique : avantages

Automatisation du flot de design


Permet de concevoir des circuits plus complexes
Conception indpendante de la technologie
Domaine d'exploration des solutions plus important
HDL plus flexible, plus lisible
Nouveau niveau d'abstraction plus lev

Diffrentes descriptions
(quations, diagramme d'tat, netlist, description RTL)

Dirig par des directives et des buts


Rsultats optimiss et analyss

93

Flot de Synthse

Source

Simulation

RTL VHDL

RTL

Fonction
OK ?

group/ungroup blocs
rcriture du code HDL
modification contraintes de temps
modification des attributs

Translation
vers Porte
Optimisation
Niveau Porte

Fonction
OK ?

Simulation
Niveau Porte
94

2.2

VHDL : rappels
Vue extrieure : ENTITY
entity decoder is
port ( A, B : in bit;
S
: out bit vector (0 to 3) );

end decoder ;

A
B

decoder

S(0 to 3)

Description interne : ARCHITECTURE


architecture comportementale
of decoder is
begin
process (A,B)
begin
if A='0' then
if B='0' then
S<= "0001"
else
S<= "0010"
end if;
else
if B='0' then
S<= "0100"
else
S<= "1000"
end if;
end if;
end process ;
end comportementale ;

architecture flot_donnes
of decoder is
begin
S(0) <= not(A) and not(B) ;
S(1) <= not(A) and B ;
S(2) <= A and not(B) ;
S(3) <= A and B ;
end flot_donnes ;
architecture structurelle
of decoder is
component DEC24
port ( I1, I2 :
in bit;
O1, O2, O3, O4 : out bit );
end component ;
begin
CELL : DEC24
port map
(A,B,S(0),S(1),S(2),S(3));
end structurelle ;

95

VHDL pour la synthse


Niveau RTL
entity compteur is
port ( reset : in bit;
S
: out integer );
end compteur;

entity compteur is
port ( reset : in bit;
clk : in bit;
S : out integer range 0 to 15 );
end compteur;

architecture behavioral OF compteur is


begin

architecture RTL OF compteur is


signal count : integer range 0 to 15;
begin

process
variable count : integer;
begin
wait until reset = '1' for 20 ns;
if reset = '1' or count = 15
then count :=0;
else count := count + 1 after 10 ns;
end if;
S <= count;
end process;
end behavioral;

process(reset,clk)
begin
if reset='1' then count <=0;
elsif clk'event and clk='1' then
if count=15 then count <= 0;
else count <= count + 1;
end if;
end if;
end process;
S <= count;
end behavioral;

Non Synthtisable

Synthtisable

96

Sous ensemble de VHDL


Entity :
Architecture :
Configuration
Librairies :
Packages :

Types des ports d'Entres / Sorties de taille borne


(in, out, inout, buffer). Valeurs par dfauts ignores
Une seule architecture
: Component : for all <nom> use entity <package>
Compilation spare : non supporte
Collection de ressources
(types, constantes, fonctions, procdures, composants)
Packages Standards (STD_LOGIC...) ou CAO (Compass...)

Types :

Integer avec range


Enumration, Record, Subtype
Tableaux 1D de dimension finie
Bit, Bit_Vector ou STD_LOGIC, STD_LOGIC_VECTOR
Physique, Rel, Access, File : ignors

Dclarations :

Constante, Signal, Variable, Component accepts


Register, Bus, Linkage, Alias : ignors

Oprateurs :

Logiques (and, nand, or, nor, xor, not)


Relationnels (=, /=, <, >, <=, >=)
Arithmtiques (+, -, *, signe, abs)
(/, mod, rem,** pour puissance de 2)
'length, 'event, 'left, 'right, 'high, 'low, 'range, 'reverse_range

Attributs :

97

Sous ensemble de VHDL (2)


Instructions Squentielles :
Wait :
Affectations :
If/Case :
Boucles :

Support en premire ligne d'un PROCESS synchrone :


wait until clock = value;
wait until clock'event and clock = value;
wait until not clock'stable and clock = value;
Affectation de variables et de signaux supporte
Fonctions et Procdures : supportes
Transport et after : ignors, Assertion : ignore
Supports
Boucle for de taille statique : supporte
Boucle while : non supporte

Instructions Concurrentes :
Process :
Affectations :
Block :
Instanciation :
Sous Prog. :

Liste de sensibilit ou wait => combinatoire ou synchrone


Affectation conditionne de signaux supporte (when, select)
Guards, ports et gnriques : non supports
Port map, Generic map, generate : supporte
Procedures et Fonctions supportes
98

Package IEEE Standard Logic 1164


PACKAGE std_logic_1164 IS
TYPE std_ulogic IS ( 'U', -- Uninitialized
'X', -- Forcing Unknown
'0', -- Forcing 0
'1', -- Forcing 1
'Z', -- High Impedance
'W', -- Weak Unknown
'L', -- Weak 0
'H', -- Weak 1
'-' -- Don't care );
TYPE std_ulogic_vector IS ARRAY ( NATURAL RANGE <> ) OF
std_ulogic;
FUNCTION resolved ( s : std_ulogic_vector ) RETURN std_ulogic;
SUBTYPE std_logic IS resolved std_ulogic;
TYPE std_logic_vector IS ARRAY ( NATURAL RANGE <>) OF std_logic;
SUBTYPE X01

IS resolved std_ulogic RANGE 'X' TO '1'; -- ('X','0','1')


99

2.3

Diffrents modes de description


Assignation Concurrente de signaux
S <= a+b;

S <= a and b
when a < "010"
else a xor b when a < "101"
else a or b;

with a select
S <= a and b when 2 downto 0,
a xor b when 3 to 4,
a or b when others;

Process Combinatoire

add : process (a,b,c)


begin
if c='1' then res <= a + b;
else
res <= a - b;
end if;
end process;

Tous les signaux lus doivent tre en


liste de sensibilit du Process
Les sorties doivent tre affectes quelles
que soient les valeurs de la condition

Process Squentiel

process (signal, clock) is begin


if signal = '1'
-- actions asynchrone
elsif -- condition sur l'horloge
-- actions synchrone
-- pas de else possible
end if;
-- aucune autre action n'est possible
end process;

La liste de sensibilit du Process doit contenir


obligatoirement l'horloge, plus un ventuel
signal asynchrone (reset)
On peut remplacer la liste de sensibilit par un
wait
Les sorties doivent tre affectes de manire
synchrone et asynchrone

100

Logique combinatoire
Portes logiques
Multiplexage, trois-tats
Fonctions arithmtiques
Comparaison
Dcodage

101

Latch ou porte logique

Latch
process (A,S)
begin
if S > 2 then
X <= A;
end if;
end process;

A
=>

>2

Porte Logique
process (I)
begin
if I = '0' then
X <= '1';
else
X <= '0';
end if;
end process;

=>

Latch Q
En

X <= not I

-> spcification complte des quations logiques


pouvant aboutir une table de vrit

102

Multiplexage
Avec priorit
process (A,B,...C1,...)
begin
if C1 then
X <= A;
elsif C2 then
X <= B;

else
end if;
end process;

Sans priorit
B
A B

C1
S
C2

X <= A(index);

X
AN

Index dans un tableau


index

MUX

process (A,B,...,S)
begin
case (S) is
when C1 =>
X <= A;
when C2 =>
X <= B;

end process;

A1 A0

MUX

103

Logique cble
Tri-State
process (A,S)
begin
if S = '1' then
X <= A;
else
X <= 'Z';
end if;
end process;

X : Std_Logic

S
=>

Logique cable entre plusieurs process => Tri-State


Fonctions de rsolution ignores

For Loop / Generate


parit
parit: :process
process(A)
(A)
variable
result
variable result: :bit;
bit;
begin
begin
result
result:=
:='0';
'0';
for
i
in
0
for i in 0to
toN-1
N-1loop
loop
result
:=
result
xor
result := result xorA(i);
A(i);
end
loop;
end loop;
XX <=
<=result;
result;
end
process;
end process;

=>

A0
A1

A2

A(N-1)

104

Exemples
Fonctions de slection
A0 A1

A0

An-1
Sel_A0

A1
Sel_A1

An-1
Sel_An-1

sel
S
S
Logique de multiplexage

ou

S <= A0 when sel=0 else


A1 when sel=1 else
A2 when sel=2 else
X;
process(sel, A0,A1,A2)
begin
case sel is
when 0 =>
S <= A0;
when 1 =>
S <= A1;
when 2 =>
S <= A2;
end case;
end process;

Logique trois-tats
signal S, A0, A1,A2 : std_logic ;
signal Sel_A0,Sel_A1,Sel_A2 : std_logic;
.
S <= A0 when sel_A0=1 else Z;
S <= A1 when sel_A1=1 else Z;
S <= A2 when sel_A2=1 else Z;.

105

Exercice
Exercice
Ecrire le fichier VHDL dcrivant la fonction Tranceive permettant une connexion
bidirectionnelle un bus 8 bits.
oeab
B

A
8

8
oeba

library IEEE;
use IEEE.std_logic_1164.all;
entity transceive is
port( A,B : inout std_logic_vector(7 downto 0);
oeab, oeba : in std_logic);
end entity
architecture transceive of transceive
begin
B <= A when oeab = '1' else "ZZZZZZZZ";
A <= B when oeba = '1' else (others => 'Z');
end transceive;
Commentaires :
utilisation des types std_logic et std_logic_vector dclars dans le package
std_logic_1164

106

Exemples

Fonctions de comparaison/dcodage
Comparer la valeur de signaux : oprateurs de comparaison,
instructions when, if , case
Exemple :

signal compteur : integer range 0 to 255;


compteur

54 55

56

154 155

254 255

decode

Deux descriptions :

dcodage de tous les tats : fonction combinatoire

dcodage des tats de transition : fonction latch

107

Exercice
Dcrivez la fonction prcdente dans un process, en utilisant les instructions if et case
ou en flots de donnes
process(compteur)
begin
decode <= 0 ;
if (compteur >= 55 and compteur < 155) then
decode <= 1 ;
end if;
end process;

decode <= '1' when (compteur >= 55 and compteur < 155)
else '0';

decode <= '1' when compteur=55 else


'0' when compteur=155 else
decode ;

process(compteur)
begin
if (compteur = 55) then
decode <= 1 ;
elsif compteur = 155) then
decode <= 0 ;
end if;
end process;
process(compteur)
begin
case compteur is
when 55 =>
decode <= 1 ;
when 155 =>
decode <= 0 ;
when others =>
null;
end case;
end process;

108

Exemples
Fonctions arithmtiques
Utilisation des oprateurs arithmtiques : + S <= A op B;

* /

avec des signaux/variables de type arithmtique : integer


integer range 0 to 2n-1;

Oprateurs non signs

integer range -2n-1 to 2n-1-1;

Oprateurs signs

Division
Souvent restreinte une division par une constante = 2n

Dcalage cbl de n bits droite

Entiers signs:

Entiers non signs:

signal A, S : integer range -4 to 3;

signal A, S : integer range 0 to 7 ;

S <= A/2 ;
A(2)
A(1)
A(0)

S(2)
S(1)
S(0)

A(2)
A(1)
A(0)

S(2)
S(1)
S(0)

109

Description VHDL
Ordre des quations sans importance
Flots de donnes
Circuits combinatoires

Assignation Concurrente
architecture A of E is
begin
S <= X + Y;
Y <= Z + W;
end A;

W
Z

+
+

S <= W + X + Y + Z;
S <= (W + X) + (Y + Z);
Evaluation de gauche droite Effet du parenthsage
WX Y
Z
WX
YZ

+
+

+
+

+
S

Y <= Z + W;
S <= X + Z + W;
Termes intermdiaires
ZW
X

Rem. Tous les signaux peuvent tre des vecteurs

+
S

110

Logique squentielle
Bascules
Latches
Registres
Machines dtats
Mmoires

111

Logique squentielle
lments de mmorisation : bascules, registres
Ltat d un signal, dune variable doit tre mmoris :
les fonctions logiques utilises sont des bascules (1 lment binaire)
ou des registres (mot de n bits).
En entre :
- la valeur mmoriser,
- l ordre de mmorisation : un niveau ou un front.
if ordre_de_mmorisation vrai then
contenu_registre <= valeur_in ;
end if;

Niveau (latch)
process(enable, valeur_in)
if enable = 1 then
contenu_registre <= valeur_in;
end if;
end process;

Front (flip-flop)
process(horl)
if (horlevent and horl = 1) then
contenu_registre <= valeur_in;
end if;
end process;

112

Logique squentielle
Bascule DFF (D Flip-Flop)
DFF avec front montant
PROCESS(clock) BEGIN
if clock'event and clock='1' then
Q <= D;
end if;
END PROCESS

ou
PROCESS BEGIN
wait until clock'event and clock='1';
Q <= D;
END PROCESS

DFF avec reset asynchrone


PROCESS(clock, reset) BEGIN
if reset = '1' then
Q <= '0';
elsif clock'event and clock='1' then
Q <= D;
end if;
END PROCESS

DFF avec reset synchrone


DFF avec front descendant
if clock'event and clock='0' then
Q <= D;
end if;
! A viter

wait until clock'event and clock='1';


if reset = '1' then Q <= '0';
else
Q <= D;
end if;

113

Exemples
lments de mmorisation
- Sil sagit dun signal, il y a toujours
gnration d une bascule/registre.
- Sil sagit dune variable, a dpend.

Exemples :

B
horl

B A
horl

.
signal horl, B, S : std_logic;
.
begin
.
process(horl)
variable A : std_logic;
begin
if (horlevent and horl=1) then
S <= A;
A := B;
end if;
end process;
..

.
signal horl, A, B, S : std_logic;
.
begin
.
process(horl)
begin
if (horlevent and horl=1) then
A <= B;
S <= A;
end if;
end process;
..

.
signal horl, B, S : std_logic;
.
begin
.
process(horl)
variable A : std_logic;
begin
if (horlevent and horl=1) then
A := B;
S <= A;
end if;
end process;
..

114

Exercice
Dessiner le schma logique obtenu par synthse de la description suivante :
process(horl)
variable int1 : std_logic ;
begin
if (horlevent and horl=1) then
int1 := A nand B ;
int2 <= C nor D ;
S <= int1 nand int2 ;
end if ;
end process ;

int1

B
C
D

D
Clk

int2

Clk

horl

115

Exemple
lments de mmorisation : bascules, registres
Avec initialisation asynchrone ou synchrone
synchrone

asynchrone
process(clearb,horl)
if clearb = 0 then
contenu_registre <= 0;
elsif (horlevent and horl = 1) then
contenu_registre <= valeur_in;
end if;
end process;

process(horl)
if (horlevent and horl = 1) then
if clearb = 0 then
contenu_registre <= 0;
else
contenu_registre <= valeur_in;
end if;
end if;
end process;

valeur_in
contenu_registre

horl

clearb
clearb

valeur_in
horl

contenu_registre

116

Rgles respecter
Chargement sur front :
Un seul front
Une seule horloge

process(horl)
if (horlevent and horl
contenu_registre <=
end if;
if (horlevent and horl
contenu_registre <=
end if;
end process;

= 1) then
valeur_in;
= 0) then
valeur_in;

Pas de combinatoire avec l horloge


process(horl)
if (horlevent and horl = 1 and
contenu_registre <= valeur_in;
end if;
end process;

mais :

ena = 1 ) then

process(horl)
if (horlevent and horl = 1) then
if (ena = 1 ) then
contenu_registre <= valeur_in;
end if;
end if;
end process;

117

Comptage, dcalage
Fonctions de comptage, de dcalage
Compteur binaire n bits : de 0 2n-1
Utilisation de l oprateur + => le signal/variable doit tre de type numrique : conversion

compteur <= compteur +1;

Compteur modulo N :
if (compteur = N-1) then compteur <= 0;

Registre dcalage
regdec(7 downto 1) <= regdec(6 downto 0);
regdec(0) <= 0;

118

Exercice
Exercice

Dcrire une fonction registre 8 bits chargement sur front montant de lhorloge horl,
Avec un bus de donnes data bidirectionnel
horl : horloge active sur front montant,
en : accs en lecture ou en criture si en = 1 ; data = Z si en = 0
wb : accs en criture si wb = 0
data : bus de donnes 8 bits bidirectionnel

library ieee;
use ieee.std_logic_1164.all;
entity reg8 is
port (horl, en, wb : in std_logic;
data : inout std_logic_vector(7 downto 0));
end;
architecture A of reg8 is
signal reg : std_logic_vector(7 downto 0);
begin

en
wb
horl

reg8
data
8

process(horl)
begin
if (horl'event and horl='1') then
if (en = '1' and wb = '0') then
reg <= data;
end if;
end if;
end process;
end A;

process(en,reg,wb)
begin
if (en = '0') then
data <= (others => 'Z');
elsif wb = '0' then
data <= (others => 'Z');
else
data <= reg;
end if;
end process;

119

Exercice
Description dun banc de registres

library ieee;
use ieee.std_logic_1164.all;

en1
en2
en3
wb
horl
data

bancreg8
en
wb
horl

reg8
data
8

en
wb
horl

reg8
data
8

en
wb
horl

reg8
data
8

entity bancreg8 is
port(horl, en1, en2, en3, wb : in std_logic;
data : inout std_logic_vector(7 downto 0));
end bancreg8;
--------architecture arch of bancreg8 is
component reg8
port (horl, en, wb : in std_logic;
data : inout std_logic_vector(7 downto 0));
end component;
begin
U1 : reg8 port map (horl,en1,wb,data);
U2 : reg8 port map (horl,en2,wb,data);
U3 : reg8 port map (horl,en3,wb,data);
end bancreg8;

120

Diffrences entre Variables


Dans process ou sous-programme
Assignation immdiate
entity add is
port (A,B,C : in integer range 0 to 255;
clock : in bit;
Y
: out integer range 0 to 255 );
end add;
architecture variable of add is
process
variable X : integer range 0 to 255;
begin
wait until clock='1' and clockevent;
X := A + B;
Y <= X + C;
end process;

A B
C

+
X

+
Clock

121

et Signaux
Chaque signal est une sortie de registre
Assignation aprs _t

A B

entity add is
port (A,B,C : in integer range 0 to 255;
clock : in bit;
Y
: out integer range 0 to 255 );
end add;
architecture signal of add is
signal X : integer range 0 to 255;
process
begin
wait until clock='1' and clockevent;
X <= A + B;
Y <= X + C;
end process;

X
+
8

Clock
Y

122

lments mmoires
Une mmoire est un tableau de mots .
Ses caractristiques :
sa capacit : le nombre de mots
la taille d un mot ( son type) : nombre de bits

Pour lire un mot en mmoire, il faut dsigner son


emplacement = son adresse.
Exemple : mmoire de 256 octets contient 256 mots
de 8 bits.

123

Mmoire
Description de la fonction mmoire
A) - dclarer un type tableau :
type t_mem is array(0 to nb_mots-1) of std_logic_vector(nb_bits-1 downto 0);

B) dclarer un signal/variable
signal/variable memoire : t_mem;
memoire reprsente un tableau de nb_mots de nb_bits.
memoire(i) = ime mot de la mmoire

C) accder au mot mmoire d adresse i


Lecture : data_out <= memoire(i);
criture : memoire(i) <= data_in;

data_in

memoire(i)
memoire(i)

data_out

124

Machine dtats
Machine dtats
Fonction logique squentielle caractrise par :
- lnumration dun ensemble d tats en nombre fini,
- des conditions de transition entre les tats,
- la valeur des sorties dpendant de ltat courant et de ltat des entres.
Applications :
unit de contrle, squenceur,
Structure :
horloge

Registre d tat
Sorties

Entres

Logique combinatoire:
- dcodage des entres
et de l tat courant
- valuation de l tat
suivant et des sorties

125

Machine dtats
Machine dtats : dclaration et codage des tats
Cration d un type numr dcrivant la liste des tats :
type liste_etats is (etat1, etat2, etat3, ..);
signal/variable etat_courant is liste_etats;
Dclaration du registre d tats

Registre d tat
Codage des N tats
etat1

registre d tats de n bits,


tel que N=2n
Codage binaire

etat8

etat2

Exemple : N = 8

registre d tats de N bits


(1 bit par tat)
Codage one hot

126

Machine dtats
Machine dtats : Description de la machine dtats
Deux process : un process synchrone : registre dtat etat_courant
un process asynchrone : logique combinatoire ,
etat_suivant = fonction(etat_courant, entrees) ;
utilisation de linstruction case
process(horl)
begin
if (horl event and horl=1) then
etat_courant <= etat_suivant;
end if;
end process;
process(etat_courant,entrees)
begin
case etat_courant is
when etat1 =>
.
etat_suivant <= etat2;
when etat2 =>
.
etat_suivant <= etat3;
.
end case;
end process;

horl
entrees

Registre d tat
etat_courant
Bloc combinatoire
dcodage
etat_suivant

127

Machine de Moore

Registre
d'Etat

Logique
Combinatoire
de Sortie

Entres

Registre
d'Etat

Logique
Combinatoire
d'Entre

Un seul process

Horloge

Logique
Combinatoire
de Sortie

Registre
d'Etat

Entres

Logique
Combinatoire
d'Entre

Deux process

Sorties

Horloge

synchrone : process
begin
wait until clk'event and clk='1';
EtatCourant <= EtatSuivant;
end process;

Sorties

process
begin
wait until clk'event and clk='1';
case EtatCourant is
when etat1 =>
Sortie <= ...;
if Entree = ...
then EtatCourant <= etat2;
else EtatCourant <= etat1;
end if;
end case;
end process;

combinatoire : process (Entree, EtatCourant)


begin
case EtatCourant is
when etat1 =>
Sortie <= ...;
if Entree = ...
then EtatSuivant <= etat2;
else EtatSuivant <= etat1;
end if;
end case;
end process;

128

Logique
Combinatoire
de Sortie

Registre
d'Etat

Entres

Logique
Combinatoire
d'Entre

Machine de Mealy

Sorties

Horloge

synchrone : process
begin
if reset = '0' then
EtatCourant <= EtatInitial;
elsif clk'event and clk='1';
EtatCourant <= EtatSuivant;
end process synchrone;

combinatoire : process (Entree, EtatCourant)


begin
Sortie <= ...;
case EtatCourant is
when etat1 =>
if Entree = ... then
Sortie <= ...;
EtatSuivant <= etat2;
else
Sortie <= ...;
EtatSuivant <= etat1;
end if;
end case;
end process combinatoire;

Deux process

129

Exercice
Dcrire la fonction rcepteur srie asynchrone de mots binaires de 4 bits
Din

Start
D3 D2 D1 D0 Stop

Din

horl

horl

Dout

Resetb

Dout
DR

DR
Le message binaire dbute par un start bit (Din=0) suivi des 4 bits dinformation et se termine par 2 stop bits (Din=1).
Le circuit reconstitue le mot de 4 bits et le prsentera aprs rception sur le bus de sortie Dout en activant
le signal DR (Data Ready).
Dfinir les diffrentes phases du traitement , attente du start bit, rception des 4 bits, ..
, et dcrire sous forme de machine dtats le contrleur.
etat_suivant

horl
Din

registre d tat
etat_courant

dcodage des tats


etat_suivant

signaux internes
signaux de sortie
compteur

horl

DR
Dout

130

library IEEE;
use IEEE.STD_LOGIC_1164.all;
entity rec1 is
port(reset,horl, Din: in STD_LOGIC;
Dout : out STD_LOGIC_VECTOR(3 downto 0);
DR : out STD_LOGIC);
end rec1;
architecture A of rec1 is
type etats is (phase_0, phase_1, phase_2, phase_3) ;
signal etat_courant, etat_suivant : etats;
signal compteur : integer range 0 to 3;
signal Dout_int : STD_LOGIC_VECTOR(3 downto 0);
begin
---------------------------------------------------process(etat_courant,Din, compteur)
begin
case etat_courant is
when phase_0 =>
-- attente start bit
etat_suivant <= phase_0;
if (Din= '0') then
etat_suivant <= phase_1;
end if;
when phase_1 => --reception des 4 bits dinformation
etat_suivant <= phase_1;
if (compteur = 3) then
etat_suivant <= phase_2;
end if;
when phase_2 =>
-- 1er stop bit
etat_suivant <= phase_3;
when phase_3 =>
-- 2eme stop bit
etat_suivant <= phase_0;
end case;
end process;
-----------------------------------------process(horl,reset)
begin
if (reset='1') then
etat_courant <= phase_0;
elsif (horl'event and horl='1') then
etat_courant <= etat_suivant;
end if;
end process;
-----------------------------------------------------

process(horl,reset)
begin
if (reset='1') then
compteur <= 0;
DR <= '0';
elsif (horl'event and horl='1') then
case etat_courant is
when phase_1 => --reception des 4 bits d'information
compteur <= compteur + 1;
DR <= '0';
Dout_int(3 downto 1) <= Dout_int(2 downto 0);
Dout_int(0) <= Din;
when phase_2 =>
compteur <= 0;
DR <= '1';
when others =>
compteur <= 0;
DR <= '0';
end case;
end if;
end process;
------------------------------------------------------Dout <= Dout_int;
end A;

V Synthse logique
1. Synthse logique partir de VHDL
- Principe et Flot de conception
- VHDL pour la synthse
- Styles de description
- Logique combinatoire
- Logique squentielle

2. Mcanismes de synthse logique


- Optimisations
- Structuring / Flattening / Mapping

3. Conclusions gnrales

132

Mcanismes de Synthse Logique


Synthse logique = Translation + Optimsations
Analyse du code VHDL

Description VHDL -> Translation


Le code VHDL est translat
vers une reprsentation
logique gnrique.

structuring
flatening

Niveau
Logique
Contraintes

Contraintes -> Optimisations


La logique gnrique est
mape sur les portes
logiques de la bibliothque

mapping

Modles

Niveau
Porte

Temporelles, Charge...

Bibliothque
Technologique
Combinatoire, Mmoire, Plots

133

Optimisations
Structuring (orient surface)

Minimisation, factorisation boolenne

Flattening (orient vitesse)


Equations de type PLD

Mapping

Spcification des contraintes de fonctionnement et d'environnement


Slection de composants dans la bibliothque
Gnration de plusieurs solutions

Optimisation spcifiques aux machines d'tats


Pipeline
Equilibrage de logique combinatoire entre registres

40 ns
fmax = 25 MHz

20 ns
fmax = 50 MHz

20 ns

134

Optimisations

Gnration d'arbres d'amplification


1x

1x

4x

16x

1x

64

1x
1x
1x

sortance relative constante

sortance relative constante

Partage de ressources

- Diminuer le nombre de ressources arithmtiques


sans ajouter de structures de contrle
process (A,B,C)
begin
if S = '1' then X <= A + B;
else
X <= A + C;
end if;
end process;

A
C

S
X

A
B
C

135

Optimisations
Structuring (orient surface)
Le circuit est reprsent avec des quations boolennes
Les facteurs communs sont construits et valus en taille
Les facteurs qui rduisent l'architecture deviennent des variables intermdiaires
Le nombre d'tages logiques des chemins critiques temporels est minimis
Les termes sont partags
14 AND
2 NOT
4 OR

x = a.b.c + a.b.!c + a.d.e


y = a.b.c.d + a.b.c.!d
z = a.b + c.d

Mais Temps de traverse augment !

Optimisation
7 AND
2 OR

x = a.b + a.d.e
y = a.b.c
z = a.b + c.d

Structuring

t = a.b
u = c.d
x = t + a.d.e
y = t.c
z=t+u

5 AND
2 OR

136

Optimisations
Flattening (orient vitesse)
Les quations sont dveloppes pour obtenir des quations PAL
Les facteurs communs sont distribus
Optimisation temporelle
Elimine toute logique structurelle
Nombre d'entres pas trop important

Mais Temps de traverse diminu !

4 AND
2 OR
1 NOT

t=d+e
x = a.b.t
y=a+t
z = b.c.!t

Flattening

x = a.b.d + a.b.e
y=a+d+e
z = b.c.!d.!e

7 AND
3 OR
2 NOT

137

Optimisations
Mapping : Slection de composants dans une librairie technologique
A partir dune librairie de cellules, dun jeu de contraintes et
dune description logique indpendante de la technologie
-> Passer de la description logique une netlist de cellules
-> Dpendant de la technologie
Rseau boolen
A1
A2

et

half adder
ou

X1

et
not
ou

X2

X3

et
nand

On cherche des sous graphes


implments par des cellules de la
librairie couvrant tout le rseau boolen
On value les temps / cot
On retient la solution optimale vis vis
des contraintes
Librairie de composants
cellule
nand
half adder

temps cot
2 ns
3
4 ns
14

fonction
!(AB)
!A.B + A.!B

138

Optimisations
Rgles de correspondance

139

Partage de ressources
Partage de ressources
process (A,B,C,S)
begin
if (S = 1 ) then
X <= A + B ;
else
X <= A + C ;
end if;
end process;

process (A,B,C,S)
variable opB : integer;
begin
if (S = 1 ) then
opB := B ;
else
opB := C ;
end if;
X <= A + opB;
end process;

S
X
B

S
A

opB

+
X

140

Structure parallle-srie
Structure parallle

Structure srie

if (horl event and horl = 1 )then


if (A + B =0) and (C + D = 0)then
S <= expression ;
end if;
end if;
if (horl event and
if (opa + opb =0)
test1 <= 1 ;
else
test1 <= 0 ;
end if;
end if;
.
.
if (horl event and
if (opa + opb =0)
S <= expression
end if;
end if;

+
expression
en

horl = 0 ) then
then

horl

A,C B,D

+
horl = 1 ) then
and (test1 = 1 )then
;

horl

expression
en
horl
S

141

Pipeline

Structure pipeline

142

Pipeline
Structure pipeline
if (horl event and horl = 1 ) then
if (A + B) > (C + D) then
S <= expression ;
end if;
end if;

expression
A
B

C
D

A+B

a
a>b

C+D

en

S
t

horl

signal AplusB, CplusD : integer;

if (horl event and horl = 1 ) then


AplusB <= A + B;
CplusD <= C + D;
if AplusB > CplusD then
S <= expression ;
end if;
end if;

expression

A
B

A+B

C
D

C+D

a
a>b

en

S
t

horl

143

3. Conclusions gnrales
De plus en plus d'applications justifient le dveloppement
d'un circuit spcifique.
Un ASIC permet d'explorer beaucoup plus de solutions
architecturales qu'un processeur gnralis.
Avantages nombreux, inconvnients rduits grce aux
outils.
Mthodologie : Spcification dtaille, dcoupe
fonctionnelle, conception descendante.
Apport des outils d'aide, de synthse et de CAO dans le flot
de conception d'un circuit.
Apport des langages de description (HDL).
Comparaison FPGA et ASIC masqus.
Prototypage rapide par la conception d'un FPGA ddi

144

Synthse : Evidences
Techniques de conception entres dans les murs
Tous (ou presque) les circuits numriques sont faits par
les techniques de synthse logique partir dun HDL
Plus de temps est pass sur la phase de modlisation,
donc plus de comprhension du systme complet,
travail sur l'architecture favoris
Rapprochement avec les quipes systmes, lvation
du niveau d'abstraction des descriptions de circuits
Trs grande ractivit en cas d'une volution du cahier
des charges en dernire minute
Fiabilit, sret de la production
Flexibilit du flot (interfaces bien identifies)

145

Synthse : Evidences
R-utilisation => bibliothques d'lments
gnriques
Migration technologique (ex: 0.5 -> 0.25 -> 0.18)
Introduction des techniques de test in-situ
Double comptence: informatique-lectronique
formation

Mais
Il faut garder un il critique expert lectronicien
Besoin d'outils pour grer les gros projets
cohrence de l'ensemble, mis jour automatique,

Evolution des outils


garantir la stabilit de la chane de conception

146

Evolutions
Le monde continue de bouger
Langage VHDL
extension analogique (bientt en option)
extension objet ( l'tude)
meilleure admissibilit du langage VHDL vis--vis de la synthse
> paramtres gnriques
> instructions "generate" (macro-gnration d'instructions)
> types composites (record, structures complexes)

Synthse
prise en compte du floorplan (plan de masse)
synthse architecturale (existe au niveau commercial)
=> partitionnement et allocation des ressources dans le temps

cible d'outils de plus haut niveau (gnrateurs, compilateurs, )

147

Evolutions
Routage
prise en compte des contraintes temporelles (placement)
gnration des arbres d'horloge
prise en compte des contraintes temporelles
=> placement inter et intra bloc

gnration des arbres d'horloge


lien avec la synthse (pour une nouvelle optimisation)

Technologies cibles
prpondrance des circuits programmables (FPGA, ...)
disponibilit des modlisations temporises des lments de base
=> VITAL

submicronique: quelles consquences ?


> modle linaire de timing plus suffisant
=> modle tabul: tpd = f(capacit, slope)
> prise en compte des rsistances (rseau d'horloges, ...)
> flot de conception modifi: prise en compte du placement des cellules le plus tt
possible pour la synthse (interconnexions)

148

Evolutions
Flot de conception
FPGA : les structures se complexifient
=> le flot de conception se rapproche de celui des Asics
arbre d'horloge au niveau du placement-routage
dtermination de rgions (quivalent blocs Asic)

Quel flot ?
> pr-placement des blocs (plan de masse)
> synthse par bloc avec pr-placement estimes des cellules
> placement des cellules, puis routage final
> placement des blocs, puis routage final

149

Niveaux technologiques
Type

Conception

Constituants de base

Conception lectrique

Composants
discrets

Optimisation des caractristiques


lectriques, structurelles,

Conception logique

SSI

Optimisation des quations logiques

MSI

Conception numrique

Registre

Mux

Optimisation des traitements

LSI

Conception architecturale

Squenceur

UAL

PTS PTS

Codec

CNA

VLSI

E/S

CAN

Choix des fonctionnalits

Conception mixte
S

Optimisation des implantations


matrielles et logicielles

ULSI : System on a single chip

150

Conception des ASICs


Action 1
Comportemental

HDL

Action 3

Synthse Architecturale
RTL

Action 2

ALU
Architecture

RAM

Control

Synthse Logique
Porte

D Q

Placement/Routage
Layout

151

Validation
La description comportementale demeure la rfrence.
mise au point du modle => dfinition de l'environnement
validation aprs synthse par simulation
(dlais estims par l'outil de synthse)
validation aprs routage par simulation
(dlais calculs par l'outil de routage)
L'environnement doit tre le plus prcis et le plus complet
possible (un investissement multi-usage).
Autres mthodes, autres outils:
preuve (en test prochainement)
simulation lectriques fines (bien, mais coteux)
analyse de chemins critiques (de faon statique)
vrificateur lectrique (ERC)

152

VHDL et la synthse
Ncessit d'un formalisme commun : VHDL
VHDL explore l'espace 3D des niveaux d'abstraction

large spectre d'abstractions


hirarchique modulaire et non ambigu
supporte les types de donnes abstrait -> abstraction
idale pour dfinir une spcification excutable
richesse du jeu d'instruction
modles rutilisables (gnricit, type non contraints)

Ncessit de dfinir un sous-ensemble

comportemental

Ne pas faire un sous-langage propre chaque outil


=> dfinir le sous-ensemble le plus largement acceptable structurel
Types de donnes
Oprations (avec contraintes d'utilisation)

RTL

logiques, arithmtiques, comparaisons, dcalages

Instructions de synchronisation (wait), conditionnelles, de boucle,


d'affectation
Constructions pour la hirarchie et la structuration du code ou pour le style

153

Vous aimerez peut-être aussi