ID do artigo: 000080324 Tipo de conteúdo: Mensagens de erro Última revisão: 11/02/2013

Erro interno: subsistema: VRFX, Arquivo: /quartus/synth/vrfx/verific/vhdl/vhdlvalue_elab.cpp, Linha: 6821

Ambiente

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Descrição

Devido a um problema no software Quartus® II, você pode ver este erro interno se seu código VHDL inferir uma memória de duas portas de largura mista de dois clocks com o processo para a porta mais ampla colocada antes do processo para a porta mais estreita.

Por exemplo:

portA_p : PROCESS (clk)
BEGIN
IF (rising_edge(clk)) THEN
 IF we_a = '1' THEN
  -- Write access
  ram(addr_a / 2)(addr_a mod 2) := data_a;
  -- Read during write on the same port returns NEW data
  q_a <= data_a;
 ELSE
  -- Read returns OLD data
  q_a <= ram(addr_a / 2)(addr_a mod 2);
 END IF;
END IF;
END PROCESS portA_p;

portB_p : PROCESS (clk)
BEGIN
IF (rising_edge(clk)) THEN
 IF we_b = '1' THEN
  ram(addr_b) := data_b;
  -- Read during write on the same port returns NEW data
  q_b <= data_b;
 ELSE
  -- Read returns OLD data
  q_b <= ram(addr_b);
 END IF;
END IF;
END PROCESS portB_p;
Resolução

Para resolver esse problema, reverte a ordem dos processos para que o processo para a porta mais ampla apareça primeiro.

Este problema está programado para ser corrigido em uma versão futura do software Quartus II.

Produtos relacionados

Este artigo aplica-se a 1 produtos

Dispositivos programáveis Intel®

1

O conteúdo desta página é uma combinação de tradução humana e por computador do conteúdo original em inglês. Este conteúdo é fornecido para sua conveniência e apenas para informação geral, e não deve ser considerado completo ou exato. Se houver alguma contradição entre a versão em inglês desta página e a tradução, a versão em inglês governará e será a controle. Exibir a versão em inglês desta página.