ID do artigo: 000084426 Tipo de conteúdo: Solução de problemas Última revisão: 11/09/2012

Por que a síntese quartus II seleciona o bit de processo incorretamente de variáveis assinadas?

Ambiente

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Descrição

O software Quartus® II versão 6.0 e 6.0 SP1 processam incorretamente o bit selecionado de variáveis assinadas devido a um problema de software conhecido. O código Verilog envolvendo seleções de bits de variáveis assinadas deve devolver valores não assinados conforme especificado no Verilog LRM (Std 1364-2001 versão C, Sec 4.5.1).

Este problema não existe nas versões 5.1 ou anteriores. O problema é corrigido a partir do software Quartus II versão 6.1.

Como exemplo deste problema, o software Quartus II versão 6.0 processa incorretamente a seguinte amostra de código:

reg [7:0] unrounded;

reg [6:0] rounded;

always @ (posedge clk) begin

 rounded <= unrounded[7:1]   unrounded[0];

O software deve zerar o sinal sem extensão[0] para garantir que o valor de um bit seja adicionado à fatia de bits de unrounded[7:1].

As versões do software Quartus II 6.0 e 6.0 SP1 unrounded[0] estendem o sinal em vez de estender o sinal a zero. No exemplo, unrounded[0] se o sinal for um valor 1, o software interpretará o 1 como o sinal do número e, portanto, o converterá em uma representação assinada de 7 bits de -1 em vez de um valor não assinado. Portanto, o software adiciona -1 a unrounded[7:1], em vez de adicionar 1.

Para evitar esse problema (nas versões 6.0 ou 6.0 SP1), faça um dos seguintes:

  • Entre em contato com o mySupport para solicitar o patch 1.20 para o software Quartus II versão 6.0 SP1.
  • Coloque parênteses em torno de uma das variáveis e force toda a expressão a avaliar como não assinado usando a função Verilog-2001:
rounded <= (unrounded[7:1])   unrounded[0]
  • Pade manualmente os zeros principais da seguinte forma (ou seja, estado explicitamente que os bits principais devem ser 0):
  • rounded <= unrounded[7:1]   {{6{1'b 0}}, unrounded[0]};

     

Produtos relacionados

Este artigo aplica-se a 1 produtos

FPGAs Stratix® II

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 prevalecerá e será a determinante. Exibir a versão em inglês desta página.