Computação Reconfigurável
This presentation is the property of its rightful owner.
Sponsored Links
1 / 25

Computação Reconfigurável PowerPoint PPT Presentation


  • 45 Views
  • Uploaded on
  • Presentation posted in: General

Computação Reconfigurável. Aula teórica 7. Objetivos. Análise dos resultados da primeira avaliação. Notas importantes para futuro. Comunicação de placas baseadas em FPGAs com computador. Projetos hierárquicos baseados em blocos. Sincronização de componentes de projetos.

Download Presentation

Computação Reconfigurável

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Computa o reconfigur vel

Computação Reconfigurável

Aula teórica 7


Computa o reconfigur vel

Objetivos

  • Análise dos resultados da primeira avaliação. Notas importantes para futuro.

  • Comunicação de placas baseadas em FPGAs com computador.

  • Projetos hierárquicos baseados em blocos.

  • Sincronização de componentes de projetos.

  • Paralelismo e concorrência em projetos hierárquicos.


Computa o reconfigur vel

Regras para avaliação.

No início da aula (primeiros 10-20 minutos) vou explicar

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

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

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.

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.


Computa o reconfigur vel

Notas importantes para avaliação

Numeração de componentes da placa: (MSB downto LSB). MSB - o componente mais esquerdo da placa, LSB - o componente mais direito da placa

  • E-mail deve ser enviado para [email protected] com indicaçãodaturma 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, 43576

  • Na primeira linha da sua mensagem deve escrever os nomes. Exemplo:

    • Miguel Rodrigues, André Ventura

  • 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).


Computa o reconfigur vel

Os pesos de cada avaliação e os resultados

Avaliação 1: 20%.

Avaliação 2: 25%.

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.


Computa o reconfigur vel

Comunicação de placas baseadas em FPGAs com computador

Porto externo

Placa com FPGA

Computador

Exemplo: USB

Barramento de sistema

Placa com FPGA

Computador

Software de uso geral

Paralelismo

Hardware de FPGA

Memória partilhada


Computa o reconfigur vel

Comunicação de placas baseadas em FPGAs com computador

Interação direta

Interação direta

Placa com FPGA

Placa com FPGA

Computador

Computador

projeto - software

projeto - software

com fios

sem fios

FPGA

Software de uso geral

Memória da placa


Computa o reconfigur vel

Comunicação de placas baseadas em FPGAs com computador

SAT - covering

Comunicação

entre

placas


Computa o reconfigur vel

Comunicação de placas baseadas em FPGAs com computador


Computa o reconfigur vel

Comunicação de placas baseadas em FPGAs com computador


Computa o reconfigur vel

Comunicação de placas baseadas em FPGAs com computador


Computa o reconfigur vel

Comunicação de placas baseadas em FPGAs com computador


Computa o reconfigur vel

Comunicação de placas baseadas em FPGAs com computador

Divisor de PC

Placabaseadaem FPGA

Resto

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

7

0

DIP switches

Quociente

Dividendo de PC

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

Dividendo e divisor

Adept dialog window

USB

Quociente e resto


Computa o reconfigur vel

Comunicação de placas baseadas em FPGAs com computador

componentIOExpansionis

port(

-- Epp bus signals

EppAstb: instd_logic; -- Address strobe

EppDstb: instd_logic; -- Data strobe

EppWr : instd_logic; -- Port write signal

EppDB : inoutstd_logic_vector(7 downto 0); -- port data bus

EppWait: outstd_logic; -- Port wait signal

-- user signals

Led : instd_logic_vector(7 downto 0); -- 8 virtual LEDs on the PC

LBar : instd_logic_vector(23 downto 0); -- 24 lights on the PC

Sw : outstd_logic_vector(15 downto 0);-- 16 switches, bottom row on the PC

Btn : outstd_logic_vector(15 downto 0); -- 16 Buttons, bottom row on the PC

dwOut: outstd_logic_vector(31 downto 0); -- 32 Bits user output

dwIn : instd_logic_vector(31 downto 0) -- 32 Bits user input

);

endcomponent;


Computa o reconfigur vel

Comunicação de placas baseadas em FPGAs com computador

componentMyDivideris

generic(size_of_operands : integer := size_of_operands );

port (clk: instd_logic;

rst: instd_logic;

Divident: instd_logic_vector(size_of_operands-1 downto 0);

Divisor: instd_logic_vector(size_of_operands-1 downto 0);

Quotient: outstd_logic_vector(size_of_operands-1 downto 0);

Remainder: outstd_logic_vector(size_of_operands-1 downto 0);

divide_by_zero: outstd_logic);

