功耗方面:
1. 优先考虑时钟门控,目前综合工具基本可以自动插入时钟门控单元,只要你的时序逻辑中的if-else条件中有保持原值的分支。例如:
always @(posedge clk) begin
if (en) begin
data[width-1:0] <= data_tmp;
end
end
需要注意的是,工具插入门控单元对width大小有要求。好像synopsys的DC默认需要width大于等于3.当然使用相同赋值条件的不同信号bit数加起来为3也行。总的来说这个width要求是为了防止插入门控单元带来的功耗超过你做门控节省的功耗。