A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

1 1

2 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.Projetos hierárquicos baseados em blocos. 4.Sincronização de componentes de projetos. 5.Paralelismo e concorrência em projetos hierárquicos.

3 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.

4 4 Notas importantes para avaliação 1.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 skl@ua.pt 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:skl@ua.pt Turma 1 (11h-13h) 22953, 43576 3.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).

5 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.www.ieeta.pt/~skl

6 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

7 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

8 8 Comunicação de placas baseadas em FPGAs com computador Comunicação entre placas

9 9 Comunicação de placas baseadas em FPGAs com computador

10 10 Comunicação de placas baseadas em FPGAs com computador

11 11 Comunicação de placas baseadas em FPGAs com computador

12 12 Comunicação de placas baseadas em FPGAs com computador

13 13 Comunicação de placas baseadas em FPGAs com computador Placa baseada em FPGA 70 DIP 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

14 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;

15 15 Comunicação de placas baseadas em FPGAs com computador component MyDivider is generic (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 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;

16 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 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 " LOC = "R14“; NET "EppDB " LOC = "R13"; NET "EppDB " LOC = "P13"; NET "EppDB " LOC = "T12"; NET "EppDB " LOC = "N11"; NET "EppDB " LOC = "R11"; NET "EppDB " LOC = "P10"; NET "EppDB " LOC = "R10";

17 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 is generic (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 signal BoardLed0: out std_logic; BoardButton0: in std_logic; BoardDip0: in std_logic; BoardDip7: in std_logic ); end Test_Divider;

18 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);

19 19 Comunicação de placas baseadas em FPGAs com computador process (clk) begin if 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 process; IO_interface : entity work.IOExpansion port 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;

20 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.

21 21 Tarefas para aulas práticas architecture Behavioral of RecursiveSortingWithOnBoardDisplays is signal ready,rst: std_logic; signal C_S,N_S: std_logic := '0'; begin BinToBCD: 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) begin if falling_edge(clk) then rst <= '0'; if reset = '1' then N_S<= '0'; rst <= '1'; elsecase C_S is when '0' => rst <= '1'; if ready = '0' then N_S <= '1'; elseN_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 process; end Behavioral;

22 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

23 23 Sincronização de componentes de projetos Binário  BCD Fornecer dados Receber o resultado Divisão

24 24 Sincronização de componentes de projetos Placa baseada em FPGA 70 DIP switches Dividendo de PC Divisor de PC Quociente Resto USB Adept dialog window Dividendo e divisor Quociente e resto Sincronização

25 25 Paralelismo e concorrência em projetos hierárquicos Placa baseada em FPGA 70 DIP 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ãoControlo de displaysOrdenação de dados Todos os blocos dum projeto funcionam em paralelo Os blocos podem funcionar em tempos diferentes


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google