Vous êtes sur la page 1sur 33
CCoouurrss 1122 :: VVHHDDLL eett MMiiccrroopprroocceesssseeuurrss
CCoouurrss 1122 :: VVHHDDLL eett MMiiccrroopprroocceesssseeuurrss

Ce cours touche sur deux sujets importants qui pourraient être sur l'examen, mais certain qu'ils ne compteront pas pour trop de points

VHDL : langue de programmation pour le hardware

Microprocesseurs : le design en hardware est déjà faite, c'est à vous d'écrire le software

Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
PPoouurrqquuooii eesstt--ccee--qquu''oonn aapppprreenndd ççaa ??
PPoouurrqquuooii eesstt--ccee--qquu''oonn aapppprreenndd ççaa ??

Je sais, je sais

bientot. Quand-même on apprend la matière de ce

cours pour les raisons suivantes :

C'est le dernier cours puis l'examen est

Il-y-a des questions à l'examen sur la matière présenté

aujourd'hui

Vous allez apprendre et utiliser le VHDL dans d'autres cours, et Jeff a mis beaucoup d'effort à vous donner la meilleur introduction possible au sujet.

Vous allez apprendre et utiliser les microprocesseurs et microcontrôleurs dans d'autres cours. L'introduction est moins bonne que celle pour le VHDL, mais au moins on discute le Playstation 2

:-(

Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
VVHHDDLL
VVHHDDLL

Si vous avez lu le texte, vous avez probablement remarqué qu'il contient beaucoup de code VHDL. D'abord, c'est quoi le VHDL ??? :

(Very High Speed Integrated Circuit) Hardware Description Language

Language de programmation de circuits numériques

Outil pour la synthèse et simulation de circuits

Toute ça grace au DoD des États-Unis. :-)

Jeff Dungen
Jeff Dungen
et simulation de circuits Toute ça grace au DoD des États-Unis. :-) Jeff Dungen ELE 2300
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
VVHHDDLL ppoouurr ssiimmuullaattiioonn
VVHHDDLL ppoouurr ssiimmuullaattiioonn

Regardez ce code VHDL 'hello world' :

entity HW_1 is end;

architecture Behave of HW_1 is constant M : STRING := “hello world”; signal Ch : CHARACTER := ' '; begin process begin for i in M'RANGE loop Ch <= M(i); wait for 1 ns; end loop; wait; end process; end;

C'est pas mal comme le C/C++, Java, Pascal, etc

Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
VVHHDDLL ppoouurr ssiimmuullaattiioonn
VVHHDDLL ppoouurr ssiimmuullaattiioonn

Maintenant, oubliez-le !

entity HW_1 is end; architecture Behave of HW_1 is constant M : STRING := “hello
entity HW_1 is end;
architecture Behave of HW_1 is
constant M : STRING := “hello world”;
signal Ch : CHARACTER := ' ';
begin
process
begin
for i in M'RANGE
loop
Ch <= M(i);
wait for 1 ns;
end loop;
wait;
end process;
end;

Votre temps est trop précieux pour apprendre du code inutile comme ça !

Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
VVHHDDLL ppoouurr ssiimmuullaattiioonn
VVHHDDLL ppoouurr ssiimmuullaattiioonn

Mais Jeff, pourquoi tu nous montres quelque chose, puis tu nous dis de l'oublier ???

Bon, il est essentiel de noter que la langue VHDL est vaste, redondante et bizarre. La bureaucracie militaire est largement responsable pour ceci. C'est la même chose pour Ada, la langue de programmation pour projets militaires.

À cause de ce fait, c'est super-important d'apprendre le VHDL comme il faut. C'est le but de ce mini-présentation.

Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
VVHHDDLL ccoommmmee iill ffaauutt
VVHHDDLL ccoommmmee iill ffaauutt

Aujourd'hui on apprendra comment synthèser des circuits logiques. On laisse tomber la simulation.

Il faut d'abord :

Penser au système et aux interconnections en termes de boîtes-noires.

Visualiser le circuit AVANT de coder.

S'en servir de la parallelisme naturelle des circuits logiques.

