INF3430/4431 Introduksjon til VHDL Spartan starterkit Spartan-3 FPGA
Agenda Hva skal vi gjøre i INF3430/4431? VDHL simulering/syntese Place & Route til FPGA Prøve ut design i ekte hardware Hvorfor VHDL eller andre HDL (Hardware Description Language)? Gjennomgang av dokumentasjon for labkort Spartan-3 FPGA oppbygning INF3430/4431 2
Hvorfor HDL? Syntese til design INF3430/4431 3
Hvorfor HDL? Teknologiuavhengig kode Forskjellig abstrakssjonsnivå Netlist: Boolean equations: U1: xor2 port map(a(0), b(0), x(0)); U2: xor2 port map(a(1), b(1), x(1)); U3: nor2 port map(x(0), x(1), aeqb); aeqb <= (a(0) xor b(0)) nor (a(1) xor b(1)); Concurrents statements: Sequential statements: aeqb <= 1 when a=b else 0 ; if a=b then aeqb <= 1 ; else aeqb <= 0 ; end if; INF3430/4431 4
Hvorfor HDL? Portabilitet VHDL/System Verilog er standardisert under IEEE (Institute of Electrical and Electronics Engineers) VHDL - IEEE 1076 System Verilog - IEEE 1364 INF3430/4431 5
Hvorfor HDL? Enkelt vedlikehold/utvidelse av design COUNT : inout std_logic_vector(3 downto 0); -- Telleverdi --- COUNTER : process (RESET,CLK) begin if(reset = '1') then COUNT <= (others => '0'); elsif rising_edge(clk) then COUNT <= COUNT + 1; end if; end process COUNTER; INF3430/4431 6
Hvorfor HDL? Enkelt vedlikehold/utvidelse av design COUNT : inout std_logic_vector(3 downto 0); -- Telleverdi INF3430/4431 7
Hvorfor HDL? Enkelt vedlikehold/utvidelse av design COUNT : inout std_logic_vector(7 downto 0); -- Telleverdi INF3430/4431 8
Spartan-3 labkort http://www.digilentinc.com/products/detail.cfm?prod=s3board&nav1=products&nav2=programmable INF3430/4431 9
Spartan-3 labkort INF3430/4431 10
Spartan-3 labkort INF3430/4431 11
Spartan-3 labkort SRAM INF3430/4431 12
Spartan-3 labkort Sjusegmenter INF3430/4431 13
Styring av sjusegmentene a a b f b c g d e VCC AN3 e c f g ANi(i=0,1,2,3) AN2 AN1 d Dec Dec AN0 Disp3 Disp0 Disp1 Disp2 Disp3 Disp0 INF3430/4431 14
Spartan-3 labkort Push buttons, Switches, LEDs INF3430/4431 15
Spartan-3 labkort VGA port INF3430/4431 16
Spartan-3 labkort PS2 port (tastatur/mus) INF3430/4431 17
Spartan-3 labkort RS-232 port (serie port) INF3430/4431 18
Spartan-3 labkort 50MHz klokke INF3430/4431 19
Spartan-3 labkort. Ekstra klokke INF3430/4431 20
Spartan-3 labkort. Konfigurasjonsmode jumpere INF3430/4431 21
Spartan-3 labkort. Platform Flash minne INF3430/4431 22
Spartan-3 labkort. JTAG programming/debug ports INF3430/4431 23
Spartan-3 labkort. Power supplies (5V og 3.3V) 3.3V 5V INF3430/4431 24
Spartan-3 labkort Power supplies (2.5V og 1.2V) 2.5V 1.2V INF3430/4431 25
Spartan-3 labkort. Expansion connectors A1 expansion connector A2 expansion connector B1 expansion connector INF3430/4431 26
Spartan3-Arkitektur INF3430/4431 27
Spartan3-Arkitektur Input/Output-block Opptil 24 I/O standarder 7 high performance differensial CLB-Configurable Logic Blocks SRAM basert LUT (Look-up table) Block RAM Dual-port 18kbit i hver Hardware multipliers Beregner produkt av to 18bits inputs Viktig for DSP anvendelser DCM-Digital clock manager Faseforskyvning, klokkemultiplikasjon/divisjon Konfigurasjon INF3430/4431 28
Spartan-3 I/O-block INF3430/4431 29
Spartan-3 I/O-block INF3430/4431 30
Spartan-3 I/O-block INF3430/4431 31
Startan-3 I/O block INF3430/4431 32
Spartan-3 I/O banker Samme I/O standard innenfor samme bank Viktig å være obs på bank-grenser ved blanding av I/O standarder INF3430/4431 33
Spartan-3 Pinneplassering ft256 INF3430/4431 34
Spartan-3 CLB (Configurable Logic Block) INF3430/4431 35
Spartan-3 CLB INF3430/4431 36
Spartan-3 CLB INF3430/4431 37
Spartan-3 Block RAM INF3430/4431 38
Spartan-3 Block RAM Anvendelser FIFO First In-First Out buffere Viktig i datakommunikasjon for å lage køer Tilpasning av forskjellige bussbredder Tilpasning av forskjellige klokkedomener Kan brukes som programminne for innebygde prosessorer (jfr. Microblaze) Mellomlager mot eksternt lager (SDRAM) INF3430/4431 39
Spartan-3 Block RAM INF3430/4431 40
Spartan-3 Block RAM INF3430/4431 41
Spartan-3 Block RAM INF3430/4431 42
Spartan-3 Multiplikatorer INF3430/4431 43
Spartan-3 DCM (Digital Clock Manager) INF3430/4431 44
Spartan-3 DCM (Digital Clock Manager) INF3430/4431 45
Konfigurasjon Xilinx FPGA er SRAM basert Mister informasjon når strøm slås av Må derfor ha eget minne som husker virkemåten (konfigurasjonen) Konfigursjonen lastes opp i FPGA når man slår på strøm eller ved et annet tidspunkt dersom dette er ønskelig Kan ha mange alternative konfigurasjoner. Rekonfigurerbar hardware Kan tilpasses en rekke forskjelllige minnetyper (Seriell/parallell Flash) INF3430/4431 46