【问题标题】:System verilog - streaming operator multidimensional array to stream of bits系统verilog - 流式运算符多维数组到比特流
【发布时间】:2018-03-07 12:04:44
【问题描述】:

我不知道如何获取多维数组,例如:

 bit unsigned [10:0] img  [3:0][3:0];

并将这个数组作为比特流。 把它想象成一个 4X4 图像,每个像素是我想要读取的内存中的 11 位,并且我有 1 个输入引脚可以将我的图像作为位流,如果你知道如何做到这一点,我更喜欢,获取 11 位流中的数据(假设我有一个 typedef)。 我想在测试台中声明一个这样的数组,并将这个数组作为比特流发送到我想要测试的模块。

我尝试了我在网上看到的任何变化,但没有任何用处:

 stream   = { >> {img}};

 stream   = { << {img}};

将流定义为 bits 或 int ,exc.

编辑: 我从上述尝试中得到的错误是相同的:

 "near text ">>"; expecting an operand"

非常感谢您的帮助。

edit:我正在使用 quartus2 和 modelsim-sltera 模拟器。

编辑:完整示例,这是我的测试台(起初我只是试图让流式操作符工作):

module streamtest(); 
logic clk;
bit unsigned [10:0] img   [3:0][3:0]= '{'{11'b10001000000,11'b10001000000,11'b10001000000,11'b10001000000},'{11'b10001000000,11'b10001000000,11'b10001000000,11'b10001000000},'{11'b10001000000,11'b10001000000,11'b10001000000,11'b10001000000},'{11'b10001000000,11'b10001000000,11'b10001000000,11'b10001000000}};
bit unsigned [10:0]   kernel[2:0][2:0] = '{'{11'b10001000000,11'b10001000000,11'b10001000000},'{11'b10001000000,11'b10001000000,11'b10001000000},'{11'b10001000000,11'b10001000000,11'b10001000000}};
bit [31:0]  stream   = { >> {img}}; 
initial begin
    clk = 1'b0;
     //     stream   = { >> {img}};//tried inside and outside of initial block

end
StreamConv(.pixelin(stream));
endmodule

StreamConv 是我想将数组作为比特流发送的模块,他现在是空的,所以我没有发布他。

当我使用上面的 tb 时,还有一件事我得到了错误:“Error(10170):near text: “>>”;期待一个操作数。”这是点击Analysis&Synthesis操作后的样子。

【问题讨论】:

  • 我觉得两者都不错。你用的是什么模拟器?
  • 感谢您的回复,我会更新我的问题,这是我的问题所必需的。
  • Modelsim 绝对支持流式操作符。但是一些语法错误是由它之前的代码引起的。你能给我们展示一个最小的完整示例吗?
  • "交叉发帖不被接受:"-> 我在两个不同且不相关的论坛上发帖有什么问题? Dave Ill 用一个完整的例子更新我的帖子。谢谢。

标签: system-verilog


【解决方案1】:

这是一个综合工具/版本支持问题。您编写的代码是合法的 SystemVerilog 语法,但目标 stream 至少需要有 16*111=176 位。

【讨论】:

    【解决方案2】:

    首先非常感谢 dave_59,我已经尝试过更大尺寸的流并没有帮助。

    但我确实找到了答案,我使用的是 quartus 2,但该工具不支持流式操作符,如第 11 节-“操作符和表达式”中所示,在下面的链接中: http://quartushelp.altera.com/14.1/mergedProjects/hdl/vlog/vlog_list_sys_vlog.htm

    非常感谢您的帮助,希望有一天我们能帮助到某人。

    【讨论】:

      猜你喜欢
      • 2022-01-24
      • 2016-03-18
      • 2019-02-28
      • 1970-01-01
      • 2017-12-18
      • 1970-01-01
      • 2019-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多