Si vous n'apprenez qu'une chose aujourd'hui, apprenez les trois points ci-hauts !

Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
ÉÉttaappee 11 :: BBooîîttee--nnooiirree
ÉÉttaappee 11 :: BBooîîttee--nnooiirree

Disons qu'on veut coder un 'full-adder'. En premier on établit les entrées et sorties, puis on code cette boîte- noire (qui s'appelle un 'entity' en VHDL) :

noire (qui s'appelle un 'entity' en VHDL) : (boîte noire) entity fullAdder is port ( x,

(boîte noire)

s'appelle un 'entity' en VHDL) : (boîte noire) entity fullAdder is port ( x, y, carryIn

entity fullAdder is port

(

x, y, carryIn : in std_logic; sum, carryOut : out std_logic

); end fullAdder;

Ce code décrit une boîte-noire qui s'appelle fullAdder qui a trois entrées (x, y, carryIn) de 1-bit chaque, et deux sorties (sum, carryOut) de 1-bit chaque.

Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
ÉÉttaappee 22 :: VViissuuaalliisseerr llee cciirrccuuiitt llooggiiqquuee
ÉÉttaappee 22 :: VViissuuaalliisseerr llee cciirrccuuiitt llooggiiqquuee

Maintenant, il faut remplir la boîte-noire. En premier, on visualise le circuit logique, puis on l'écrit en code :

visualise le circuit logique, puis on l'écrit en code : (implémentation de la boîte noire) architecture
visualise le circuit logique, puis on l'écrit en code : (implémentation de la boîte noire) architecture

(implémentation de la boîte noire)

architecture example of fullAdder is begin end example;
architecture example of fullAdder is begin end example;

architecture example of fullAdder is begin

end example;

architecture example of fullAdder is begin end example; Ce code décrit un implémentation de la boîte-noire

Ce code décrit un implémentation de la boîte-noire du fullAdder. Cet implémentation s'appelle example.

Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
ÉÉttaappee 33 :: PPeennsseerr ppaarraalllleelliissmmee
ÉÉttaappee 33 :: PPeennsseerr ppaarraalllleelliissmmee

Finalement, on complète le code en se servant de la parallelisme naturelle du circuit logique :

se servant de la parallelisme naturelle du circuit logique : architecture example of fullAdder is begin
se servant de la parallelisme naturelle du circuit logique : architecture example of fullAdder is begin

architecture example of fullAdder is begin sum <= x xor y xor carryIn; carryOut <= (x and y) or

end example;

(x

and carryIn) or

(y

and carryIn);

end example; (x and carryIn) or (y and carryIn); Ce code décrit la logique pour les

Ce code décrit la logique pour les deux sorties. Ces sorties seront toujours déterminées en parallèle.

Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
FFiinnaalleemmeenntt,, ttoouuttee eennsseemmbbllee
FFiinnaalleemmeenntt,, ttoouuttee eennsseemmbbllee
FFiinnaalleemmeenntt,, ttoouuttee eennsseemmbbllee library ieee; use ieee.std_logic_1164.all; entity fullAdder is port
FFiinnaalleemmeenntt,, ttoouuttee eennsseemmbbllee library ieee; use ieee.std_logic_1164.all; entity fullAdder is port
FFiinnaalleemmeenntt,, ttoouuttee eennsseemmbbllee library ieee; use ieee.std_logic_1164.all; entity fullAdder is port
FFiinnaalleemmeenntt,, ttoouuttee eennsseemmbbllee library ieee; use ieee.std_logic_1164.all; entity fullAdder is port
FFiinnaalleemmeenntt,, ttoouuttee eennsseemmbbllee library ieee; use ieee.std_logic_1164.all; entity fullAdder is port

library ieee; use ieee.std_logic_1164.all;

entity fullAdder is port

(

x, y, carryIn : in std_logic; sum, carryOut : out std_logic

); end fullAdder;

architecture example of fullAdder is begin sum <= x xor y xor carryIn; carryOut <= (x and y) or

end example;

(x

and carryIn) or

(y

and carryIn);

Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
VVHHDDLL,, cc''eesstt ppaass ssii ppiirree
VVHHDDLL,, cc''eesstt ppaass ssii ppiirree

Ce qu'on vient de voir est intuitif et façile à comprendre. Mais le code pour des circuits plus complèxes devient vite confusant et ambigu. On présente d'abord, étape par étape, des exemples plus complèxes, en l'espérance que le syntaxe devient moins génant

en l'espérance que le syntaxe devient moins génant for i in 7 downto 0 generate )

for i in 7 downto 0 generate

)

