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

Por que o software Quartus II não sintetiza corretamente as variáveis de matriz assinada no SystemVerilog?

Ambiente

  • Intel® Quartus® II Subscription Edition
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Descrição

    Devido a um problema no software Quartus® II, as variáveis de matriz empacotadas assinadas no SystemVerilog podem não ser sintetizadas corretamente. Este problema pode ocorrer ao atribuir uma variável de matriz unidimensional a uma variável de matriz embalada assinada, se a faixa de índice não for explicitamente especificada.

    Por exemplo, o seguinte código pode ser sintetizado incorretamente pelo software Quartus II:

    logic clk;
    logic signed [3:0][31:0] packed_array_variable;
    logic signed [31:0] array_variable;

    always_ff @ (posedge clk)
        packed_array_variable[0] <= array_variable;
    Resolução

    Para resolver este problema, declare explicitamente a faixa de índice ao atribuir uma variável de matriz unidimensional a uma variável de matriz embalada.

    Por exemplo, no código acima, mude a última linha para:

        packed_array_variable[0][31:0] <= array_variable;

    Produtos relacionados

    Este artigo aplica-se a 1 produtos

    Dispositivos programáveis Intel®

    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.