没有方向verilog的端口声明

时间:2014-04-12 23:05:47

标签: verilog system-verilog boolean-expression

所以这是我拥有的文件或行为模型的1/4,但我在文件中不断收到此错误。我是否在verilog中正确地做到了这一点?我得到了一个:

"只有System Verilog支持没有方向的端口声明。必须使用-sverilog标志进行编译才能启用对此功能的支持。"

module NSG_function
(
        input x, [1:0] q, // current_state,
        output [1:0] d // next_state
);

assign d[1] = ~x&q[0]&q[1] | x&~q[0]&q[1] | x&q[0]&~q[1];
assign d[0] = ~x | ~q[0]&q[1];

endmodule

2 个答案:

答案 0 :(得分:3)

问题在于输入q 虽然你把它放在与input x,相同的行上,但由于你将q声明为一个数组,它需要自己的输入声明。

module NSG_function
(
        input x, 
        input [1:0] q, // current_state
        output [1:0] d // next_state
);

assign d[1] = ~x&q[0]&q[1] | x&~q[0]&q[1] | x&q[0]&~q[1];
assign d[0] = ~x | ~q[0]&q[1];

endmodule

答案 1 :(得分:2)

您可能需要为每个信号指定input

input x, 
input [1:0] q, // current_state,