25
1 Computação Reconfiguráve l Aula teórica 7

1. 2 Objetivos 1.Análise dos resultados da primeira avaliação. Notas importantes para futuro. 2.Comunicação de placas baseadas em FPGAs com computador

Embed Size (px)

Citation preview

Page 1: 1. 2 Objetivos 1.Análise dos resultados da primeira avaliação. Notas importantes para futuro. 2.Comunicação de placas baseadas em FPGAs com computador

1

Computação Reconfigurável

Aula teórica 7

Page 2: 1. 2 Objetivos 1.Análise dos resultados da primeira avaliação. Notas importantes para futuro. 2.Comunicação de placas baseadas em FPGAs com computador

2

Objetivos1. Análise dos resultados da primeira avaliação.

Notas importantes para futuro.2. Comunicação de placas baseadas em FPGAs

com computador.3. Projetos hierárquicos baseados em blocos.4. Sincronização de componentes de projetos.5. Paralelismo e concorrência em projetos

hierárquicos.

Page 3: 1. 2 Objetivos 1.Análise dos resultados da primeira avaliação. Notas importantes para futuro. 2.Comunicação de placas baseadas em FPGAs com computador

3

Regras para avaliação. 1. No início da aula (primeiros 10-20 minutos) vou explicar

tarefas e vou demostrar o funcionamento do projeto pretendido na placa Nexys-2.

3. Regras e tempo para fazer tarefas são iguais para todos. Por isso os tempos de início e de final vão ser explicitamente indicados. Por exemplo: início 11h15m; final 12h45m.

2. O tempo para avaliação é 1h30m.

4. O tempo de início: X; o tempo de final Y;

5 minutos entre Y e Y+5 minutos – entrega de trabalhos através de e-mail.

Cada 10 minutos extra (-1) na avaliação. Este tempo vai ser determinado através do tempo de recepção da sua mensagem (e-mail).

5. No início da aula vão saber como fazer a avaliação: ou individualmente, ou em grupos.

Page 4: 1. 2 Objetivos 1.Análise dos resultados da primeira avaliação. Notas importantes para futuro. 2.Comunicação de placas baseadas em FPGAs com computador

4

Notas importantes para avaliação1. Numeração de componentes da placa: (MSB downto LSB). MSB - o

componente mais esquerdo da placa, LSB - o componente mais direito da placa

