La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Du Software au Hardware Introduction aux composants programmables FPGA Grégory ESTRADEhttp://torlus.com/

Présentations similaires


Présentation au sujet: "Du Software au Hardware Introduction aux composants programmables FPGA Grégory ESTRADEhttp://torlus.com/"— Transcription de la présentation:

1 Du Software au Hardware Introduction aux composants programmables FPGA Grégory ESTRADEhttp://torlus.com/

2 Introduction aux FPGA - Plan Electronique numérique Logique programmable Conception hardware sur FPGA –Langages et outils –Bases –Exemples simples –Projets avancés En pratique

3 Introduction aux FPGA – Electronique numérique Bases –Portes logiques –Latches, Flip-flops –Horloge, Bus... Série 7400 et 4000 –Premiers circuits intégrés déployés dans les 70s –Familles TTL et CMOS –Accessible aux hobbyistes –Applications : « glue logic », systèmes complets ( )http://www.homebrewcpu.com/

4 Source : Wikipedia

5 Introduction aux FPGA – Electronique numérique Circuits avancés –ROM, RAM –CPU, DSP (audio, vidéo, télécoms… ), MCU (Microcontrôleurs) –Contrôleurs USB, Ethernet… –ASIC –DAC, ADC, capteurs, servo-moteurs… Logique programmable –PAL, GAL –CPLD, FPGA

6 Logique programmable Synthèse combinatoire Circuits séquentiels Composants

7 S = Ci./A./B + /Ci.A./B + /Ci./A.B + Ci.A.B Co = Ci.A./B + Ci./A.B + /Ci.A.B + Ci.A.B Synthèse combinatoire

8 Source : Wikipedia PAL = Programmable Array Logic

9 Introduction aux FPGA – Logique programmable Synthèse combinatoire Gate Array (PAL, PLA, GAL) ROM Microcontrôleur ( )http://www.schells.com/intellicart.shtml

10 Circuits séquentiels Horloge, bascules Finite State Machine Référence : « Du Binaire au Processeur » - Emmanuel Mesnard

11 Introduction aux FPGA – Logique programmable Composants : CPLD –Apparition dans les 80s. –Capacité : portes (500 macrocells). –Configuration stockée « on-chip ». –Langages de haut niveau (HDLs).

12 Introduction aux FPGA – Logique programmable Composants : FPGA –Extension des CPLD, architecture plus flexible –Capacité : millions de portes –Configuration stockée sur EEPROM externe –Éléments dédiés : RAM, multiplicateurs, CPU cores...

13 Source :

14 Introduction aux FPGA – Logique programmable Composants : FPGA (suite) –Remplacement des ASICs, DSP... –Constructeurs : Xilinx, Altera, Lattice, Actel... –Développement combiné software/hardware –Runtime reconfiguration

15 Conception hardware sur FPGA Langages et outils Bases du langage VHDL Exemple simple Projets avancés

16 Introduction aux FPGA – Conception Outils (Xilinx) Spartan-3 Starter Board ISE WebPack ModelSim Source : Diligent

17 Introduction aux FPGA – Conception Etapes Edition des sources Edition du fichier UCF : « User Constraints File » –Répartition des signaux de lentité principale sur des pins –Contraintes de timing –IO Standards (LVTTL, LVCMOS33, LVCMOS25…) Synthèse et génération du fichier programme Génération de limage EEPROM Flashage de lEEPROM

18 Introduction aux FPGA – Conception Langages VHDL –Origine : DoD américain –Syntaxe ADA –Meilleure abstraction Verilog –Origine : industrie –Syntaxe proche du C –Plus simple dapprentissage, plus concret Saisie de schémas

19 Introduction aux FPGA – Conception Langages (suite) Software Programming Language –Compilation en langage machine –Exécution séquentielle Hardware Description Language –Synthèse en « portes et câbles » –Exécution concurrente –Exécution séquentielle en simulation (Test benchs)

20 Introduction aux FPGA – Conception Langages (suite) Pièges –Exécution concurrente –« Optimisations » –Synthèse (guidage, asynchronisme…) –Problèmes hardware (Routage, clock skew, SSO…) Remèdes –Simulation –Rapports de synthèse –Visualisation à loscilloscope, analyseur logique

21 VHDL - Porte ET à 2 entrées -- imports library IEEE; use IEEE.std_logic_1164.all; -- entité entity porte_et is port( a,b : in std_logic; s : out std_logic ); end porte_et; -- architecture architecture rtl of porte_et is begin s <= a and b; end rtl;

