【问题标题】:Queue declaration SystemVerilog compiling error队列声明 SystemVerilog 编译错误
【发布时间】:2018-10-09 13:45:41
【问题描述】:

您好,我在使用 Intel Quartus Prime 的 SystemVerilog 文件中的测试平台模块中有下一行代码:

`timescale 1ns/1ps

 module fo;

    parameter retardo_reset = 150;
    parameter repetir = 2;

    reg clock;
    reg reset;
    reg clear;
    reg rden;
    reg wren;
    reg [7:0] data_in;
    reg [7:0] data_out;
    reg [7:0] queue [$:31];             
    reg [7:0] random_number;

    wire aempty;
    wire afull;
    wire empty;
    wire full;

    // There is more code there ...

但是编译器说在声明队列的行reg [7:0] queue [$:31];有下一个错误:

错误 (10170):在 fo.sv(15) 附近出现 Verilog HDL 语法错误:“$”;期待一个操作数。检查并修复紧接在指定关键字之前或处出现的任何语法错误。英特尔 FPGA 知识数据库包含许多文章,其中包含有关如何解决此错误的具体细节。访问知识数据库https://www.altera.com/support/support-resources/knowledge-base/search.html 并搜索此特定错误消息编号。

你知道我做错了什么吗?因为这是在 SystemVerilog 中声明有限队列的正确方法。

【问题讨论】:

  • 我已经在 Settings -> Compile -> Input HDL Verilog 中启用了 SystemVerilog。

标签: queue system-verilog quartus


【解决方案1】:

根据Quartus manual,它目前不支持队列数据类型的合成,即使是有界的。

【讨论】:

  • 此代码旨在将其用作测试平台,没有可合成的 RTL。
  • 但是错误消息来自他们的工具,并且他们的手册说该构造不受支持。
  • 你是对的,它似乎只能被模拟器编译,不能被 quartus as self 编译。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-18
  • 2014-08-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多