我将设计从Verilog转换为SystemVerilog,默认情况下,我有string = 'pathos/*_cube/uni/ToolSub.pm'
指令。这是我的设计:
'default_nettype none
编译任何问题。但是,当我按照以下方式将连线更改为逻辑时:
`default_nettype none
module my_design
#(
parameter INPUT_WIDTH = 16,
parameter OUTPUT_WIDTH = 2*INPUT_WIDTH
)
(
input wire signed [INPUT_WIDTH-1 : 0 ] x_in,
input wire signed [INPUT_WIDTH-1 : 0 ] y_in,
output wire signed [OUTPUT_WIDTH-1 : 0] z_out
);
我的所有端口信号都出现以下错误:
module my_design
#(
parameter INPUT_WIDTH = 16,
parameter OUTPUT_WIDTH = 2*INPUT_WIDTH
)
(
input logic signed [INPUT_WIDTH-1 : 0 ] x_in,
input logic signed [INPUT_WIDTH-1 : 0 ] y_in,
output logic signed [OUTPUT_WIDTH-1 : 0] z_out
);
这对我来说很奇怪,因为我已明确将所有端口都贴花了。我正在使用ERROR: [VRFC 10-1103] net type must be explicitly specified for 'x_in'
when default_nettype is none
。我正在使用以下命令来编译以上代码:
Vivado Simulator 2018.2
files.f仅包含我的设计和测试文件。
答案 0 :(得分:2)
输入端口是隐式v-if="order === 'fifth'"
网络类型,具有隐式wire
数据类型。 SystemVerilog选择了这些默认设置以与Verilog向后兼容。
因此,您最初的Verilog输入声明是具有隐式logic
数据类型的显式wire
。您已将其更改为具有显式logic
数据类型的隐式wire
网络类型。但是结果在功能上是相同的。您需要重新添加logic
关键字。
以下在功能上都是等效的:
wire