Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Programa de...
Transcript of Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Programa de...
Pontifícia Universidade Católica do Rio Grande do SulFaculdade de Informática
Programa de Pós-Graduação em Ciência da ComputaçãoPUCRS-FACIN-PPGCC
http://www.inf.pucrs.br/~gaph
Xilinx ChipScope Pro
Tutorial sobre o uso da Ferramenta de Depuração Intrachip de FPGAs da Xilinx
Guilherme Montez GuindaniFernando Gehm Moraes
Atualizada em 23/01/2009 (Ney Calazans)
(Baseado em tutorial anterior elaborado por: Everton Alceu Carara)
2
http://www.inf.pucrs.br/~gaph
O que é o ChipScope Pro?
- Analisador de sinais internos a um FPGA- Funciona como um analisador lógico- É uma ótima ferramenta de depuração do projeto em HW- Utiliza as Block Rams (BRAMs) para armazenar amostragens- Possui duas partes principais:
- ICON (Integrated Controller): Realiza a comunicação com o a interface boundary scan do FPGA- ILA (Integrated Logic Analyzer): Controla o disparo (trigger) da captura dos dados e a captura dos dados em si
3
http://www.inf.pucrs.br/~gaph
Visão Geral do Projeto
• PC executando a análise de um determinado HW, através da GUI do ChipScope
• Placa de prototipação conectada ao PC através de JTAG e de um cabo de prototipação
• Lógica do usuário em teste, já com os módulos de controle e captura do ChipScope associados ao projeto inicial
4
http://www.inf.pucrs.br/~gaph
Antes de usar o ChipScope
- Crie um projeto no ISE normalmente
- Na aba de processos, clique com o botão direito na ferramenta de síntese lógica e entre no menu de propriedades
5
http://www.inf.pucrs.br/~gaph
Antes de usar o ChipScope
- No menu de propriedades, selecione a opção para manter a hierarquia do projeto (Keep Hierarchy = Yes)- Esta ação evita que a ferramenta de síntese agrupe lógica de módulos diferentes (quando perde-se o nome original dos sinais)
6
http://www.inf.pucrs.br/~gaph
Adicionando o módulo do ChipScope no projeto
- Clique em project, e depois em new source- Selecione a opção ChipScope Definition and Connection File, e dê um nome para este módulo (Instância do ChipScope)
7
http://www.inf.pucrs.br/~gaph
Adicionando o módulo do ChipScope no projeto
- Selecione a entidade de mais alto nível hierárquico do projeto (top level entity), neste caso é top
8
http://www.inf.pucrs.br/~gaph
Configurando o módulo do ChipScope
- Na aba de fontes (sources), dê um duplo clique no módulo do ChipScope recém-criado- Será exibida a janela de configuração do módulo do ChipScope contendo informações sobre o FPGA utilizado e a síntese realizada sem a configuração do ChipScope- Clique em Next
9
http://www.inf.pucrs.br/~gaph
Configuração do ICON
- Nesta janela podem ser configuradas opções para o ICON- Na prática nada deve ser alterado aqui- Clique em Next
10
http://www.inf.pucrs.br/~gaph
Configuração do ILA
- Nesta janela pode ser configuradas opções para o ILA- Primeiro selecione o número de portas trigger (sinais a serem monitorados pelo ChipScope)- A seguir selecione a largura de cada sinal em bits (1 a 256)
- Neste caso, quero monitorar apenas 1 sinal de 4 bits, logo o número de portas é 1 e a largura é 4- Clique em Next
11
http://www.inf.pucrs.br/~gaph
Configuração do ILA - continuação
- Nesta janela pode ser configuradas opções de captura para o ILA- Primeiro selecione o tamanho do buffer de amostragem em Data Depth, isto irá definir o número de amostras que o ChipScope irá capturar
- A seguir selecione a borda do clock em que os dados serão amostrados em Sample On- Deixe marcado a opção Data Same As Trigger- Clique em Next
12
http://www.inf.pucrs.br/~gaph
Configuração do ILA - continuação
- Nesta janela são realizadas as conexões entre o core do ChipScope (ILA) e os sinais do seu módulo- Enquanto todos os sinais não estiverem ligados as conexões permanecem em vermelho
- Selecione CLOCK PORT e depois clique em Modify Connections
13
http://www.inf.pucrs.br/~gaph
Configuração do ILA - continuação
- Nesta janela selecione o clock utilizado no ILA.- Este clock somente pode ser do tipo BUFG (ou algo parecido, como BUFGP)- Selecione o clock e depoisclique em Make Connections
- O sinal de clock foi adicionado ao canal 0 (CH:0) do sinal de clock do ChipScope- Agora deverão ser conectados os sinais a serem monitorados no ChipScope- Troque para a aba Trigger/Data Signals
14
http://www.inf.pucrs.br/~gaph
Configuração do ILA - continuação
- Agora serão conectados os sinais monitorados pelo ILA- Cada sinal adicionado no slide 10, tem uma aba TP associada. A estas abas serão associados os sinais do ILA com os sinais a serem monitorados
- Selecione os sinais a serem monitorados na lista, associe a um canal de uma das abas (sinais) e clique em Make Connections- Ao terminar de associar todos os sinais propostos no slide 10, clique em OK
15
http://www.inf.pucrs.br/~gaph
Configuração do ILA - continuação
- Se todos os sinais estiverem associados, as conexões aparecem em preto- Para salvar asalterações, clique emReturn to ProjectNavigator
16
http://www.inf.pucrs.br/~gaph
Executar a síntese física no ISE
- De volta ao ISE, podemos executar o fluxo normal para fazer o download do HW para o FPGA- A única alteração é que ao contrário do fluxo comum, que utiliza o IMPACT para fazer o download, utiliza-se o Analyze Design Using ChipScope- Pode-se dar um duplo clique nesteprocesso, que o ISE irá executar asíntese física e após terminado abriráautomaticamente o ambiente doChipScope Pro
17
http://www.inf.pucrs.br/~gaph
ChipScope Pro Analyzer
- É o analisador lógico do ChipScope- Pode ser usado para fazer o download do bitstream para a FPGA- Para começar o download clique no ícone logo abaixo de File
18
http://www.inf.pucrs.br/~gaph
ChipScope Pro Analyzer
- Após inicializada a seqüência do JTAG, os dispositivos presentes na cadeia serão exibidos- Clique em OK
19
http://www.inf.pucrs.br/~gaph
ChipScope Pro Analyzer
- Com os dispositivos identificados, pode-se executar o download do bitstream para o FPGA- Clique com o botão direito no dispositivo, neste caso o XC3S200, e depois em Configure
20
http://www.inf.pucrs.br/~gaph
ChipScope Pro Analyzer
- Clique em Select New File e adicione o arquivo do bitstream gerado pelo ISE- Clique em OK- O dispositivo será configurado e a seguir a GUI do ChipScope irá adicionar os sinais monitorados pelo ILA
21
http://www.inf.pucrs.br/~gaph
ChipScope Pro Analyzer
- Repare que todos os sinais estão sem os nomes descritos no VHDL, este fato dificulta a visualização do monitoramento- Para carregar os nomes de sinais, clique em File Import. A seguir, adicione o arquivo do ChipScope (*.cdc), o que importa os nomes associados a estes sinais
22
http://www.inf.pucrs.br/~gaph
ChipScope Pro Analyzer
- Veja que agora os sinais já estão com os nomes corretos, mas os barramentos estão com os sinais abertos (espalhados)- Para agrupar estes sinais, selecione todos os sinais que se deseja agrupar, e clique com botão direito em Add To Bus New Bus
23
http://www.inf.pucrs.br/~gaph
ChipScope Pro Analyzer
- Com a GUI configurada, pode-se iniciar a análise. Primeiramente, deve-se setar o valor que irá disparar a captura dos dados- Na janela de Trigger Setup, no campo Value configura-se este valor- Neste caso o valor escolhido foi 00H que é o valor inicial. Se a janela de Trigger Setup não estiver presente, dê um duplo clique na opção Trigger Setup do dispositivo ILA doFPGA- Repare que o campo Radix estáconfigurado para HEX- Após preencher este campo, pode-se disparar o ChipScope- Para disparar o ChipScope bastaclicar no botão de play logo abaixodo View
24
http://www.inf.pucrs.br/~gaph
ChipScope Pro Analyzer
- Quando o valor do trigger for igual ao valor escolhido, os dados são armazenados em BRAM até o máximo definido no ISE- Ao completar o máximo de amostras ICON envia via JTAG estas informações coletadas, quesão visualizadas na GUI- Se os valores apresentadosno barramento pareceremincorretos pode-se tentarmudar a ordem dos bits nobarramento, clicando com
o botão direito nobarramento e escolhendo aopção Reverse Bus Order