300 likes | 390 Views
Computação Reconfigurável. Aula teórica 2. Alta densidade:. Eficiência:. Tempo mínimo de projecto e implementação comparando com outras tecnologias. Até 10 000 000 portas lógicas programáveis. FPGA. Reutilização – o mesmo chip pode ser usado para
E N D
Computação Reconfigurável Aula teórica 2
Alta densidade: Eficiência: Tempo mínimo de projecto e implementação comparando com outras tecnologias Até 10 000 000 portaslógicas programáveis FPGA • Reutilização – o mesmo chip pode ser usado para • implementação de sistemas diferentes; • Paralelismo – pode-se executar operações arbitrárias em paralelo; • Virtualização – algumas partes do sistema podem seralteradas durante execução – adaptabilidade; • Configuração remota – o funcionamento do sistema implementado pode ser alterado remotamente; • Etc.
CLB CLB CLB PI PI PI PI PI PI PI CLB CLB CLB PI PI PI PI PI PI PI CLB CLB CLB PI PI Núcleo de FPGA CLB PI Programmable Interconnect (interligação configurável) Configurable Logic Block (bloco lógico configurável)
Block RAM Block RAM DCM DCM DCM DCM Capacidades extendidas Multipliers I/O DSP I/O I/O I/O I/O Block RAM Block RAM Power PC Transceiver s I/O outras
Data1 enrereço1 4096 1 2048 2 1024 4 512 8 256 16 Data2 endereço2 DLL Block RAM CLK0 CLK90 CLK180 CLK270
DCM DCM DCM DCM Multiplier Multiplier Block RAM Block RAM Spartan-3 Architecture Layout [1] I/O I/O I/O I/O 6 1. Xilinx Spartan-3 FPGA Family: Complete Data Sheet. Available at: http://direct.xilinx.com/bvdocs/publications/ds099.pdf
FPGAs no mercado Recentemente, Xilinx lançou a família “7″ (Virtex, Artix, Kintex) de FPGAs fabricadas com tecnologia de 28 nm Últimos productos de Altera são Cyclone-V, Arria-V e Stratix-V, todos fabricados com tecnologia de 28 nm Reference: 1. http://www.fpgadeveloper.com/2011/07/list-and-comparison-of-fpga-companies.html
FPGA market in % by region FPGA market in % by end applications Communications
Altera Cyclone IV E Spartan-3E Spartan-6
Fluxo de projecto para FPGA Xilinx process(clk, rst) variable tmp, ind: integer; begin if rst= '1' then tmp:=0; ind :=0; elsif falling_edge(clk) then if rs232in = '0' then ind := 1; end if; if (tmp >= 1) then if (tmp <= 8) then LCD_symbol(tmp-1) <= rs232in; end if; end if; if ind = 1 then tmp := tmp + 1; end if; if (tmp >= 9) and (rs232in = '1') then tmp := 0; ind := 0; end if; end if; result <= LCD_symbol; end process; Etc. Bit-stream
Ambiente de desenvolvimento integrado - ISE unsigned int RGCD(unsigned int A, unsigned int B) { if (B > A) return RGCD(B,A); else if (B<=0) return A; else return RGCD(B,A%B); } Saída Entrada
Xilinx ISE library IEEE; use IEEE.std_logic_1164.all; entity FULLADD is port ( A, B, CIN : in std_logic; SUM, CARRY : out std_logic); end FULLADD; architecture STRUCT of FULLADD is signal s1, s2, s3 : std_logic; component half_adder port( A,B : in std_logic; SUM, CARRY : out std_logic); end component; component ORGATE port( A,B : in std_logic; Z : out std_logic); end component; begin u1: half_adder port map(A,B,s1,s2); u2: half_adder port map(s1,CIN,SUM,s3); u3: ORGATE port map(s2,s3,CARRY); end STRUCT; NET "A" LOC = "K18"; NET "B" LOC = "H18"; NET "CIN" LOC = "G18"; NET "CARRY" LOC = "J15"; NET "SUM“ LOC = "J14“; 3 1 2