placa de prototipação h.o.t. ii
DESCRIPTION
Placa de prototipação H.O.T. II. Leandro Augusto de Oliveira. [email protected]. 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. Vantagens: - PowerPoint PPT PresentationTRANSCRIPT
Placa de prototipação H.O.T. II
Leandro Augusto de Oliveira [email protected]@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
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).
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
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
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
7
Arquitetura da H.O.T. II
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
9
Modelo de execução hardware/software
CORE P C I
BACK-END
FPGAProcessador
PC
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
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)
12
Endereços na placa H.O.T. II
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
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.edfcopiar
SÍNTESE FÍSICA
bitstream
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;
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
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
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
19
EXEMPLO DE VHDL
• VHDL acesso ao bancos de memória
• ESQUEMÁTICO DOHDLSHELL
20
EXEMPLO DE C++
• Exibir o código C++
• Necessita do Visual C++ 6.0
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