FA:fullAdder port map(x(0),

subtype A is NATURAL range 7 downto 0

Si vous avez des questions, demandez-les ! Certain que vous n'êtes pas seul !

Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
LLee ffuullll--aaddddeerr àà ddeeuuxx bbiittss
LLee ffuullll--aaddddeerr àà ddeeuuxx bbiittss

Il-y-a mille-et-un moyens de coder un full-adder à deux bits. On commence avec l'approche 'force-brute'.

(deux bits)
(deux bits)

entity twoBitfullAdder is port

(

x, y : in std_logic_vector(1 downto 0); carryIn : in std_logic; sum : out std_logic_vector(1 downto 0); carryOut : out std_logic

); end fullAdder;

Ce fois-ci, on utilise des std_logic_vector pour representer des bus (données à plusieurs bits).

Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
LLee ffuullll--aaddddeerr àà ddeeuuxx bbiittss
LLee ffuullll--aaddddeerr àà ddeeuuxx bbiittss

On pense au circuit puis on code :

àà ddeeuuxx bbiittss On pense au circuit puis on code : architecture example1 of twoBitfullAdder is

architecture example1 of twoBitfullAdder is signal carryTemp: std_logic; begin sum(0) <= x(0) xor y(0) xor carryIn; carryTemp <= (x(0) and y(0)) or (x(0) and carryIn) or (y(0) and carryIn); sum(1) <= x(1) xor y(1) xor carryTemp; carryOut <= (x(1) and y(1)) or (x(1) and carryTemp) or (y(1) and carryTemp);

end example1;

and carryTemp) or (y(1) and carryTemp); end example1; On utilise un signal pour representer la connection

On utilise un signal pour representer la connection interne.

Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
LLee ffuullll--aaddddeerr àà ddeeuuxx bbiittss
LLee ffuullll--aaddddeerr àà ddeeuuxx bbiittss

On pourrait aussi penser au circuit comme étant deux boîtes-noires :

adder0 adder1
adder0
adder1

architecture example2 of twoBitfullAdder is signal carryTemp: std_logic; begin adder0: fullAdder port map(x(0), y(0), carryIn,

sum(0),

carryTemp); adder1: fullAdder port map(x(1), y(1), carryTemp,

end example2;

sum(1),

carryOut);

y(1), carryTemp, end example2; sum(1), carryOut); On utilise un port map pour indiquer les connections
y(1), carryTemp, end example2; sum(1), carryOut); On utilise un port map pour indiquer les connections

On utilise un port map pour indiquer les connections externes et internes des deux boîtes-noires.

Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
LLee ffuullll--aaddddeerr àà ddeeuuxx bbiittss
LLee ffuullll--aaddddeerr àà ddeeuuxx bbiittss

On pourrait aussi utiliser l'itération :

firstBit architecture example3 of twoBitfullAdder is signal carryTemp: std_logic_vector(1 downto 0); begin Iteration:
firstBit
architecture example3 of twoBitfullAdder is
signal carryTemp: std_logic_vector(1 downto 0);
begin
Iteration: for i in 1 downto 0 generate
firstBit: if i = 0 generate
adder: fullAdder port map(x(0), y(0),
carryIn,
sum(0),
carryTemp(0));
otherBits
end generate;
otherBits: if i /= 0 generate
adder: fullAdder port map(x(i), y(i),
carryTemp(i-1),
sum(i),
carryTemp(1));
end generate;
end generate;
carryOut <= carryTemp(1);
end example3;
Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
AAtttteennttiioonn !! CCaauuttiioonn!! AAcchhttuunngg!!
AAtttteennttiioonn !! CCaauuttiioonn!! AAcchhttuunngg!!

