module sobel_CI(a,result,clock);
input clock;
input [31:0] a[0:3];
output [31:0] result;
assign result= a[0]+a[1]+a[2]+a[3];
endmodule
Run Code Online (Sandbox Code Playgroud)
我正在尝试在Verilog中进行数组声明,但它显示错误:
带有解压缩数组的函数参数需要systemverilog扩展.
我的阵列出了什么问题?
在Verilog中,您不能使用多维实体作为输入或输出,它在SystemVerilog中是允许的.
Verilog不允许I/O端口为二维阵列.
在Verilog 2001中,你可以将你的阵列变平为一个向量并通过端口传递,但这有点尴尬.这是一种方法:
module top (in, out);
input [31:0] in;
wire [7:0] array [0:3];
output [31:0] out;
assign {array[3],array[2],array[1],array[0]} = in;
assign out = {array[3],array[2],array[1],array[0]};
endmodule
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
231 次 |
| 最近记录: |