用verilog创建二维网络数组

时间:2016-10-18 13:23:44

标签: verilog fpga

我正在尝试使用二维网络阵列编写程序。但是当检查代码时它会显示错误(期待';',找到'[')。我应该如何声明2d网络阵列以及如何使用它?

下面是我为验证而编写的简单代码(显示上述错误)。

module bin(a);
input [0:1] a[0:2];
endmodule

3 个答案:

答案 0 :(得分:0)

Verilog不支持多维数组和解压缩数组作为端口。 Verilog在端口列表中支持的唯一数组是简单打包数组(也称为向量)。

SystemVerilog支持所有变体中的多维数组。所有现代Verilog仿真器实际上都是具有向后可比性的SystemVerilog仿真器。

区分Verilog和SystemVerilog文件的首选方法是使用文件扩展名。 SystemVerilog文件应使用.sv,而Verilog使用传统的.v

另外,模拟器可以选择强制.v文件编译为SystemVerilog。有些人使用-sv作为编译器选项,但有些使用不同的标识符,因此您需要参考手册或帮助文件。这种方法的缺点是当您混合使用传统的verilog文件时会发生这种情况,这些文件恰好使用变量/网络名称,这些文件在SystemVerlog中成为保留字。使用正确的文件扩展名可以通过基于扩展名来编译每个文件来降低此风险。

答案 1 :(得分:0)

您无法在端口中拥有解压缩的阵列。请注意,Verilog是硬件描述语言,而不是软件语言。 Verilog只支持那些可以映射到真实硬件的东西。

  

您可以在端口中使用压缩数组,而不是解压缩数组。

打包数组,可以被认为是最简单术语中的一堆电线。但是,未打包的阵列不会连续存储,因此它们不能被视为简单的电线束。

答案 2 :(得分:0)

The additional
  properties (RRS/SSE) were not enabled or disabled due to errors for
  the following objects in backup-assets.myapp.com:
  copied-object-one.txt.

这应该有效,因为它是一个打包的数组维度。否则你可以使用总线来表示你的输入并打破它。

var autocomplete = new google.maps.places.Autocomplete(document.getElementById('MyAutocomplete'));
        setTimeout(function(){
                            $(".pac-container").append('<div id="areasearch" class="pac-item" onmousedown="alert(\'Yes, working\')"><span class="pac-icon icon-airport"></span><span class="pac-item-query"><span class="pac-matched"></span>Sample Address</span> <span>it\'s Working</span></div>');
                        }, 500);