ID Artikel: 000074592 Jenis Konten: Pemecahan Masalah Terakhir Ditinjau: 04/09/2012

Mengapa perangkat lunak Quartus II tidak mensintesis variabel array yang ditandatangani dengan benar di SystemVerilog?

Lingkungan

  • Intel® Quartus® II Edisi Berlangganan
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Deskripsi

    Karena masalah dalam perangkat lunak Quartus® II, variabel array yang ditandatangani dalam SystemVerilog mungkin tidak disintesis dengan benar. Masalah ini mungkin terjadi ketika menetapkan variabel array satu dimensi ke variabel array yang ditandatangani jika rentang indeks tidak ditentukan secara eksplisit.

    Misalnya, kode berikut mungkin salah disintesis oleh perangkat lunak 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;
    Resolusi

    Untuk mengatasi masalah ini, secara khusus menyatakan rentang indeks saat menetapkan variabel susunan satu dimensi ke variabel array yang dikemas.

    Misalnya, pada kode di atas, ubah baris terakhir menjadi:

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

    Produk Terkait

    Artikel ini berlaku untuk 1 produk

    Perangkat yang Dapat Diprogram Intel®

    Isi halaman ini adalah kombinasi terjemahan manusia dan komputer dari konten berbahasa Inggris. Konten ini diberikan hanya untuk kenyamanan Anda serta sebagai informasi umum dan tidak bisa dianggap sebagai lengkap atau akurat. Jika terdapat kontradiksi antara versi bahasa Inggris halaman ini dan terjemahannya, versi bahasa Inggris akan didahulukan. Lihat versi bahasa Inggris halaman ini.