2. E-mail deve ser enviado para [email protected] com indicação da turma e números mecanográficos de alunos (2ª feira: turma 1 (11h-13h); 3ª feira: turma 2 (14h-16h); 3ª feira: turma 3 (16h-18h). Exemplo:

Turma 1 (11h-13h) 22953, 435763. Na primeira linha da sua mensagem deve escrever os nomes.

Exemplo:Miguel Rodrigues, André Ventura

4. Anexo: Os projetos 1 e 2 devem ser compactados num só ficheiro rar ou zip. Cada projeto deve incluir só:

todos os códigos VHDL;ficheiro de implementação (user-constraint file – UCF).bitstream (bit file).

Page 5: 1. 2 Objetivos 1.Análise dos resultados da primeira avaliação. Notas importantes para futuro. 2.Comunicação de placas baseadas em FPGAs com computador

5

Os pesos de cada avaliação e os resultados

1. Avaliação 1: 20%.

2. Avaliação 2: 25%.

3. Avaliação 3: 30%.

4. Os resultados da avaliação vão ser publicados na página de Internet: www.ieeta.pt/~skl durante uma semana, i.e. até à próxima 2ª feira.

Page 6: 1. 2 Objetivos 1.Análise dos resultados da primeira avaliação. Notas importantes para futuro. 2.Comunicação de placas baseadas em FPGAs com computador

6

Comunicação de placas baseadas em FPGAs com computador

Placa com FPGA Computador

Porto externo

Exemplo: USB

Placa com FPGA Computador

Barramento de sistema

Memória partilhada

Hardware de FPGA

Software de uso geral

Paralelismo

Page 7: 1. 2 Objetivos 1.Análise dos resultados da primeira avaliação. Notas importantes para futuro. 2.Comunicação de placas baseadas em FPGAs com computador

7

Comunicação de placas baseadas em FPGAs com computador

Placa com FPGA Computador

Interação direta projeto - software

Memória da placa

FPGA Software de uso geral

com fios

Placa com FPGA Computador

Interação direta projeto - software

sem fios

Page 8: 1. 2 Objetivos 1.Análise dos resultados da primeira avaliação. Notas importantes para futuro. 2.Comunicação de placas baseadas em FPGAs com computador

8

Comunicação de placas baseadas em FPGAs com computador

SAT - covering

Comunicaçãoentre

placas

Page 9: 1. 2 Objetivos 1.Análise dos resultados da primeira avaliação. Notas importantes para futuro. 2.Comunicação de placas baseadas em FPGAs com computador

9

Comunicação de placas baseadas em FPGAs com computador

Page 10: 1. 2 Objetivos 1.Análise dos resultados da primeira avaliação. Notas importantes para futuro. 2.Comunicação de placas baseadas em FPGAs com computador

10

Comunicação de placas baseadas em FPGAs com computador

Page 11: 1. 2 Objetivos 1.Análise dos resultados da primeira avaliação. Notas importantes para futuro. 2.Comunicação de placas baseadas em FPGAs com computador

11

Comunicação de placas baseadas em FPGAs com computador

These pins are displayedon the monitor screen andcan be connected to virtualvisual peripheral devicesalso displayed on themonitor screen

Hidden from end users interfacesenable connection of the relevantphysical FPGA pins to virtual(onscreen) devices

Dialog area

Dialog area

Page 12: 1. 2 Objetivos 1.Análise dos resultados da primeira avaliação. Notas importantes para futuro. 2.Comunicação de placas baseadas em FPGAs com computador

12

Comunicação de placas baseadas em FPGAs com computador

Page 13: 1. 2 Objetivos 1.Análise dos resultados da primeira avaliação. Notas importantes para futuro. 2.Comunicação de placas baseadas em FPGAs com computador

13

Comunicação de placas baseadas em FPGAs com computador

Placa baseada em FPGA

7 0DIP switches

Dividendo de PC

Divisor de PC

Quociente

Resto USB

Adept dialog

window

Dividendo e divisor

Quociente e resto

Exemplo 1: Utilização de dispositivos periféricos virtuais

Exemplo 2: Execução e verificação de algoritmos

Page 14: 1. 2 Objetivos 1.Análise dos resultados da primeira avaliação. Notas importantes para futuro. 2.Comunicação de placas baseadas em FPGAs com computador

14

Comunicação de placas baseadas em FPGAs com computador

component IOExpansion is

port (-- Epp bus signals EppAstb: in std_logic; -- Address strobe EppDstb: in std_logic; -- Data strobe EppWr : in std_logic; -- Port write signal EppDB : inout std_logic_vector(7 downto 0); -- port data bus EppWait: out std_logic; -- Port wait signal-- user signals Led : in std_logic_vector(7 downto 0); -- 8 virtual LEDs on the PC LBar : in std_logic_vector(23 downto 0); -- 24 lights on the PC Sw : out std_logic_vector(15 downto 0); -- 16 switches, bottom row on the PC Btn : out std_logic_vector(15 downto 0); -- 16 Buttons, bottom row on the PC dwOut: out std_logic_vector(31 downto 0); -- 32 Bits user output dwIn : in std_logic_vector(31 downto 0) -- 32 Bits user input );

end component;

Page 15: 1. 2 Objetivos 1.Análise dos resultados da primeira avaliação. Notas importantes para futuro. 2.Comunicação de placas baseadas em FPGAs com computador

15

Comunicação de placas baseadas em FPGAs com computador

component MyDivider isgeneric ( size_of_operands : integer := size_of_operands );port ( clk : in std_logic;

rst : in std_logic;Divident : in std_logic_vector(size_of_operands-1 downto 0);Divisor : in std_logic_vector(size_of_operands-1 downto 0);Quotient : out std_logic_vector(size_of_operands-1 downto 0);Remainder : out std_logic_vector(size_of_operands-1 downto 0);divide_by_zero : out std_logic );

end component;

entity BinToBCD12 isgeneric( size_of_data_to_convert : integer := 14 ); -- valor máximo é 9999 (14 bits) port ( clk : in STD_LOGIC; reset : in STD_LOGIC; ready : out STD_LOGIC; in_data : in STD_LOGIC_VECTOR (size_of_data_to_convert-1 downto 0); BCD3 : out STD_LOGIC_VECTOR (3 downto 0); BCD2 : out STD_LOGIC_VECTOR (3 downto 0); BCD1 : out STD_LOGIC_VECTOR (3 downto 0); BCD0 : out STD_LOGIC_VECTOR (3 downto 0));end BinToBCD12;

Page 16: 1. 2 Objetivos 1.Análise dos resultados da primeira avaliação. Notas importantes para futuro. 2.Comunicação de placas baseadas em FPGAs com computador

16

Comunicação de placas baseadas em FPGAs com computador

NET "clk" LOC = "B8“; NET "BoardButton0" LOC = "B18"; # Button 0

NET "BoardLed0" LOC = "J14"; #NET "BoardDip0" LOC = "G18";

# onBoard USB controllerNET "EppAstb" LOC = "V14"; NET "EppAstb" CLOCK_DEDICATED_ROUTE = FALSE;NET "EppDstb" LOC = "U14"; NET "EppDstb" CLOCK_DEDICATED_ROUTE = FALSE;NET "EppWr" LOC = "V16"; NET "EppWr" CLOCK_DEDICATED_ROUTE = FALSE; NET "EppWait" LOC = "N9"; NET "EppDB<0>" LOC = "R14“;NET "EppDB<1>" LOC = "R13"; NET "EppDB<2>" LOC = "P13"; NET "EppDB<3>" LOC = "T12"; NET "EppDB<4>" LOC = "N11"; NET "EppDB<5>" LOC = "R11"; NET "EppDB<6>" LOC = "P10"; NET "EppDB<7>" LOC = "R10";

Page 17: 1. 2 Objetivos 1.Análise dos resultados da primeira avaliação. Notas importantes para futuro. 2.Comunicação de placas baseadas em FPGAs com computador

17

Comunicação de placas baseadas em FPGAs com computador

library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity Test_Divider isgeneric ( size_of_operands : integer := 32 );Port ( clk : in std_logic;

EppAstb : in std_logic; -- Address strobe EppDstb : in std_logic; -- Data strobe EppWr : in std_logic; -- Port write signal EppDB : inout std_logic_vector(7 downto 0); -- port data bus EppWait : out std_logic; -- Port wait signalBoardLed0 : out std_logic;BoardButton0 : in std_logic;BoardDip0 : in std_logic;BoardDip7 : in std_logic );end Test_Divider;

Page 18: 1. 2 Objetivos 1.Análise dos resultados da primeira avaliação. Notas importantes para futuro. 2.Comunicação de placas baseadas em FPGAs com computador

18

Comunicação de placas baseadas em FPGAs com computador

architecture Behavioral of Test_Divider is

signal MyLed : std_logic_vector(7 downto 0); signal MyLBar : std_logic_vector(23 downto 0); signal MySw : std_logic_vector(15 downto 0); signal MyBtn : std_logic_vector(15 downto 0); signal data_to_PC : std_logic_vector(31 downto 0); signal data_from_PC : std_logic_vector(31 downto 0);

signal Q : std_logic_vector(size_of_operands-1 downto 0);signal R : std_logic_vector(size_of_operands-1 downto 0);signal divide_by_zero : std_logic;

signal Divident, Divisor : std_logic_vector(size_of_operands-1 downto 0);

begin

BoardLed0 <= divide_by_zero;MyLBar <= MySw & MyBtn(15 downto 8);MyLed <= MyBtn(7 downto 0);

Page 19: 1. 2 Objetivos 1.Análise dos resultados da primeira avaliação. Notas importantes para futuro. 2.Comunicação de placas baseadas em FPGAs com computador

19

Comunicação de placas baseadas em FPGAs com computador

process (clk)beginif rising_edge(clk) then

if BoardDip7 = '0' then Divident <= data_from_PC;else Divisor <= data_from_PC;end if;if BoardDip0 = '0' then data_to_PC <= Q;else data_to_PC <= R;end if;

end if;end process;

IO_interface : entity work.IOExpansionport map(EppAstb,EppDstb,EppWr,EppDB,EppWait,

MyLed,MyLBar,MySw,MyBtn,data_from_PC,data_to_PC);Divider : entity work.MyDivider

generic map(size_of_operands=>size_of_operands) port map (clk, BoardButton0,Divident,Divisor,Q,R,divide_by_zero);

end Behavioral;

Page 20: 1. 2 Objetivos 1.Análise dos resultados da primeira avaliação. Notas importantes para futuro. 2.Comunicação de placas baseadas em FPGAs com computador

20

Tarefas para aulas práticas

1. Implementar tarefas de avaliação utilizando componentes do computador: interruptores, botões, LEDs e light bars em vez de displays da placa.

2. Entrar valores binários a partir do computador e mostrar os dígitos em sistema décimal (normal) nos displays de segmentos da placa. Utilizar conversor do código binário para BCD.

Page 21: 1. 2 Objetivos 1.Análise dos resultados da primeira avaliação. Notas importantes para futuro. 2.Comunicação de placas baseadas em FPGAs com computador

21

Tarefas para aulas práticasarchitecture Behavioral of RecursiveSortingWithOnBoardDisplays issignal ready,rst : std_logic;signal C_S,N_S : std_logic := '0';beginBinToBCD: entity work.BinToBCD12 -- max value of data item is 9999 and max size is 14

generic map ( size_of_data_to_convert => size_of_data ) port map ( clk,rst,ready,memory,BCD3,BCD2,BCD1,BCD0);

C_S <= N_S when rising_edge(clk);process (clk)beginif falling_edge(clk) then rst <= '0';

if reset = '1' then N_S<= '0'; rst <= '1';else case C_S is

when '0' => rst <= '1'; if ready = '0' then N_S <= '1'; else N_S <= '0'; end if;

when '1' => if ready = '1' then N_S <= '0'; left <= BCD3; near_left <= BCD2;near_right <= BCD1; right <= BCD0;

else N_S <= '1'; end if;

when others => N_S <= '0'; end case;

end if;end if;end process;end Behavioral;

Page 22: 1. 2 Objetivos 1.Análise dos resultados da primeira avaliação. Notas importantes para futuro. 2.Comunicação de placas baseadas em FPGAs com computador

22

Projectos hierárquicos baseados em blocos

Binário BCD Divisão

Controlo de displays

descodificador de segmentos

divisor de frequência Utilização dum botão (clock)

a

b

Page 23: 1. 2 Objetivos 1.Análise dos resultados da primeira avaliação. Notas importantes para futuro. 2.Comunicação de placas baseadas em FPGAs com computador

23

Sincronização de componentes de projetos

Binário BCD

Fornecer dados

Receber o resultadoDivisão

Page 24: 1. 2 Objetivos 1.Análise dos resultados da primeira avaliação. Notas importantes para futuro. 2.Comunicação de placas baseadas em FPGAs com computador

24

Sincronização de componentes de projetos

Placa baseada em FPGA

7 0DIP switches

Dividendo de PC

Divisor de PC

Quociente

Resto USB

Adept dialog

window

Dividendo e divisor

Quociente e resto

Sincronização

Page 25: 1. 2 Objetivos 1.Análise dos resultados da primeira avaliação. Notas importantes para futuro. 2.Comunicação de placas baseadas em FPGAs com computador

25

Paralelismo e concorrência em projetos hierárquicos

Placa baseada em FPGA

7 0DIP switches

Dividendo de PC

Divisor de PC

Quociente

Resto USB

Adept dialog

window

Dividendo e divisor

Quociente e resto

Sincronização

Binário BCD

Divisão

Controlo de displays

Ordenação de dados

Todos os blocos dum projeto funcionam em

paralelo

Os blocos podem funcionar em

tempos diferentes