Verilog ams:获取另一个模块中的参数值
Verilog ams: get a value of a parameter in another module
我遇到了问题。
我想从另一个模块中的参数中获取一个值,如下所示:
module FS0b (in2,in2,out1);
input in1,in2;
output out1;
parameter real res=10000;
endmodule
module FS1b (in1,in2,out1);
input in1,in2;
output out1;
wreal in1;
wreal in2;
wreal out1;
out1=res- in1+in2;
endmodule
verilog 中的参数具有局部作用域。它在定义它的模块中是本地的。
您可以使用分层表示法从其他模块访问参数,但完全不建议这样做。
相反,您可以在 verilog 中使用 `define 或在系统 verilog 中使用一个包来使其成为全局的。
module FS0b (in1,in2,out1);
input in1,in2;
output out1
parameter real res=10000;
endmodule
module FS1b (in1,in2,out1);
input in1,in2;
output out1;
wire in1;
wire in2;
wire out1;
assign out1= FS0b.res - in1+in2;
endmodule
请记住,verilog 参数应用于实例。所以需要从实例中调用参数。
这是您的第一个模块
module FS0b (in2,in2,out1);
input in1,in2;
output out1;
parameter real res=10000;
endmodule
让我们向第二个模块添加一个虚拟参数
module FS1b (in1,in2,out1);
parameter real res=10000;
input in1,in2;
output out1;
wreal in1;
wreal in2;
wreal out1;
assign out1=res- in1+in2;
endmodule
并在顶级模块中实例化这些
module Topmodule(...);
FS0b fs0b{...};
defparam
fs1b.res = fs0b.res;
FS1b fs1b{...};
endmodule
但更好的应用是在顶层模块中定义参数,然后将其应用于层次结构:
module Topmodule(...);
parameter real res=10000;
defparam
fs0b.res = res;
FS0b fs0b{...};
defparam
fs1b.res = res;
FS1b fs1b{...};
endmodule
我遇到了问题。 我想从另一个模块中的参数中获取一个值,如下所示:
module FS0b (in2,in2,out1);
input in1,in2;
output out1;
parameter real res=10000;
endmodule
module FS1b (in1,in2,out1);
input in1,in2;
output out1;
wreal in1;
wreal in2;
wreal out1;
out1=res- in1+in2;
endmodule
verilog 中的参数具有局部作用域。它在定义它的模块中是本地的。
您可以使用分层表示法从其他模块访问参数,但完全不建议这样做。
相反,您可以在 verilog 中使用 `define 或在系统 verilog 中使用一个包来使其成为全局的。
module FS0b (in1,in2,out1);
input in1,in2;
output out1
parameter real res=10000;
endmodule
module FS1b (in1,in2,out1);
input in1,in2;
output out1;
wire in1;
wire in2;
wire out1;
assign out1= FS0b.res - in1+in2;
endmodule
请记住,verilog 参数应用于实例。所以需要从实例中调用参数。
这是您的第一个模块
module FS0b (in2,in2,out1);
input in1,in2;
output out1;
parameter real res=10000;
endmodule
让我们向第二个模块添加一个虚拟参数
module FS1b (in1,in2,out1);
parameter real res=10000;
input in1,in2;
output out1;
wreal in1;
wreal in2;
wreal out1;
assign out1=res- in1+in2;
endmodule
并在顶级模块中实例化这些
module Topmodule(...);
FS0b fs0b{...};
defparam
fs1b.res = fs0b.res;
FS1b fs1b{...};
endmodule
但更好的应用是在顶层模块中定义参数,然后将其应用于层次结构:
module Topmodule(...);
parameter real res=10000;
defparam
fs0b.res = res;
FS0b fs0b{...};
defparam
fs1b.res = res;
FS1b fs1b{...};
endmodule