Placa de prototipação H.O.T. II Leandro Augusto de Oliveira [email protected].

21
Placa de prototipação H.O.T. II Leandro Augusto de Oliveira [email protected] [email protected]

Transcript of Placa de prototipação H.O.T. II Leandro Augusto de Oliveira [email protected].

Page 1: Placa de prototipação H.O.T. II Leandro Augusto de Oliveira laolivei@inf.pucrs.br.

Placa de prototipação H.O.T. II

Leandro Augusto de Oliveira [email protected]@inf.pucrs.br

Page 2: Placa de prototipação H.O.T. II Leandro Augusto de Oliveira laolivei@inf.pucrs.br.

2

SUMÁRIO

1. INTRODUÇÃO

2. ARQUITETURA DA H.O.T. II

3. INTERFACE DE SOFTWARE

4. INTERFACE DE HARDWARE

5. FLUXO DE PROJETO - ESTUDO DE CASO

Page 3: Placa de prototipação H.O.T. II Leandro Augusto de Oliveira laolivei@inf.pucrs.br.

3

Introdução

• Vantagens:

– Execução da parte do sistema que é crítica em termos de

desempenho é implementada em hardware (FPGA)

– Parte não crítica, ou que requer uma maior quantidade de

entrada/saída, é implementada em software (processador do PC)

– O maior gargalo deste ambiente de prototipação é o tempo gasto

para transmitir dados entre o processador e o dispositivo, o qual

pode ser superior ao ganho de desempenho estimado

– Para isto deve-se determinar métricas que permitam avaliar

quantitativamente este custo (trabalho futuro - abril 2001).

Page 4: Placa de prototipação H.O.T. II Leandro Augusto de Oliveira laolivei@inf.pucrs.br.

4

• API de software– biblioteca de objetos (e métodos) que possibilita a

comunicação com a placa HOT II

– permite reconfigurar a placa e comunicar-se com o circuito implementado na mesma

• API de hardware– Core PCI “Xilinx PCI32 LogiCORE”

– realiza a comunicação da aplicação back-end com o barramento PC

• Múltiplos contextos:– Flash para armazenar até 3 configurações

Introdução

Page 5: Placa de prototipação H.O.T. II Leandro Augusto de Oliveira laolivei@inf.pucrs.br.

5

Características

• A comunicação entre a parte hardware e a parte software é feita

pelo barramento PCI (32 bits 33 MHz, ou seja, até 132 MB/seg)

• A comunicação entre a parte software e o barramento PCI é

provida por um driver de comunicação

• A comunicação entre a parte hardware e o barramento PCI é feito

por um módulo de hardware pré-testado, core, disponibilizado

juntamente com a plataforma de prototipação

Page 6: Placa de prototipação H.O.T. II Leandro Augusto de Oliveira laolivei@inf.pucrs.br.

6

SUMÁRIO

1. INTRODUÇÃO

2. ARQUITETURA DA H.O.T. II

3. INTERFACE DE SOFTWARE

4. INTERFACE DE HARDWARE

5. FLUXO DE PROJETO - ESTUDO DE CASO

Page 7: Placa de prototipação H.O.T. II Leandro Augusto de Oliveira laolivei@inf.pucrs.br.

7

Arquitetura da H.O.T. II

Page 8: Placa de prototipação H.O.T. II Leandro Augusto de Oliveira laolivei@inf.pucrs.br.

8

Componentes da H.O.T. II

• Flash– Armazena

configurações

• Bancos de memória– Dois bancos

independentes de 2MB

• Configuration manager

• Cache– Armazena configurações

FPGA - capacidade de 62k gates

Page 9: Placa de prototipação H.O.T. II Leandro Augusto de Oliveira laolivei@inf.pucrs.br.

9

Modelo de execução hardware/software

CORE P C I

BACK-END

FPGAProcessador

PC

Page 10: Placa de prototipação H.O.T. II Leandro Augusto de Oliveira laolivei@inf.pucrs.br.

10

SUMÁRIO

1. INTRODUÇÃO

2. ARQUITETURA DA H.O.T. II

3. INTERFACE DE SOFTWARE

4. INTERFACE DE HARDWARE

5. FLUXO DE PROJETO - ESTUDO DE CASO

Page 11: Placa de prototipação H.O.T. II Leandro Augusto de Oliveira laolivei@inf.pucrs.br.

11

Interface de software com a H.O.T. II

• Principais métodos do objeto Hot2 :

– Reset(int n=0)

– LoadConfig(char* fileName, s_HOTConfig* config)

– LoadCache(s_HOTConfig* config, word location)

– RtrCache(word n=0)

– Write(word addr, word data)

– Write(word addr, word* data, int dataSize)

– Read(word addr)

– Read(word addr, word* data, int dataSize)

Page 12: Placa de prototipação H.O.T. II Leandro Augusto de Oliveira laolivei@inf.pucrs.br.

