1
在參數覆蓋期間,參數my_secret被2.3.4.5覆蓋。我想強制一個條件覆蓋my_secret爲2爲count = 0至10,my_secret爲3爲count = 10至20,my_secret爲4爲count = 20至30,my_secret爲5爲計數= 40至50?Verilog參數覆蓋
試驗檯:
module tb_def_param;
// Inputs
reg CLK;
reg RST;
reg [4:0] a;
reg [4:0] b;
reg [5:0] count;
parameter my_secret = 4'd0;
wire [6:0] sum;
initial
begin
// Initialize Inputs
a = 0;
b = 0;
CLK = 1;
RST = 1;
// Wait 100 ns for global reset to finish
#100 RST = 1;
#100 RST = 0;
// Add stimulus here
a = 5'd2;
b = 5'd3;
end
always @ (posedge CLK)
begin
if(RST)
count <= 6'd0;
else
count <= count + 1;
end
secret_number #(2) U0(.CLK(CLK), .RST(RST), .a(a),.b(b),.sum(sum));
secret_number #(3) U1(.CLK(CLK), .RST(RST), .a(a),.b(b),.sum(sum));
secret_number #(4) U2(.CLK(CLK), .RST(RST), .a(a),.b(b),.sum(sum));
secret_number #(5) U3(.CLK(CLK), .RST(RST), .a(a),.b(b),.sum(sum));
always
begin
#10 CLK <= ~CLK;
end
endmodule
主要模塊:
module secret_number(CLK,RST,a,b,sum);
input CLK, RST;
input [4:0]a,b;
output [6:0]sum;
reg [6:0] sum;
parameter my_secret = 0;
[email protected](posedge CLK)
sum = a + b + my_secret;
initial begin
$display("%d", my_secret);
end
endmodule
這是可能的???
感謝您的評論。總和是「wire」類型,它不能在always塊下聲明。任何建議來解決這個問題? – user2344774
你說得對;抱歉;將'sum'改爲'reg',它會起作用(編輯上面的內容) – Unn
這就是問題了...... sum應該是一個輸出,即它應該是一個線型。 – user2344774