Đôi khi tôi thấy hữu ích khi sử dụng các bài tập chặn cho "biến cục bộ" bên trong đồng hồ luôn luôn chặn. Điều này có thể giúp giảm bớt mã lặp lại.Biến Verilog có thể được cung cấp phạm vi cục bộ để luôn chặn không?
Để tránh vô tình sử dụng cùng một biến trong một khối luôn luôn khác nhau (có thể không xác định cho mô phỏng), tôi muốn cung cấp cho nó phạm vi địa phương. Có một cách tổng hợp tốt đẹp để làm điều này?
Cái gì như:
module sum3(
input clk,
input [7:0] in1,
input [7:0] in2,
input [7:0] in3,
output reg [7:0] result,
output reg [7:0] result_p1);
begin :sum
reg [7:0] sum_temp; // local variable
always @(posedge clk) begin
sum_temp = in1 + in2 + in3;
result <= sum_temp;
result_p1 <= sum_temp + 1;
end
end
endmodule
(. ModelSim có vẻ là ổn với điều này, nhưng Synplify dường như không thích nó)
Mã của bạn có nhiều lỗi biên dịch với 2 trình mô phỏng tôi đã sử dụng (VCS và Incisive). – toolic
Đã chỉnh sửa để sửa lỗi biên dịch. – mksuth
Bất kỳ phản hồi từ cử tri xuống? – mksuth