Ce n'est vraiment pas une exaggération qu'il-y-a mille-et-un moyens de coder un full-adder à deux bits !

Le texte présente aussi des moyens qui ressemblent plutôt de code C/C++ qu'un implémentation de circuit logique.

Résistez la temptation d'utiliser ces méthodes !

Les circuits logiques et les codes séquentiels ne sont pas amis ! Les codes séquentiels empêchent trop façilement la parallelisme naturelle du hardware. Les raccourcis sont pour les gurus de VHDL. Ne faites rien avant de comprendre ce que vous faites !

Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
BBaassccuullee DD ((cciirrccuuiitt ssyynncchhrroonnee))
BBaassccuullee DD ((cciirrccuuiitt ssyynncchhrroonnee))

Uh oh, qu'est-ce-qu'arrive pour les circuits synchrones qui réagissent selon une horloge ???

Enfin, c'est pas si pire non-plus. On examine la bascule D :

c'est pas si pire non-plus. On examine la bascule D : entity basculeD is port (

entity basculeD is port

(

d, clock : in std_logic; q, qBar : out std_logic

); end basculeD;

Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
BBaassccuullee DD ((cciirrccuuiitt ssyynncchhrroonnee))
BBaassccuullee DD ((cciirrccuuiitt ssyynncchhrroonnee))

Bon, on pourrait coder le circuit, mais pour les circuits synchrones, on utilise de préférence la table de sorties suivantes :

Clk

Q(t+1)

x

Q(t)

D

D

de sorties suivantes : Clk Q(t+1) x Q(t) D architecture example of basculeD is begin process(clock)

architecture example of basculeD is begin process(clock) begin if clock'event and clock = '1' then q <= d; qBar <= not d; end if; end process; end example;

process(clock) : executez ce bloc de code si clock change de valeur clock'event : vrai si clock vient de changer de valeur

Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
MMaacchhiinnee àà ééttaatt ssyynncchhrroonnee
MMaacchhiinnee àà ééttaatt ssyynncchhrroonnee

Voici l'exemple le plus complèxe qu'on verra dans ce cours :

reset OFF / 0 i = 0 i = ON / 1
reset
OFF / 0
i = 0
i =
ON / 1

1

Jeff Dungen
Jeff Dungen
ce cours : reset OFF / 0 i = 0 i = ON / 1 1
ce cours : reset OFF / 0 i = 0 i = ON / 1 1

entity machineAEtat is port

(

i, resetBar, clock : in std_logic; z : out std_logic

); end machineAEtat;

Wow ! Que c'est complèxe ! :-p

ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
MMaacchhiinnee àà ééttaatt ssyynncchhrroonnee
MMaacchhiinnee àà ééttaatt ssyynncchhrroonnee
reset OFF / 0 i = 0 i = ON / 1
reset
OFF / 0
i = 0
i =
ON / 1

1

Jeff Dungen
Jeff Dungen

architecture example of machineAEtat is type stateType is (OFF, ON); signal state: stateType; begin process(resetBar, clock) begin if resetBar = 0 then state <= OFF; elsif clock'event and clock = '1' then case state is when OFF => if i = '0' then state <= OFF; else state <= ON; end if; when ON => if i = '0' then state <= OFF; else state <= ON; end if; end case; end if; end process; z <= '0' when state = OFF else '1'; end example;

ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
FFiinnii llee VVHHDDLL
FFiinnii llee VVHHDDLL

Ceci complète la mini-présentation sur le VHDL.

Si jamais vous utilisez le VHDL, achetez en premier un bon livre sur le VHDL (attention, il-y-a des 'crappy' livres aussi !). Ça vaut vraiment le coût.

N'oubliez jamais : Boîte-noire Circuit Parallelisme

Les kits de FPGA avec environnement de développement en VHDL (ou Verilog) sont peu coûteux. Vous pouvez vous amuser pendant toute l'été pour seulement 100 $. :-)

