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.

Slides:



Advertisements
Apresentações semelhantes
Exemplo de um projeto de sistema completo
Advertisements

Projecto de Hardware com FPGAs
Copyright (c) 2003 by Valery Sklyarov and Iouliia Skliarova: DETUA, IEETA, Aveiro University, Portugal.
Copyright (c) 2003 by Valery Sklyarov and Iouliia Skliarova: DETUA, IEETA, Aveiro University, Portugal.
abs access after alias all and architecture array assert attribute begin block body buffer bus case component configuration constant disconnect downto.
VHDL - VHSIC Hardware Description Language
Fernando Gehm Moraes Ney Laert Vilar Calazans
Fernando Gehm Moraes Ney Laert Vilar Calazans
César Augusto Missio Marcon Ney Laert Vilar Calazans
Parte 6 - Introdução a FPGAs (Continuação: Alterações no Projeto do Somador da Parte 5) LABORG 06/abril/2009 Fernando Gehm Moraes César Augusto Missio.
VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais.
Verilog AULA - 3.
VHDL AULA - 2.
Aula 4 - Introdução a FPGAs (Continuação) LABORG 24/março/2008 Fernando Gehm Moraes César Augusto Missio Marcon Ney Laert Vilar Calazans.
Introdução a circuitos lógicos
Dicas de Circuitos MO801/MC912.
VHDL (outros tópicos) MO801/MC912.
Semana de Engenharia Introdução a Linguagem de Descrição de HW VHDL a ao Projeto Baseado em Lógica de Programação ALTERA Prof. Daniel Barros Júnior
FLI – ModelSim Pedro Velho.
Tipos de dados Existentes BIT - {0, 1} BIT_VECTOR - {vetor de BIT}
Máquina de Estados Uma máquina de estados finitos ou autômato finito é uma modelagem de um comportamento composto por estados, transições e ações Um estado.
Construção sequencial CASE WHEN
Introdução à estrutura e funcionamento de um sistema informático
Fundamentos de Eletrônica Digital
Máquina de Estados Finito
Circuitos Seqüenciais Descrição VHDL
EPUSP – PTC Guido Stolfi
Antonyus Pyetro Infra-estrutura de Hardware – IF674
Antonyus Pyetro Infra-estrutura de Hardware – IF674
Dispositivos Lógicos Programáveis (DLP) Ideia e Arquiteturas
Placa de prototipação H.O.T. II
Validação de VHDL: técnicas e ferramentas
Circuitos Seqüenciais Contadores
Projeto de um Comparador Descrição Estrutural x Comportamental
Diagramas de Blocos e Descrição VHDL
Projeto de Circuito Combinacional Unidade Lógica e Aritmética (ULA)
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno Memórias.
Ney Laert Vilar Calazans
Capítulo III Modularização Procedimentos e Funções Universidade Federal de São Carlos Departamento de Computação Aluna: Luanna Lopes Lobato
Descrição de Circuitos Combinacionais em VHDL
Projetos Grandes MO801/MC912. Roteiro Componentes Configurações Instanciação múltipla Instanciação condicional Atenção: Os exemplos são cumulativos.
IMM Instalação e Manutenção de Microcomputadores
Introdução à Programação da FPGA João M. P. Cardoso.
IMM Bus 9ºG – EB23 Rainha Santa Isabel IMM Pedro Amaro.
Hardware Description Language Aula 5 -VHDL Prof. Afonso Ferreira Miguel, MSc.
Prof. Anderson Royes Terroso Abril, 2000.
Introdução às TIC Prof. Carlos Freire Copyright, Carlos Freire.
Disciplina: Computação Reconfigurável Aulas teóricas: 2 horas por semana Aulas práticas: 2 horas por semana Regente:Valeri Skliarov Área:FPGAs (desenvolvimento,
VERILOG.
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno Exercícios Circuitos Descritos em VHDL.
Introdução a VHDL Monitoria de Digitais.
1 Ports Paralelos no 8051 Disciplina: Microcontroladores Prof. Remy Eskinazi, MSc UPE - POLI.
Introdução ao VHDL João M. P. Cardoso.
Parte 5 - Introdução a FPGAs (Continuação: Alterações no Projeto do Somador da Parte 4) LABORG 21/setembro/2009 Fernando Gehm Moraes César Augusto Missio.
Trabalho de IF11 Prof.: Adriano Cota. Trabalho de IF11 5 Grupos Data de Entrega da parte escrita: 29/03/2011 Data da Apresentação: 29/03/2011 Desenvolvimento.
A Embest Board.
Diagrama em blocos: Hardware de Computadores
Trabalho Cálculo Numérico º Trabalho 1) Implementar um programa em linguagem C que converta números binários (inteiros e fracionários) para a.
Verilog HDL. Introduzida em 1985 pela Gateway Design System Corporation Após 1990, passou a ser de domínio público, e em 1995 passou a ser padrão IEEE.
BARRAMENTO Caminho de Dados.
Projeto de Circuitos Integrados Semidedicados Prof. Marcio Cunha Aula 04 – Linguagem de Descrição de Hardware: VHDL.
MIPS Monociclo (MIPS_V0) Estrutura e Implementação em VHDL Fernando Moraes 03/maio/2011 Revisada por Ney Calazans em agosto/2016.
Introdução à Programação da FPGA
Máquina de Estados Finitos com Dados (FSMD)
Lógica Sequencial e Máquina de Estados Finitos
Máquina de Estados Uma máquina de estados finitos ou autômato finito é uma modelagem de um comportamento composto por estados, transições e ações Um estado.
Comandos sequenciais entity mux4_1 is
Ney Calazans - outubro/2018 Com contribuições do Prof. César Marcon
LABORG Prof. Ney Calazans Última alteração: 09/09/2019
LABORG Prof. Ney Calazans Última alteração: 03/10/2019
Transcrição da apresentação:

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

3 Regras para avaliação. 1.No início da aula (primeiros minutos) vou explicar tarefas e vou demostrar o funcionamento do projeto pretendido na placa Nexys 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 . Cada 10 minutos extra (-1) na avaliação. Este tempo vai ser determinado através do tempo de recepção da sua mensagem ( ). 5. No início da aula vão saber como fazer a avaliação: ou individualmente, ou em grupos.

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. deve ser enviado para 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). Turma 1 (11h-13h) 22953, 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 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: durante uma semana, i.e. até à próxima 2ª feira.

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 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 Comunicação de placas baseadas em FPGAs com computador Comunicação entre placas

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

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

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

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

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 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); 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); Buttons, bottom row on the PC dwOut: out std_logic_vector(31 downto 0); Bits user output dwIn : in std_logic_vector(31 downto 0) Bits user input ); end component;

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 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 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 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 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 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 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 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 Sincronização de componentes de projetos Binário  BCD Fornecer dados Receber o resultado Divisão

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