Verilog 如何将值传递给`define N
我正在使用iverilog模拟器,我想在编译期间将值传递给N。我需要使用哪个命令,谁能帮助我使用'define'Verilog 如何将值传递给`define N,verilog,Verilog,我正在使用iverilog模拟器,我想在编译期间将值传递给N。我需要使用哪个命令,谁能帮助我使用'define' `define N module Nbcd(A, B ,S); input [N*4-1:0] A,B; output[N*4-1:0] S; genvar i; generate for(i=0; i<=N-1; i=i+1) bcd (.A(A[4*i+3:i*4]), .B(B[4*i+3:i*4]).
`define N
module Nbcd(A, B ,S);
input [N*4-1:0] A,B;
output[N*4-1:0] S;
genvar i;
generate
for(i=0; i<=N-1; i=i+1)
bcd (.A(A[4*i+3:i*4]),
.B(B[4*i+3:i*4]).
.S(S[4*i+3:i*4])
);
endgenerate
endmodule
试验台
module Nbcd();
reg [N*4-1:0] A,B;
wire [N*4-1:0] S;
integer i;
Nbcd U1 (.A(A),.B(B),.S(S));
initial begin
for (i=o; i<=N-1; i=i+1)
begin
A=i;
b=i+1;
end
endmodule
我相信大多数模拟器都允许-define命令行选项
irun test.sv -define N=0
使用时略有不同-Dkey=值ie
用法
要使用`define tick defines,您需要在其前面放置一个勾号,因此当您要使用命令行提供的值时,可以使用`N,例如:
module Nbcd(A, B ,S);
input [`N*4-1:0] A,B;
output[`N*4-1:0] S;
我有一个,版本为0.9.7。该值通过命令行-DN=10提供,并使用$displayN:%d,`N;在模拟中显示该值
提示
您可能还希望添加下面的代码,以便它可以在不使用命令行选项的情况下运行,或者提醒用户它是必需的:
`ifndef N
`define N 0
`endif
我相信大多数模拟器都允许-define命令行选项
irun test.sv -define N=0
使用时略有不同-Dkey=值ie
用法
要使用`define tick defines,您需要在其前面放置一个勾号,因此当您要使用命令行提供的值时,可以使用`N,例如:
module Nbcd(A, B ,S);
input [`N*4-1:0] A,B;
output[`N*4-1:0] S;
我有一个,版本为0.9.7。该值通过命令行-DN=10提供,并使用$displayN:%d,`N;在模拟中显示该值
提示
您可能还希望添加下面的代码,以便它可以在不使用命令行选项的情况下运行,或者提醒用户它是必需的:
`ifndef N
`define N 0
`endif