22 VHDL - Utilisation de la porte ET à 2 entrées library IEEE; use IEEE.std_logic_1164.all; entity mon_systeme is … end mon_systeme; architecture arch of mon_systeme is -- déclaration de porte_et pour utilisation component porte_et is port( a,b : in std_logic; s : out std_logic ); end component; -- déclaration de « registres » 8 bits signal op1 : std_logic_vector(7 downto 0); signal op2 : std_logic_vector(7 downto 0); signal res : std_logic_vector(7 downto 0); begin -- instanciation de 8 portes_et et8 : for i in op1range generate et8_0 : porte_et port map (a => op1(i), b => op2(i), s => res(i)); end generate et8; end arch;

23 Autres exemples : représentation dun MUX -- template 1: X <= A when S = '1' else B; -- template 2: with S select X <= A when '1' else B; -- template 3: process(A,B,S) begin case S is when '1' => X <= A; when others => X <= B; end case; end process; -- template 4: process(A,B,S) begin if S = '1' then X <= A; else X <= B; end if; end process; Source : Wikipedia

24 Autres exemples (suite) -- logique 3 états et « dont care » : B <= A when CE = 0, Z when OE = 1 else X; -- horloge et reset asynchrone process(clk, reset) if (reset = 0) then … elsif clkevent and clk = 1 then … end if; begin end process; -- simulation : génération dune horloge process begin clk <= 0; wait for 20ns; clk <= 1; wait for 20ns; end process;

25 Introduction aux FPGA – Conception Exemple : Communication RS-232 Utilisation dun convertisseur (MAX232)

26 Introduction aux FPGA – Conception Exemple : Communication RS-232 Caractéristiques –Fonctionnement à 16Mhz –Communication à 9600 bps, format 8N1 Exemple dinterface –Caractères à lire et à écrire –Signal de demande décriture –Signal « busy » en écriture –Signal de demande de lecture –Signal « avail » en lecture –Reset

27 Exemple : Communication RS-232 entity UART is port( clk : in std_logic; reset : in std_logic; tx : out std_logic; rx : in std_logic; rd : in std_logic; rd_data : out std_logic_vector(7 downto 0); avail : out std_logic; wr : in std_logic; wr_data : in std_logic_vector(7 downto 0); busy : out std_logic ); end UART;

28 Introduction aux FPGA – Conception Exemple : Communication RS-232 Fonctionnement –Suréchantillonage x16 (utile en réception uniquement) –Compteur serclk_cnt (adapté au baudrate) / 9600 / 16 = 103 –Compteurs rx_cnt et tx_cnt sur 8 bits 4 bits de poids faible : suréchantillonage 4 bits de poids fort : compteur des bits à transmettre/recevoir –Bit de start –Bits de données –Bit de stop

29 Architecture de lUART – Vue densemble architecture rtl of UART is -- signaux de contrôle (non détaillés) signal serclk_cnt : std_logic_vector(6 downto 0); signal tx_data : std_logic_vector(7 downto 0); signal tx_cnt : std_logic_vector(7 downto 0); signal rx_data : std_logic_vector(7 downto 0); signal rx_cnt : std_logic_vector(7 downto 0); begin process(clk, reset) begin if reset = 0 then -- réinitalisation (non détaillée) elsif rising_edge(clk) then -- gestion des signaux de contrôle (non détaillée) serclk_cnt <= serclk_cnt + 1; if serclk_cnt = 103 then serclk_cnt '0'); -- unité de réception -- unité démission end if; end process; end rtl;

30 Architecture de lUART – Emission -- un ordre décriture positionne tx_cnt à et busy à 1 if tx_cnt(7 downto 4) = "0000" then tx <= '1'; elsif tx_cnt(7 downto 4) = "0001" then -- start bit tx <= '0'; tx_cnt <= tx_cnt + 1; elsif tx_cnt(7 downto 4) < "1010" then -- data bits tx <= tx_data(0); if tx_cnt(3 downto 0) = "1111" then tx_data <= "0" & tx_data(7 downto 1); end if; tx_cnt <= tx_cnt + 1; elsif tx_cnt(7 downto 4) = "1010" then -- stop bit tx <= '1'; tx_cnt <= tx_cnt + 1; else busy <= 0; tx_cnt <= " "; end if;

31 Architecture de lUART – Réception if rx_cnt(7 downto 4) = "0000" then if rx = '0' then -- start bit rx_cnt <= rx_cnt + 1; if rx_cnt(3 downto 0) = "1000" then rx_cnt <= " "; end if; else rx_cnt <= " "; end if; elsif rx_cnt(7 downto 4) < "1001" then -- data bits rx_cnt <= rx_cnt + 1; if rx_cnt(3 downto 0) = "1111" then rx_data <= rx & rx_data(7 downto 1); end if; else rx_cnt <= " "; end if;

