Pergunta

Estou atribuído com a tarefa de verificar algum código RTL base Verilog. Agora, a codificação da testbench RTL usando Verilog parece ser muito difícil (para mim). Então, eu gostaria de tentar uma das seguintes opções. - Tente fornecendo uma interface PLI ao RTL e, assim, invocam 'C funções para testes - Usando o sistema 'C para interface dos funções C

PS: Eu já tenho um extenso código 'C que foi usado para testar o modelo comportamental. Eu sou novo para o mundo da programação hardware. Os ponteiros seria muito apreciada.

Foi útil?

Solução

Se você já tem extensa código C que foi usado para testar o modelo comportamental, então a única coisa a fazer é apenas adicionar uma interface PLI (ou DPI) que permitirá que você para chamar esse código c de Verilog.

SystemC é basicamente C ++ com um monte de classes que permitem modelar HW. Eu não vejo como você se beneficiaria de aprender SystemC para a tarefa que você está tentando como você já tem um modelo de C disponíveis que você pode testar o HW contra. Aprendizagem SystemC é provavelmente um exagero para o que você está tentando fazer.

FYI. Se você quer aprender algo que é muito utilizada na indústria de hoje, então eu sugiro que você aprenda SystemVerilog. Estes dias SystemVerilog, basicamente verilog com um monte de linguagem de software de alto nível características construído em; juntamente com "VMM", uma "metodologia de verificação" (ou seja, um grupo de bibliotecas), parece ser toda a raiva na terra verificação de hardware.

Outras dicas

A questão não é tão fácil de responder sem saber o seu DUV (dispositivo sob verificação) ou o código C que você tem. Você precisa de meios para estimular e verificar o seu design, aqui você provavelmente precisará traduzir de / para nível de transação (estruturas de dados c) de / para o nível pin. interfaces de SystemVerilog ou SystemC pode ser uma abordagem. Eu não usei interfaces de DPI / PLI ainda.

Para ter um "state-of-the-art" testbench você deve considerar usar uma das metodologias testbench lá fora, ou seja, VMM ou OVM . Eles também irá lhe fornecer documentação como começar.

Parece que você deve ter uma ferramenta como Mentor de ou simuladores de cadência que combinam RTL e código SystemC sob um único sistema. Não é livre, certamente, mas eles são a solução para o que existe na prática.

A solução estruturalmente correta que você precisa é para o C ou SystemC para chamar para a RTL, e não o contrário. Fazendo isso implica integrar alguns simulador RTL com o seu programa C ou programa SystemC. É certamente factível, mas um compromisso muito grande.

Além disso, acho que o uso de SystemVerilog faz muito sentido.

Eu usei tanto para SystemC e Sistema Verilog / VMM para verificação, e a resposta é: depende. Quando eu estava com uma partida que foi com um orçamento apertado tentar obter a sua primeira ASIC para fora da porta, SystemC foi uma escolha natural, porque funcionou em nosso simulador de baixo orçamento e SystemVerilog não. Com SystemC, você não precisa usar o PLI ou o DPI. Você realmente instanciar seu modelo SystemC como um componente em seu testbench, o que é interessante.

No entanto, SystemC é uma biblioteca C ++ que não tem uma sintaxe muito intuitivo. Você deve ter um fundo decente C ++ antes de tentar aprender a biblioteca SystemC. Os livros para esta que estão disponíveis na maior parte chupar, com exceção de "SystemC do Ground Up", de David Black.

que começam disse, pelo que tenho visto, SystemC é, naturalmente, uma linguagem de alto nível modelagem, não uma linguagem de verificação, e ninguém com qualquer orçamento para comprar simuladores reais está usando SystemC para verificação mais. Do ponto de vista geral de desenvolvimento de carreira, eu usaria Sistema Verilog se ele está disponível para você. Além disso, você sempre pode usar o DPI a interface para o seu modelo C para a verificação de saída, que ainda está usando geradores, monitores e painéis de avaliação escritos em SV / VMM.

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