集成电路计算机辅助设计——组合电路设计描述的优化问题-国防科大
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
组合电路设计描述的优化How to get an optimal Coding for the
combinational circuits ?
陈海燕
计算机学院微电子所
1
如何评价RTL级代码
•具有可综合的、一致的编码风格;
•功能正确;
•满足设计的非功能性约束,实现代价最低
•同等实现代价,性能最优
2
非功能约束要点
•影响性能的因素
–组合逻辑通路的延迟时
间
–……
•影响功耗的因素
–芯片面积……•提高性能的途径
–降低关键路径上组合逻辑通路的逻辑级数成为组合通路
设计优化的关键因素
–逻辑复制等等
•降低功耗的可能途径
–减少组合逻辑电路实现所需的单元及连线数目成为组合
逻辑电路设计优化的重要因
素
–逻辑共享……
4
组合逻辑的非功能性设计目标
•性能
关键路径上的组合电路往往决定系统时钟频率•功耗
•面积
往往与提高性能是矛盾的
5
组合逻辑描述的优化技巧
•流水线时序优化技术
•模块复用与资源共享
•逻辑复制
•香农扩展运算
设计时不仅要正确实现功能,还要根据不同的非功能设计目标,进行折中,选择不同的优化技巧与方法
6
什么是流水线时序优化
•概念:把规模较大,层次较多的组合逻辑分为几个级,在每一级插入寄存器组并暂存中间数据,上一级的输出是下一级的输入。即用寄存器合理分割该组合逻辑路径。
•各级之中最长的时间延迟决定系统的时钟频率。•作用:改善电路性能,即缩短时钟周期,提高吞吐率。
对运算功能单元效果显著
7
流水线时序优化实例(3)
•例2 对下例代码进行三段流水线设计:
input [7:0] A,B,C,D;
output [7:0] compare;
output[9:0] result;
reg[7:0] compare;
reg[9:0] result;
always@(posedge clk)
begin
result<=A+B+C+D;
compare<=!(A^B);
end
11
模块复用与资源共享(1)
•从微观角度考虑节约面积;减少硬件实现代价。
•多个同类功能复用一个硬件电路单元.
•特点:节约了面积,减少了功耗,有时可能会损失一些性能
12
模块复用与资源共享(2)
例3 补码平方器
第一种实现方式:
module resource_share_1(data_in,square);
input [7:0] data_in;
output [15:0] square;
wire [7:0] data_bar;
assign data_bar=~data_in+1;
assign square=(data_in[7])? (data_bar* data_bar) :
(data_in* data_in);
endmodule
13
模块复用与资源共享(3)
•第二种实现方式
module resource_share_2(data_in,square);
input [7:0] data_in;
output [15:0] square;
wire [7:0] data_temp;
assign data_temp=(data_in[7])? ( ~data_in+1):data_in; assign square=data_temp* data_temp;
endmodule
14
模块复用与资源共享(4)
•某电路有四个输入信号:multselt,
in1[7:0],in2[7:0],in3[7:0],一个输出out。电路实现下例逻辑功能,当multselt为高时,输出out=in1*in2;否则out=in1*in3 。
15
数据通路的复制
例4 地址计算
17
例4 描述对应的电路结构
18
19
例4 数据通路复制后的描述
20
使用香农扩展优化组合逻辑时延
例5 设需要运算的逻辑表达式如下:
F=((({8{late}}|in0)+in1)==in2)&en,其中
in0[7:0],in1[7:0],in2[7:0]都为8bit的数据,信号late和en为1位的控制信号,
信号late为本逻辑运算的关键信号路径,延时最大,使用香农扩展运算优化该关键路径
F=late•F(late=1)+ ~late•F(late=0)
•可直接优化已表达为布尔函数的组合逻辑
22
常见语法结构中慢速信号的处理
——设计时通常知道哪一个信号到达的时间要晚一些。这些信息可用于构造优化的描述,使到达晚的信号离输出近一些。
——对于条件、分支结构而言,信号到达时间较晚的信号视为慢速信号
数据信号为慢速信号
控制信号为慢速信号
23
if-else 及其嵌套结构问题
例6 多个串行if语句
if (sel[3]) z=d;
else if (sel[2]) z =c;
else if (sel[1]) z=b;
else if (sel[0]) z=a;
else z =0;
24