32 Introduction aux FPGA – Conception Projets avancés –CPU Cores : T65, T80, 6809, 8051… –Contrôleurs Ethernet, USB, LCD, SPI, I²C… Emulation de machines anciennes –http://zxgate.sourceforge.net/ (ZX81, ZX Spectrum, Jupiter ACE, TRS80)http://zxgate.sourceforge.net/ –http://www.fpgaarcade.com/ (Hardware arcade, VIC-20)http://www.fpgaarcade.com/ –Minimig (Amiga 500 sur base 68k + FPGA) –http://www.experiment-s.de/ (Atari STE)http://www.experiment-s.de/

33 Introduction aux FPGA – Conception Projets avancés (suite) –http://c64upgra.de/c-one/ (Commodore ONE)http://c64upgra.de/c-one/ –http://www.bazix.nl/onechipmsx.html (MSX)http://www.bazix.nl/onechipmsx.html Divers –http://jeanfrancoisdelnero.free.fr/floppy_drive_emulator/index.html Emulation de lecteur de disquette avec interface USBhttp://jeanfrancoisdelnero.free.fr/floppy_drive_emulator/index.html –Custom CPUs –http://www.tripoint.org/kevtris/ (le site de Kevin Horton : NES, Intellivision, SID…)http://www.tripoint.org/kevtris/ –http://torlus.com/ (Blog dédié au développement)http://torlus.com/

34 En pratique Outils et composants Interfaçage avec dautres systèmes Réalisation de PCB

35 Introduction aux FPGA – En pratique Equipement Pour commencer –Breadboard, cartes pastillées, fil. –Composants passifs : résistances, condensateurs. –Fer à souder <18W, soudure 0.5mm. –Tresse ou pompe à dessouder. –Multimètre Pour aller plus loin –Oscilloscope (analogique, numérique, USB) –Analyseur logique

36 Introduction aux FPGA – En pratique Interfaçage - Problématiques Evolution des standards –5V TTL / CMOS –3.3V CMOS (2.5V, 1.8V, 1.2V…) Evolution des composants –Packages « thru-hole » –Packages « SMT » (CMS, Composants Montés en Surface)

37 Introduction aux FPGA – En pratique Interfaçage - Circuits intégrés : Packages Packages « Thru-hole » –DIP : 2,54mm –PLCC, PGA : 2,54mm – 1,27mm Packages « SMT » (CMS) –SOIC : 1,27mm –*QFP, *SOP : 0,8mm – 0,5mm –*BGA

38 Introduction aux FPGA – En pratique Interfaçage - Solutions Conversion 5V / 3.3V : circuits dadaptation Utilisation des CMS –Adaptateurs –Utilisation de PCB Fabriqués par un tiers (ex : )http://www.pcbfabexpress.com/ Fabriqués soi-même

39 Introduction aux FPGA – En pratique Réalisation de PCB – Processus Utilisation de plaques photosensibles Conception du circuit – EAGLE, Proteus, OrCAD… Edition dun typon – Impression laser sur transparent Insolation – Kit insoleuse à néons UV Révélation – Bac et révélateur en poudre Gravure – Kit graveuse verticale (bac, chauffage et bulleur) et perchlorure de fer Etamage – Solution détamage à froid

40 Graveuse et Insoleuse KF – photo Selectronic

41 Introduction aux FPGA – En pratique Réalisation de PCB – Matériel additionnel Meuleuse et support (Dremel 300 et Dremel Workstation 220) Soudure –Fer 11W avec panne CMS –Station de soudage thermo-régulée –Flux de soudure ( flux pen Kester solder ) –Loupe Divers –Plaques de cuivre simples –Feutres pour CI –Gomme abrasive

42 Du Software au Hardware – Pour conclure Ouvre de nouvelles perspectives Investissement non négligeable – Initial – Récurrent Demande du temps Demande méthode et patience

43 Du Software au Hardware – Bibliographie « Du binaire au processeur » - Emmanuel Mesnard (Théorique) « Design your own video game console » eBook – André LaMothe « Understanding the Apple II » - Jim Sather « Tracé des circuits imprimés » - Philippe Dunand

44 Merci pour votre attention Grégory ESTRADEhttp://torlus.com/


Télécharger ppt "Du Software au Hardware Introduction aux composants programmables FPGA Grégory ESTRADEhttp://torlus.com/"

Présentations similaires


Annonces Google