280 likes | 390 Views
Usando ChipScope. Alexandre Amory amory@inf.pucrs.br. SUMÁRIO. Oque é ?, Benefícios e Características Antes de Usar o ChipScope Code Generator Code Inserter Analyser CookBook. O que é ?. Analisa sinais internos de um FPGA ;
E N D
Usando ChipScope Alexandre Amory amory@inf.pucrs.br
SUMÁRIO • Oque é ?, Benefícios e Características • Antes de Usar o ChipScope • Code Generator • Code Inserter • Analyser • CookBook
O que é ? • Analisa sinais internos de um FPGA; • Funciona como um analisador lógico tornando uma ótima ferramenta de depuração; • Usa Blocos de SelectRam para armazenar amostragens (não funciona com XCXXXX); • ICON - IntegratedCONtroller: interface com boundary scan; • ILA - Integrated Logic Analyzer: provê trigger e captura dos dados;
Benefícios • Diminui tempo para validação; • Rápida e fácil de usar; • Você gasta em torno de 15 minutos para começar a depurar a lógica (inserção do core e download). Quanto tempo gastaria para configurar o analisador lógico (config + cabeamento) ?; • cores gastam de 1.7% a 5.8% (para cada ILA) e 1.1% a 2.8% (para o ICON) de slices de uma virtex 300;
Características • Taxa de captura de até 155Mhz; • buffer de amostragem de tamanho variável (256 a 4096) • múltiplos triggers, uso de trigger externo e de fácil configuração; • até 15 ILAs; • 2 design flows: • com vhdl - manual; • com edif - automática;
Fluxo de Projeto EDIF VHDL
SUMÁRIO • Oque é ?, Benefícios e Características • Antes de Usar o ChipScope • Code Generator • Code Inserter • Analyser • CookBook
Antes de Usar o ChipScope • Crie um projeto no Foundation normalmente; • Execute a síntese lógica; • copie os arquivos xyz.edf e xyz.ucf para um outro diretório; • crie um subdir neste diretório recém criado; c:\minha_logica\out • Começaremos agora a usar o ChipScope ...
SUMÁRIO • Oque é ?, Benefícios e Características • Antes de Usar o ChipScope • Code Generator • Code Inserter • Analyser • CookBook
Code Generator - ICON • Gera os cores ICON e ILA em formato EDIF (*.edn); PASSOS: • Gerando o ICON: • Selecione ICON; • Next • selecione o diretório de saída do arquivo (mesmo dir onde está o xyz.edf e xyz.ucf); • 3 selecione o nro de portas de controle (nro de ILAs); • Normalmente não se seta nenhuma das opções • Next
Gerando ICON • selecione vhdl e a ferramenta de síntese; • não gere arquivos de exemplo (não serve para nada); • Gerado o ICON (icon.edn).
Code Generator - ILAs • Gerando o ILA: • selecione ILA; • Next • selecione o diretório de saída do arquivo (mesmo dir onde está o xyz.edf e xyz.ucf); • selecione nome curto (mais legível); • selecione o modo de trigger (geralmente será “same as data”) e a largura da palavra a ser monitorada;
Gerando ILA • selecione o tamanho do bufferde amostragem (256 a 4096). Esse dado define o comprimento da sua monitoração no “analyzer”; • Selecione o modo de “matching” (simples e extendido); • Next • selecione vhdl e a ferramenta de síntese; • não gere arquivos de exemplo (não serve para nada); • Gerado o ILA (ila.edn). • Como a dois slides atrás
SUMÁRIO • Oque é ?, Benefícios e Características • Antes de Usar o ChipScope • Code Generator • Code Inserter • Analyser • CookBook
Core Inserter • Concatena a descrição do usuário (xyz.edf) com os cores ICON e ILAs (*.edn); PASSOS • selecione o diretório onde está o xyz.edf, xyz.ucf, icon.edn e ila.edn ; • selecione o diretório onde será criado os arquivos de saída (xyz_ila.ngo e xyz_ila.ucf) ; c:\minha_logica\OUT • Next
Core Inserter • nos parâmetros do ICON geralmente não precisa setar nada. Passe adiante. • Next
Core Inserter • Nos parâmetros do ILA você deve setar: • informações do trigger (geralmente se usa “same as data”); • largura da palavra monitorada; • tamanho do buffer de amostragem (256 a 4096); • parâmetros de “matching” (simples/extendido) • conectando o core a sua descrição: • neste ponto ocorre efetivamente a ligação do core ILA com a sua descrição;
Integrando sua lógica com ILA • Dê dois clicks em CH0 • Na tela que abrirá selecione o sinal de clock • Siga esses passos para os sinais restantes
Core Inserter OBS.: • para concatenar a descrição do usuário com ILA NÃO SE PODE USAR PINOS!!!! • Ex.: se o nome do sinal de clock da descrição do usuário chama-se clk, não selecione da lista de sinais o sinal clk, pois ele é um pino. Você deve selecionar o sinal interno correspondente ao clk. (geralmente N_clk)
Core Inserter • A descrição do usuário está pronta para passar pela síntese física; • Os dois arquivos importante para a próxima etapa são xyz_ila.ngo e xyz_ila.ucf; • no menu tools click em design manager; • crie um novo projeto tendo como entrada o xyz_ila.ngoe como UCFxyz_ila.ucf; • selecione a opção de readback e implemente o projeto. • Pronto. Foi gerado o xyz_ila.bit. Faça download com o JTAG Prog (com Xchecker) ou Hardware Debugger (com MultLinx).
SUMÁRIO • Oque é ?, Benefícios e Características • Antes de Usar o ChipScope • Code Generator • Code Inserter • Analyser • CookBook
Analyzer • É o analisador lógico do ChipScope; • PASSOS • Selecione o modo de comunicação (serial MultLinx, USB MultLinx e Parallel*); • click em trigger setup e selecione o trigger do sinal; • click em run para fazer aquisição de dados; • os passos 2 e 3 devem ser repetidos para cada ILA, uma vez que cada ILA tem sua própria janela do Analyzer;
Selecionando cada ILA • Para selecionar uma nova ILA, por exemplo ILA 1, click em Unit1 e assim por diante ...
Analyzer - características básicas • O valor do trigger será comparado para iniciar uma aquisição de dados; • Os valores possíveis para trigger são: • X,0,1,R,F e B; • Estados do Sample buffer: • armed, <value>, full, stopped; • plot value -> aplicado somente a bus; • tokens - labels atribuídos a valores específicos de um bus;
Analisando Sinais • Note que no instante 0, o valor do sinal monitorado é igual ao valor do trigger. Apartir deste instante, toda variação de x é gravado no buffer até que o mesmo esteja cheio. Neste caso o buffer tem 256 posições
SUMÁRIO • Oque é ?, Benefícios e Características • Antes de Usar o ChipScope • Code Generator • Code Inserter • Analyser • CookBook
CookBook • Gere os arquivos da descrição do user (síntese lógica); • Copie os arquivos *.edf e *.ucf para outro dir; • gere os arquivos icon.edn e ila.edn com o core generator no dir anterior; • concatene a descrição do user com o core ILA usando o core inserter, colocando os arquivos gerados em outro dir; • não esqueça que não se pode usar pinos para concatena-los; • use os arquivos *_ila.ngo e *_ila.ucf como base de um novo projeto do design manager. Sete o readback, gere o .bit e dê o download; • no Analyzer sete o modo de comunicação e o trigger para cada ILA;