12

Endereços na placa H.O.T. II

Page 13: Placa de prototipação H.O.T. II Leandro Augusto de Oliveira laolivei@inf.pucrs.br.

13

SUMÁRIO

1. INTRODUÇÃO

2. ARQUITETURA DA H.O.T. II

3. INTERFACE DE SOFTWARE

4. INTERFACE DE HARDWARE

5. FLUXO DE PROJETO - ESTUDO DE CASO

Page 14: Placa de prototipação H.O.T. II Leandro Augusto de Oliveira laolivei@inf.pucrs.br.

14

Fluxo de projeto de hardwarePROJETO USER_APPcopiar o projeto

Editar o VHDL inserindo a aplicação do usuário

Realizar a síntese lógica do projeto, sem inserir pads, o resultado é um arquivo edif - user_app.edf

user_app.edf

PROJETO HDL_SHELLusar o projeto

pci_core_t.edn UCF - pinagem e timing

user_app.edf

copiar

SÍNTESE FÍSICA

bitstream

Page 15: Placa de prototipação H.O.T. II Leandro Augusto de Oliveira laolivei@inf.pucrs.br.

15 entity user_app is port ( -- Data in and outD_IN : in std_logic_vector(31 downto 0);PCI_ADR : in std_logic_vector(31 downto 0);D0_OUT : out std_logic_vector(31 downto 0);D1_OUT : out std_logic_vector(31 downto 0);D2_OUT : out std_logic_vector(31 downto 0);D3_OUT : out std_logic_vector(31 downto 0);

-- Memory Bank A MAD_IN : in std_logic_vector(31 downto 0); MAD_OUT : out std_logic_vector(31 downto 0); MA_ADR : out std_logic_vector(23 downto 0); MA_WE, MA_OE, MA_ON : out std_logic; MA_BSY : in std_logic;

-- Control signalsSLV_DCD : in std_logic_vector(15 downto 0); BASE_HIT0 : in std_logic; S_DATA : in std_logic; SRC_EN : in std_logic; S_WRDN : in std_logic; S_DATA_VLD : in std_logic; -- Configuration signals that need to be set INTONBOOT : out std_logic; PRT : out std_logic_vector(3 downto 0); USER_INT : out std_logic; USER_LED : out std_logic; URDY : out std_logic; HOLDOFF : out std_logic; FCLK : in std_logic; PCI_CLK : in std_logic ); end user_app;

Page 16: Placa de prototipação H.O.T. II Leandro Augusto de Oliveira laolivei@inf.pucrs.br.

16

Testar o circuito implementado na placa de prototipação

Testar o circuito de maneira interativa (não precisa recompilar código C++ cada vez que for testar alguma coisa).

Aplicação TestCommander

Page 17: Placa de prototipação H.O.T. II Leandro Augusto de Oliveira laolivei@inf.pucrs.br.

17

SUMÁRIO

1. INTRODUÇÃO

2. ARQUITETURA DA H.O.T. II

3. INTERFACE DE SOFTWARE

4. INTERFACE DE HARDWARE

5. FLUXO DE PROJETO - ESTUDO DE CASO

Page 18: Placa de prototipação H.O.T. II Leandro Augusto de Oliveira laolivei@inf.pucrs.br.

18

Fluxo de projeto hw/sw com a H.O.T. II

• PASSO 1– realizar o fluxo de projeto de hardware

• PASSO 2– transformar o bitstream em “.hot” -> winmakehot

• PASSO 3– editar o programa C++– incluir no programa o “.hot” e bibliotecas

• PASSO 4– compila– executa

Page 19: Placa de prototipação H.O.T. II Leandro Augusto de Oliveira laolivei@inf.pucrs.br.

19

EXEMPLO DE VHDL

• VHDL acesso ao bancos de memória

• ESQUEMÁTICO DOHDLSHELL

Page 20: Placa de prototipação H.O.T. II Leandro Augusto de Oliveira laolivei@inf.pucrs.br.

20

EXEMPLO DE C++

• Exibir o código C++

• Necessita do Visual C++ 6.0

Page 21: Placa de prototipação H.O.T. II Leandro Augusto de Oliveira laolivei@inf.pucrs.br.

21

INSTALAÇÃO

1 - ter instalado o Visual C - 6.0

2 - instalar a placa e verificar se os dois leds de alimentação acendem (3 e 5

volts)

3 - rodar o ver2_2.exe para instalar o software ($gaph/Documents...)

4 - instalar o driver usando a nova versão disponível no arquivo NT4.zip (pp 9-

10 do user guide Introduction and Installation)

5 - com o Test Commander verificar o funcionamento (pp 11-17 do mesmo

manual)

6 - fazer upgrade da flash (boot flash) - pci_netlist_...21.zip

. passwd: 10DEC99

. depois de descompactar rodar o update22

7 - fazer a atualização do core hwif.zip