http://www.altera.com/products/devkits/altera/kit-max7k_quickstart.html

Jeff Dungen
Jeff Dungen

Quartus II Web Edition (gratuit)

ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
LLeess FFPPGGAA
LLeess FFPPGGAA

On a déjà discuté les FPGA. C'est possible de programmer un FPGA avec du VHDL synthétisé (compilé). Enfin c'est normalement le but des FPGA :

Les FPGA sont parfaits pour implémenter de complèxes circuits logiques pour des applications où il n'existe pas encore un chip 'off-the-shelf'.

D'abord, ils sont très flexibles, mais aussi coûteux !

Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
LLeess mmiiccrroopprroocceesssseeuurrss
LLeess mmiiccrroopprroocceesssseeuurrss

Par contre, on n'a pas tellement touché aux microprocesseurs.

Un microprocesseur est un chip polyvalent comme un FPGA, mais où les circuits logiques sont inchangeables. Un microprocessleur est controllé par du software (logiciel).

FPGA : design implémenté en hardware Microprocesseur : design implémenté en software

Même si un microprocesseur est inflexible au point de vue du hardware, c'est quand même puissant et flexible en software.

Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
LLeess mmiiccrroopprroocceesssseeuurrss
LLeess mmiiccrroopprroocceesssseeuurrss

Comparons-donc un microprocesseur et un FPGA :

Mémoire

Mémoire

Mémoire
Mémoire

Entrées

un microprocesseur et un FPGA : Mémoire Entrées Instructions Microprocesseur Sorties Entrées FPGA

Instructions

microprocesseur et un FPGA : Mémoire Entrées Instructions Microprocesseur Sorties Entrées FPGA Sorties Il
Microprocesseur Sorties

Microprocesseur

Sorties

Microprocesseur Sorties

Entrées

Entrées Instructions Microprocesseur Sorties Entrées FPGA Sorties Il peut prendre des milliers
Entrées Instructions Microprocesseur Sorties Entrées FPGA Sorties Il peut prendre des milliers

FPGA

FPGA Sorties

Sorties

FPGA Sorties
Microprocesseur Sorties Entrées FPGA Sorties Il peut prendre des milliers d'instructions avant

Il peut prendre des milliers d'instructions avant qu'un microprocesseur achève ce qu'un FPGA peut faire presque instantanément !

Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
IInnssttrruuccttiioonnss
IInnssttrruuccttiioonnss

Il-y-a trois niveaux d'instruction (langue de programmation, assembleur, code machine) :

z = 13 + 69;

Pour geeks

MOVEQ(D0,$13)

MOVEQ(D1,$69)

ADD(D0,D1)

0111000000001101

0111001001000101

1101000010000001

0111000000001101 0111001001000101 1101000010000001 Pour super-geeks A a a a a h ! ! ! Normalement on

Pour super-geeks

Aaaaah !!!

Normalement on code dans une langue de programmation haute-niveau comme Java ou C++. Mais parfois c'est nécéssaire de coder en assembleur. ELE4302 ?

Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
DD''uunn sseeuull bbiitt àà 112288 bbiittss
DD''uunn sseeuull bbiitt àà 112288 bbiittss

Le nombre de bits d'un microprocesseur indique la largeur de données sur laquelles il peut opérer.

la largeur de données sur laquelles il peut opérer. MC14500 : 1-bit Voir Cours 11 et

MC14500 : 1-bit Voir Cours 11 et Polycopié Ch. 7

opérer. MC14500 : 1-bit Voir Cours 11 et Polycopié Ch. 7 Playstation 2 : 128-bit Jouez

Playstation 2 : 128-bit Jouez au Gran Turismo 4

Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
MMiiccrrooccoonnttrrôôlleeuurrss
MMiiccrrooccoonnttrrôôlleeuurrss

Un microcontrôleur est simplement un microprocesseur avec des périphériques sur le même chip. Exemples de périphériques :

Convertisseur analogique / numérique (ADC)

Convertisseur numérique / analogique (DAC)

UART (Universal Asynchronous Receiver Transmitter)

PWM (Pulse Width Modulator)

etc

