我想设计一个可综合的64位全加器,所以我需要实例化模块64次,这使得代码很笨重。有没有人能建议一种替代方法来最小化代码?
发布于 2015-10-20 04:16:32
除非你试图理解门级设计的结构,否则使用可合成RTL要容易得多:
localparam WIDTH = 64;
reg [WIDTH-1:0] a;
reg [WIDTH-1:0] b;
reg [WIDTH-1:0] sum;
always @* begin
sum = a + b;
end
// to make output sync, put through flip flop
reg [WIDTH-1:0] sum_flop;
always @(posedge clk) begin
sum_flop <= sum;
end这可以重写为以下代码,但将生成相同的硬件。
localparam WIDTH = 64;
reg [WIDTH-1:0] a;
reg [WIDTH-1:0] b;
reg [WIDTH-1:0] sum_flop;
always @(posedge clk) begin
sum_flop <= a + b;
endhttps://stackoverflow.com/questions/33196389
复制相似问题