Pergunta

Eu tenho um cabo que é de cerca de 4 níveis de profundidade e eu realmente não quero ter o incómodo de propagá-lo para cima na hierarquia.Existe alguma maneira de atribuir a fio usando algum tipo de referência?Eu sei que eu posso acessar o fio digitando:

cca.cpu0.cca3_cpu.nc1_cp_checkpoint 

mas

assign cca.cpu0.cca3_cpu.nc1_cp_checkpoint = checkpoint;

não funciona

Alguém sabe de alguma maneira de fazê-lo?

Foi útil?

Solução

Desde que você não se têm mostrado suficientes código para qualquer um, para reproduzir o problema, nem revelou qualquer detalhe sobre o seu problema, tudo o que podemos fazer é adivinhar.

Meu palpite é que nc1_cp_checkpoint é declarado como um reg dentro da sua cca3_cpu instância.Você não pode atribuir um valor a uma reg usando um contínuo de atribuição.Tente usar uma processuais de atribuição (dentro de um initial ou always bloco), por exemplo:

initial begin
    cca.cpu0.cca3_cpu.nc1_cp_checkpoint = checkpoint;
end

Se isto não resolver o seu problema:

  1. Mostrar mais relevante código
  2. Elaborado em "não funciona".Mostrar a mensagem de erro, se houver.

Atualização:Outro potencial problema surge se nc1_cp_checkpoint é um continuamente orientado wire dentro da sua cca3_cpu instância.Nesse caso, a sua segunda assign pode causar contenção, o que tornaria o valor desconhecido (x).Você pode ser capaz de evitar esse problema usando force e release.

Outras dicas

Na sua tag, você parece estar indicando que está usando VCs. Você está recebendo um:

Error-[XMRE] Cross-module reference resolution error
Cross module resolution failed, token BLAH'. 
Originating module 'foo'. "foo.v", 666: 

Isso indicaria que seu caminho não está correto.

As referências de módulos cruzados funcionam, mas podem não estar ativados se você estiver restringindo seu design a construções sintetizáveis. Procure "Referência de Módulo Cross" no Guia do Usuário do VCS.

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