Documente Academic
Documente Profesional
Documente Cultură
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 dj faite, c'est vous d'crire le software
Jeff Dungen
Avril 2005
VHDL
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 numriques Outil pour la synthse et simulation de circuits Toute a grace au DoD des tats-Unis. :-)
Jeff Dungen
Avril 2005
Votre temps est trop prcieux pour apprendre du code inutile comme a !
Jeff Dungen ELE 2300 Douzime cours Avril 2005
Jeff Dungen
Avril 2005
tape 1 : Bote-noire
Disons qu'on veut coder un 'full-adder'. En premier on tablit les entres et sorties, puis on code cette botenoire (qui s'appelle un 'entity' en VHDL) :
(bote noire) entity fullAdder is port ( x, y, carryIn : in std_logic; sum, carryOut : out std_logic ); end fullAdder;
Ce code dcrit une bote-noire qui s'appelle fullAdder qui a trois entres (x, y, carryIn) de 1-bit chaque, et deux sorties (sum, carryOut) de 1-bit chaque.
Jeff Dungen ELE 2300 Douzime cours Avril 2005
end example;
architecture example begin sum <= x xor y xor carryOut <= (x and (x and (y and end example;
Ce code dcrit la logique pour les deux sorties. Ces sorties seront toujours dtermines en parallle.
Jeff Dungen ELE 2300 Douzime cours Avril 2005
Jeff Dungen
Avril 2005
Si vous avez des questions, demandez-les ! Certain que vous n'tes pas seul !
Jeff Dungen ELE 2300 Douzime cours Avril 2005
(deux bits)
Ce fois-ci, on utilise des std_logic_vector pour representer des bus (donnes plusieurs bits).
Jeff Dungen
Avril 2005
adder0
adder1
On utilise un port map pour indiquer les connections externes et internes des deux botes-noires.
Jeff Dungen ELE 2300 Douzime cours Avril 2005
firstBit
otherBits
Jeff Dungen
Jeff Dungen
Avril 2005
process(clock) : executez ce bloc de code si clock change de valeur clock'event : vrai si clock vient de changer de valeur
Jeff Dungen ELE 2300 Douzime cours Avril 2005
OFF / 0
i=0 i=1
Jeff Dungen
Avril 2005
OFF / 0
i=0 i=1
ON / 1
Jeff Dungen
Fini le VHDL
Ceci complte la mini-prsentation 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 cot. N'oubliez jamais : Bote-noire Circuit Parallelisme Les kits de FPGA avec environnement de dveloppement en VHDL (ou Verilog) sont peu coteux. Vous pouvez vous amuser pendant toute l't pour seulement 100 $. :-)
http://www.altera.com/products/devkits/altera/kit-max7k_quickstart.html Quartus II Web Edition (gratuit) Jeff Dungen ELE 2300 Douzime cours Avril 2005
Les FPGA
On a dj discut les FPGA. C'est possible de programmer un FPGA avec du VHDL synthtis (compil). Enfin c'est normalement le but des FPGA : Les FPGA sont parfaits pour implmenter de complxes circuits logiques pour des applications o il n'existe pas encore un chip 'off-the-shelf'. D'abord, ils sont trs flexibles, mais aussi coteux !
Jeff Dungen
Avril 2005
Les microprocesseurs
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 implment en hardware Microprocesseur : design implment en software Mme si un microprocesseur est inflexible au point de vue du hardware, c'est quand mme puissant et flexible en software.
Jeff Dungen ELE 2300 Douzime cours Avril 2005
Les microprocesseurs
Comparons-donc un microprocesseur et un FPGA : Mmoire Instructions Entres Microprocesseur Sorties Entres FPGA Sorties
Il peut prendre des milliers d'instructions avant qu'un microprocesseur achve ce qu'un FPGA peut faire presque instantanment !
Jeff Dungen ELE 2300 Douzime cours Avril 2005
Instructions
Il-y-a trois niveaux d'instruction (langue de programmation, assembleur, code machine) : z = 13 + 69; MOVEQ(D0,$13) MOVEQ(D1,$69) ADD(D0,D1) Pour super-geeks 0111000000001101 0111001001000101 1101000010000001 Aaaaah !!!
Pour geeks
Normalement on code dans une langue de programmation haute-niveau comme Java ou C++. Mais parfois c'est ncssaire de coder en assembleur. ELE4302 ?
Jeff Dungen ELE 2300 Douzime cours Avril 2005
Avril 2005
Microcontrleurs
Un microcontrleur est simplement un microprocesseur avec des priphriques sur le mme chip. Exemples de priphriques : Convertisseur analogique / numrique (ADC) Convertisseur numrique / analogique (DAC) UART (Universal Asynchronous Receiver Transmitter) PWM (Pulse Width Modulator) etc... Les microcontrleurs sont partout ! Vous pouvez galement acheter ou construire votre propre kit de microcontrleur pour beaucoup moins que 100 $.
Jeff Dungen ELE 2300 Douzime cours Avril 2005
Pendant votre formation, vous allez apprendre et apprcier comment choisir le chip le moins couteux pour implmenter l'application donne. Puis vous allez vous amuser le programmer. :-)
Jeff Dungen ELE 2300 Douzime cours Avril 2005
Jeff Dungen
Avril 2005
Jeff Dungen
Avril 2005