Les microcontrôleurs sont partout ! Vous pouvez également acheter ou construire votre propre kit de microcontrôleur pour beaucoup moins que 100 $.

Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
DDSSPP –– DDiiggiittaall SSiiggnnaall PPrroocceessssoorr
DDSSPP –– DDiiggiittaall SSiiggnnaall PPrroocceessssoorr

Un DSP est semblable à un microXXXeur, mais il est optimisé pour faire des calculs et manipulations mathématiques

complèxes et spécialisés.

Les DSPs fonctionnent souvent en temps réel et d'abord ils sont souvent optimisés pour la vitesse.

Applications :

Téléphones cellulaires numériques

Cartes de son, vidéo

Modems

etc Jeff Dungen
etc
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
MMiiccrrooXXXXXXeeuurrss vvss FFPPGGAAss
MMiiccrrooXXXXXXeeuurrss vvss FFPPGGAAss

Dans le monde actuel, on peut dire que plus quelque chose est 'cheap', plus on l'utilise. C'est à dire que les microcontrôleurs de 4-bits sont beaucoup plus répandus que ceux de 8-bits et de 16-bits. C'est à dire aussi que les microXXXeurs en général sont plus répandus que les FPGAs.

microXXXeurs en général sont plus répandus que les FPGAs. Moins cher Plus répandu Plus cher Moins
microXXXeurs en général sont plus répandus que les FPGAs. Moins cher Plus répandu Plus cher Moins

Moins cher Plus répandu

sont plus répandus que les FPGAs. Moins cher Plus répandu Plus cher Moins répandu Pendant votre

Plus cher

Moins répandu

Pendant votre formation, vous allez apprendre et apprécier comment choisir le chip le moins couteux pour implémenter l'application donnée. Puis vous allez vous amuser à le programmer. :-)

Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
MMeerrccii,, bboonnnnee cchhaannccee,, aauu rreevvooiirr !!
MMeerrccii,, bboonnnnee cchhaannccee,, aauu rreevvooiirr !!

Bon, après que Monsieur T. vous donne le sommaire une dernière fois, le cours est terminé !

Je veux vous remercier pour étant patient avec moi, ma manque de vocabulaire française, et mes exemples bizarres.

J'espère que vous avez appris beaucoup, tout en vous amusant. :-)

Je vous souhaite bonne chance sur l'examen. Devenez maîtres en machines à état synchrones et asynchrones et

vous aurez de très bonnes notes. Sinon, trouvez Olivier et moi

après l'examen, et achetez-nous plusieurs bières

:-p Avril 2005
:-p
Avril 2005
Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
SSoommmmaaiirree ((ppaarr MMoonnssiieeuurr TT))
SSoommmmaaiirree ((ppaarr MMoonnssiieeuurr TT))
SSoommmmaaiirree ((ppaarr MMoonnssiieeuurr TT)) Boîte-noire, circuit, parallelisme ! FPGA = hardware, flexible, couteux

Boîte-noire, circuit, parallelisme !

FPGA = hardware, flexible, couteux MicroXXXeur = software, cheap DSP = mathématiques hard-core

Étudiez fort jeunes ingénieurs ! I pity the fool who has to take this course again !

! I pity the fool who has to take this course again ! EXAMEN FINAL :

EXAMEN FINAL : samedi le 30 avril de 13h30 à 16h en B-418

Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005
OOnn ss''aammuussee bbiieenn àà ffaaiirree lleess ddeevvooiirrss
OOnn ss''aammuussee bbiieenn àà ffaaiirree lleess ddeevvooiirrss
bbiieenn àà ffaaiirree lleess ddeevvooiirrss Lecture courant : VHDL partout au texte Lecture à venir :

Lecture courant : VHDL partout au texte

Lecture à venir : N / A

Exercices : Machines à état !!!

(réponses sur le site web du cours)

Lecture optionelle : N / A

Monsieur T sait si vous avez fait vos devoirs !!!

Jeff Dungen
Jeff Dungen
ELE 2300 Douzième cours
ELE 2300 Douzième cours
Avril 2005
Avril 2005