输入端口可以是verilog中的reg类型吗?

输入端口可以是verilog中的reg类型吗?,verilog,Verilog,在我的教科书中有一个旁注,输入或输入输出端口永远不能是reg,因为这将导致端口中永久的“x”。然而,当我为输入端口设置为reg类型的AND门编写代码时,它工作得很好 大门: //AND Gate `timescale 1ns/100ps module test(output C, input reg A,B); assign C = A & B; endmodule 试验台: //AND GATE TEST BENCH `timescale 1ns/100ps module A

在我的教科书中有一个旁注,输入或输入输出端口永远不能是reg,因为这将导致端口中永久的“x”。然而,当我为输入端口设置为reg类型的AND门编写代码时,它工作得很好

大门:

//AND Gate

`timescale 1ns/100ps
module test(output C, input reg A,B);
assign C = A & B;
endmodule 
试验台:

//AND GATE TEST BENCH
`timescale 1ns/100ps


module AND_tb;

//Declaring Variables
wire Cwatch;
reg [1:0] stim;

initial begin
#1 stim = 2'b00;
#1 stim = 2'b01;
#1 stim = 2'b10;
#1 stim = 2'b11;
#1 $stop;
end

test AND_1 (
.C(Cwatch),
.A(stim[0]), 
.B(stim[1])
);
endmodule 

这是一个你还没有告诉我你用的模拟器

但是,是的,我也注意到一些模拟器对于定义为“reg”的输入没有问题。我认为这是模拟器的一个特点

然而,一旦你试图综合,它很可能会失败


1:我还没有找到一个可以接受
input reg
的合成工具,但我还没有尝试所有现有的工具。

我使用的是Mentor Graphics Modelsim学生版,很抱歉之前没有说明。如果您能推荐任何门级合成软件,我将不胜感激,因为我已经搜索了一段时间,但没有找到任何。我没有看过,但我认为您不太可能找到任何。与盖茨合作意味着你必须与一家硅铸造厂合作,而他们不容易访问他们的库。