endcomponent;

entity BinToBCD12 is

generic( 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;


Computa o reconfigur vel

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 controller

NET "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";


Computa o reconfigur vel

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;

entityTest_Divideris

generic (size_of_operands : integer := 32 );

Port( clk: instd_logic;

EppAstb: instd_logic; -- Address strobe

EppDstb: instd_logic; -- Data strobe

EppWr: instd_logic; -- Port write signal

EppDB: inoutstd_logic_vector(7 downto 0); -- port data bus

EppWait: outstd_logic; -- Port wait signal

BoardLed0: outstd_logic;

BoardButton0: instd_logic;

BoardDip0: instd_logic;

BoardDip7: instd_logic);

endTest_Divider;


Computa o reconfigur vel

Comunicação de placas baseadas em FPGAs com computador

architecture Behavioral of Test_Divider is

signalMyLed: std_logic_vector(7 downto 0);

signalMyLBar: std_logic_vector(23 downto 0);

signalMySw: std_logic_vector(15 downto 0);

signalMyBtn: std_logic_vector(15 downto 0);

signaldata_to_PC: std_logic_vector(31 downto 0);

signaldata_from_PC: std_logic_vector(31 downto 0);

signalQ: std_logic_vector(size_of_operands-1 downto 0);

signalR : std_logic_vector(size_of_operands-1 downto 0);

signaldivide_by_zero : std_logic;

signalDivident, 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);


Computa o reconfigur vel

Comunicação de placas baseadas em FPGAs com computador

process (clk)

begin

ifrising_edge(clk) then

if BoardDip7 = '0' thenDivident <= data_from_PC;

else Divisor <= data_from_PC;

endif;

if BoardDip0 = '0' thendata_to_PC <= Q;

elsedata_to_PC <= R;

endif;

endif;

endprocess;

IO_interface : entitywork.IOExpansion

portmap(EppAstb,EppDstb,EppWr,EppDB,EppWait,

MyLed,MyLBar,MySw,MyBtn,data_from_PC,data_to_PC);

Divider : entitywork.MyDivider

genericmap(size_of_operands=>size_of_operands)

portmap (clk, BoardButton0,Divident,Divisor,Q,R,divide_by_zero);

end Behavioral;


Computa o reconfigur vel

Tarefas para aulas práticas

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

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.


Computa o reconfigur vel

Tarefas para aulas práticas

architecture Behavioral ofRecursiveSortingWithOnBoardDisplaysis

signalready,rst: std_logic;

signal C_S,N_S: std_logic := '0';

begin

BinToBCD: entitywork.BinToBCD12 -- max value of data item is 9999 and max size is 14

genericmap ( size_of_data_to_convert => size_of_data )

port map ( clk,rst,ready,memory,BCD3,BCD2,BCD1,BCD0);

C_S<= N_Swhenrising_edge(clk);

process (clk)

begin

iffalling_edge(clk) then rst<= '0';

if reset = '1' then N_S<= '0'; rst <= '1';

elsecaseC_S is

when '0' => rst<= '1';

ifready = '0' then N_S <= '1';

elseN_S <= '0';

endif;

when '1' => if ready = '1' thenN_S <= '0';

left <= BCD3; near_left <= BCD2;

near_right<= BCD1; right <= BCD0;

elseN_S <= '1';

endif;

whenothers => N_S <= '0';

endcase;

endif;

endif;

endprocess;

endBehavioral;


Computa o reconfigur vel

Projectos hierárquicos baseados em blocos

descodificador

de segmentos

Utilização dum botão (clock)

Binário  BCD

divisor de frequência

Divisão

Controlo de displays

a

b


Computa o reconfigur vel

Sincronização de componentes de projetos

Binário  BCD

Divisão

Fornecer dados

Receber o resultado


Computa o reconfigur vel

Sincronização de componentes de projetos

Divisor de PC

Placabaseadaem FPGA

Resto

7

0

DIP switches

Sincronização

Quociente

Dividendo de PC

Dividendo e divisor

Adept dialog window

USB

Quociente e resto


Computa o reconfigur vel

Paralelismo e concorrência em projetos hierárquicos

Divisor de PC

Placabaseadaem FPGA

Todos os blocos dum projeto funcionam em paralelo

Os blocos podem funcionar em tempos diferentes

Resto

7

0

DIP switches

Sincronização

Binário  BCD

Divisão

Quociente

Dividendo e divisor

Dividendo de PC

Ordenação de dados

Controlo de displays

Adept dialog window

USB

Quociente e resto


  • Login