Pergunta

Atualmente estou testando algumas RTL, estou usando ncverilog, e é muito ... muito lento. Ouvi dizer que, se usar algum tipo de placas FPGA, então as coisas vão ser mais rápido. É de verdade?

Foi útil?

Solução

Você está falando de duas coisas diferentes.

ncverilog é uma ferramenta de simulação, enquanto uma placa FPGA é hardware real. Assim, não haverá diferenças. hardware real será geralmente mais rápido, mas com um simulador, você pode ter todos os tipos de depuração divertido. Tentando sondar um sinal específico é apenas uma questão de adicionar uma linha para o testbench. Além disso, você pode facilmente fazer alterações no modelo simulado em vez de ter de redesenhar a placa FPGA.

Se você executar a simulação em uma máquina suficientemente poderoso, você pode às vezes aproximados desempenho no mundo real (assumindo que o FPGA é lento).

Ao todo, você deve fazer as duas coisas. Usar um simulador para fazer o seu desenvolvimento básico e avaliação. Passar para o seu hardware FPGA uma vez que seu projeto é suficientemente bem definido.

Outras dicas

Nós tivemos os mesmos problemas com a velocidade de simulação também. No entanto, ficamos com simulações para a maioria da nossa verificação. Cada cheques sim uma função específica e são muito mais rápidos do que sims de nível de sistema. Nós também fez auto-verificação e são úteis para testes de regressão (unidade-testes).

Para os testes do sistema longos sobre os sinais do mundo real que levam muito tempo para simular, passamos-los para o FPGA, se pudermos. Precisamos manualmente voltar a verificar todos esses casos de teste novamente após alterações no código, para que ele possa ser lento em sua própria maneira.

Às vezes, porém, FPGAing um design não é apenas viável. Às vezes designs completos são grandes demais para caber em um FPGA, ou a velocidade de relógio é muito alto. Mas lembre-se que você não necessariamente tem que FPGA seu projeto inteiro, pode ser o suficiente para obter o bloco importante que você está interessado e verificar isso totalmente.

Você pode rastrear a atividade em sinais em um projeto running FPGA usando "lógica analisador embutidos" ferramentas de software como Altera SignalTap ou Xilinx ChipScope. Antes de sintetizar / mapeando seu RTL ao dispositivo, você poderia usar essas ferramentas para anexar sondas suaves para os sinais que você quer assistir. Você pode definir gatilhos para que os valores de um sinal apenas se registrado sob certas condições. Então você gerar o bitfile e programar o dispositivo com JTAG. Os comunica analisador lógico com o seu PC sobre a atividade JTAG e logs em suas sondas, que você pode então analisar.

É um pouco complicado de configurar, uma vez que estas ferramentas não são especialmente fáceis de usar, mas você vai obter resultados muito mais rápido do que com simulação RTL.

Que tipo de RTL que você está testando? Se você usar placas FPGA, então você pode compilar seu código desde que você tenha a ferramenta certa para o FPGA direita. Desde FPGA são reprograammable, então é claro que você pode testar o seu código na placa, e têm o alvo (FPGA) executar o seu código (RTL)

Mas não é mais uma simulação, é um teste, com um determinado hardware, a uma determinada velocidade de clock. E você não obter bom resultado na tela, você precisa usar sonda física e escopo. Além disso, você não consegue ver como a interna do seu código está funcionando.

verilog ou simulação VHDL é um tipo de execução de código usando um depurador. testes FPGA é mais como depuração com printf. A grande diferença é que, quando simulando, o seu CPU tem para simular o comportamento de todos os porta lógica que os resultados de seu código. No FPGA, não há nenhuma simulação, você apenas 'correr' o código, por isso é muito mais rápido, mas você tem menos informação.

Você deve usar simulação para componentes muito pequenos, e depois testar o seu programa inteiro em um FPGA.

Você provavelmente perguntando sobre aceleradores de simulação hardware. Aqui está uma delas: GateRocket

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top