No. 3
Jun. , 2007
微
处 理 机
M ICROPROCESSORS
第
3
期
2007
年
6
月
・
大规模集成电路设计 、
制造与应用 ・
FPGA
设计中优化时序的原则与方法
林昌辉
,
樊晓桠
(
西北工业大学航空微电子中心
,
西安
710065 )
:
对数字电路而言
,
提高工½频率至关重要
,
因为更高的工½频率意味着更加强大的处
摘 要
理½力 。以可编程逻辑设计基本原则之一的“
面积与速度的平衡与互换原则 ”
为指导思想
,
介绍了
几种
FPGA
设计中通过消耗逻辑资源提高工½频率的设计思想和技巧 。
关键词
:
现场可编程逻辑
;
面积和速度
;
时序约束
;
逻辑复制
中图分类号
: TP303
文献标识码
: A
文章编号
: 1002 - 2279 ( 2007 ) 03 - 0006 - 04
The P rinc ip le a nd M e tho d s o f I p ro ving W o rking Ti ing in FP GA D e s ign
m
m
L I Chang - hui, FAN Xiao - ya
N
( A via tion M icroelectron ics Cen ter, N orthw estern Poly techn ica l U n iversity, X i
’
710072
, Ch ina )
an
Abstract:
To the digital circuit, enhancing the design frequency is very im portant, because the
higher frequency means more powerful p rocessing ability Basing on the
“
balance and interchange
.
bet een area and speed
”
p rincip le, introducing several design skills of imp roving wo rking ti ing by
w
m
consum ingmore logical resource in FPGA design.
Key words:
FPGA; A rea and Speed; Tim ing Constraints; Logic dup licated
1
引 言
ASI (
专用集成电路
)
器件具有设计自由度大 、
C
EP1S80B956C6, LE (
逻辑单元
)
数量为
79040,
速度
等级为
6,
封装类型为
B GA
。½用
Quartus II
在不进
行优化设½的情况下进行了首次综合和布局布线
,
设计可以布局布线到目标器件½中
,
所消耗的逻辑
资源仅为
56% ( 44262
个
LE ) ,
½是在将布线½的设
计工程下½½到
FPGA
板上运行测试程序时处理器的
工½频 率仅 为
40M
左 右 。由 于外 部总线 时钟 为
66M ,
为了达到预先制定的内外同频工½的目标
,
我
们需要对设计进行速度优化
,
½处理器工½频率上
升为
66M
。
可编程逻辑设计有许多内在的规律可循
,
而其
中之一就是“
面积和速度的平衡与互换原则 ”½我
,
们的设计占用的逻辑资源远小于
FPGA
提供的逻辑
资源数时
,
就可以考虑通过逻辑复制等一系列手段
来提高我们的设计时序
,
也就是所谓的“
面积换速
度”
。大容量的
FPGA
不½为系统设计师们提供了
足够多的设计资源
,
而且也给“
面积换速度 ”
这一提
高工½时序的方法提供了支持 。
芯片中没有无用的单元或晶½管 、
芯片面积小 、
性½
高、
大批量生产时成本½的特点
,
被大量地应用于电
子工业各领域 。½传统的
ASIC
设计存在着开发周
期长 、
投片成本大
,
特别是在一次投片不成功情况下
需要重新改版的情况 。
FPGA
验证是
ASIC
投片前
原型验证的重要手段
,
利用
FPGA
的高密度 、
高性½
和可编程器件灵活编程的特点
,
可以弥补
ASIC
设
计流程中仿真的不足
,
通过
FPGA
验证也可以降½
由于逻辑问题所造成
ASIC
开发中的成本损耗
,
从
而降½投片风险 。
以航空微电子中心设计的
32
½
R ISC
微处理器
“
龙腾 ” 为例
,
该处理器集成了定点单元
,
浮点单
R2
元
,
内存管理单元
,
高速缓存单元
,
总线接口单元
,
Load / Store
单元等功½部件
,
设计已经流片成功
,
芯
片的电路规模达到
400
万门
,
工½频率
233MHz
。在
前期的
FPGA
验证过程中
,
我们的验证平台½用的
开发板 为
A ltera stratix DSP S80,
½ 用的
FPGA
是
A ltera
的
Stratix
系 列 器 件
,
器 件 型 号 为
3
2
面积和速度平衡和互换原则
这里的“
面积 ”
是指一个设计所消耗的
FPGA
3
基金项目
:
½家自然科学基金资助项目
( 60573143 ) ;
西北工业大学研究生创新种子基金
( Z200646 )
½者简介
:
林昌辉
( 1982 - ) ,
男
,
海南乐东人
,
硕士研究生
,
主研方向
:
计算机½系结构和
ASIC
系统设计 。
收稿日期
: 2006 - 06 - 14
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved.
http://www.cnki.net
3
期
林昌辉等
: FPGA
设计中优化时序的原则与方法
・
7
・
的逻辑资源数量 。
FPGA
中的逻辑资源
,
也就是触
发器
( FF )
和查找表
( LUT)
。用设计所占用的等价
逻辑门数来衡量设计所消耗
FPGA
的逻辑资源数量
也是一种常见的衡量方式 。 速度 ”
“
是指设计结果
在芯片上稳定运行时所½达到的最高频率
,
这个频
率由设计的时序状况决定 。与设计满足的时钟周
期、
PAD to PAD Ti e
、
m
建立时间 、
保持时间和时钟
到输出延时等众多时序特征向量密切相关 。面积和
速度这两个指标贯穿着
FPGA
设计的始终
,
是设计
质量评价的终极标准 。
面积和速度是一对对立统一的矛盾½ 。要求一
个设计同时具有设计面积最小
,
运行频率最高
,
这是
不现实的 。科学的设计目标应该是在满足设计时序
要求
(
包含对设计最高频率的要求
)
的前提下
,
占用
最小的芯片面积
,
或者在所规定的面积下
,
½设计的
时序½量更大
,
频率更高 。这两种目标充分½现了
面积和速度平衡的思想 。关于面积和速度的要求
,
不应½简单地理解为系统设计师水平的提高和设计
完美性的½求
,
而应该认识到它们是和产品的质量
和成本直接相关的 。如果设计的时序½量比较大
,
运行的频率比较高
,
则意味着设计的健壮性更强
,
整
个系统的质量更有保证
;
另一方面
,
设计所消耗的面
积更小
,
芯片上实现的功½模块更多
,
需要的芯片数
量更少
,
整个系统的成本也随之大幅度削减 。
½为矛盾的两个组成部分
,
面积和速度的地½
是不一样的 。相比之下
,
满足时序 、
工½频率的要求
更重要一些
,
½两者冲突时
,
一般采用速度优先的原
则。
面积和速度互换是
FPGA
设计的一个重要思
想 。从理论上讲
,
一个设计如果时序½量较大
,
所½
跑的频率远远高于设计要求
,
那么就½通过功½模
块复用来减少整个设计消耗的芯片面积
,
这就是用
速度的优势换面积的节约
;
反之
,
如果一个设计的时
序要求很高
,
普通方法达不到设计频率
,
那么一般可
以通过将数据流串并½换
,
并行复制多个操½模块
,
对数据进行并行处理
,
在芯片输出模块处再对数据
进行“
并串½换 ”
。从宏观上看
,
整个芯片满足了处
理速度的要求
,
这相½于用面积复制换取速度的提
高。
时
,
也就是有多级扇出时
,
可½会出现如图
1
中左图
所示的一些扇出路径的长延时 。此时的解决方法就
是通过信号逻辑的复制来减少路径延时
,
如右图所
示。
图
1
通过逻辑复制减小路径延时
在
R ISC
处理器设计中就存在这样的情况 。例
如在译码器模块的设计中
,
根据指令的分类需要多
个不同类型的译码器
,
在向这多个译码器发射指令
的过程中就出现了多扇出的情况
,
即一个½前指令
信号要驱动多个译码器单元 。对此我们对½前指令
信号进行逻辑复制
,
由此减少信号扇出 。修改后对
译码器模块进行了综合
,
与修改前的综合情况比较
如表
1
所示 。
表
1
修改前后的综合结果比较
时间
修改前
修改后
½用面积
(LE
单元数
)
825
869
综合速度
(MHz)
387. 1
422. 12
比较结果显示通过逻辑复制
,
½然设计的面积
增加了
,
½是工½频率得到了一定的提升 。
½然也不是所有有多级扇出的信号½需要被复
制
,
只有½信号的扇出值大到扇出时延不½被½略
时才需要信号逻辑的复制 。
3. 2
串并½换
串并½换是面积与速度互换思想的另一种½
现 。假设
FPGA
上 处 理 模 块 的 处 理 速 度 最 大 为
100M bits/ s,
如果输入数据流的速率是
300 M bits/ s,
则明显处理模块的吞吐量不½满足要求 。在这种情
况下
,
就应该利用“
面积换速度 ”
的思想
,
至少复制
三个处理模块
,
如图
2
所示
,
首先将输入数据进行串
并½换
,
然后利用这
3
个模块并行处理分配的数据
,
最后将处理结果“
并串½换 ”完成数据速率的要
,
求 。在处理模块的两端看
,
数据速率是
300M bits/ s,
而在
FPGA
内部看
,
每个子模块处理的数据速率是
100M bits/ s,
整个设计占用了更多的芯片面积
,
½是
实现了高速处理 。
总的来说
,
将串行½为并行
,
一般旨在通过逻辑
复制
,
提高整个设计的吞吐量
,
其本质是通过面积的
消耗提高系统工½速率 。
http://www.cnki.net
3
设计思想和技巧
3. 1
逻辑复制
逻辑复制是一种最基本的通过增加面积改善时
序条件的优化手段 。这种方法最常用的场合是调整
信号的扇出 。½一个信号要驱动后级的许多单元
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved.
・
8
・
微
处 理 机
2007
年
图
2
串并½换举例
3. 3
布尔逻辑扩展运算
布尔逻辑扩展运算的定义如下
:
F ( a, b, c ) = aF ( 1, b, c ) + (
½
a ) F ( 0, b, c )
从定义可以看出
,
布尔逻辑扩展运算实际上就
是卡诺逻辑化简运算的反向运算
,
实际上就相½于
通过逻辑复制来提高频率 。布尔逻辑扩展运算通过
增加选择器
,
从而缩短了某个优先级高 、
½是组合路
径长的信号的路径时延
,
从而减少了关键路径的时
延。
比如在我们的设计中一个模块需要计算的一个
逻辑表达式为
:
lzc_eq = ( ( ( ( l_ en ) | op _ a ) + op _ b ) = = a _
bus) &rst_n
对应到设计里面就是
: assign lzc_eq = ( ( ( ( l_
en ) | op _a ) + op _b ) = = a_bus) &rst_n;
很明显信号
l_en
是该逻辑运算的关键路径信
号
,
延时最大 。我们½用
Amp lify3. 6
对该模块 综
合
,
并用
QuartusII
实现
,
共½用了
27
个
LE,
最差的
t
pd
时间约为
13ns
。下面我们将该表达式进行布尔
逻辑扩展运算
,
设计改写为
:
assign lzc_eq_0 = ( ( ( 1 + op _a ) + op _b ) = = a_
bus) &rst_n;
assign lzc_eq_1 = (
½
l_en ) [ ( ( op _a + op _b ) =
= a_bus) &rst_n ];
assign lzc_eq = ( l_en ) ? lzc_eq_0: lzc_eq_1;
这相½于一个以
l_en
为选择信号
,
以
lzc_eq_0
和
lzc_eq _1
为两个输入信号的
2
选
1
选择器 。因
此
, l_en
信号的优先级被提高 。½用
Amp lify3. 6
综
合
,
并用
QuartusII
在同一目标器件上实现
,
共½用
了
35
个
LE,
最差的
t
pd
时间约为
12. 4ns
。信号的路
径时延降½了
,
½是付出了设计面积增加的代价
,
这
是“
面积换速度 ”
的又一种½现 。
4
½用
EDA
工具提高工½时序
在将我们的设计½换成门级½表的过程½中
,
市场上为我们提供了许多优秀的综合和布局布线工
具 。利用这些
EDA
工具
,
可以优化我们的设计
,
不
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved.
管是朝着面积优先还是速度优先的方向 。
EDA
工
具优化设计的工½时序主要是通过给设计添加各种
各样的时序约束
,
时序约束可以规范设计的时序行
为
,
表达设计者期望满足的时序条件 。通过附加约
束可以控制逻辑的综合 、
映射 、
布局和布线
,
以减小
逻辑和布线延时
,
从而提高工½频率 。由于我们的
FPGA
实验平台是
A ltera
的
Stratix
系列器件
,
因此我
们选用的布局布线工具是
A ltera
的
QuartusII 4. 0
。
4. 1
利用
Quartus II
优化时序
在
Quartus II
的设½中我们依次加入以下的时
序约束
:
( 1 ) M egafunction
资源的½用
由于
M egafunction
是基于
A ltera
底层 、
硬件结
构最合理的成熟应用模块的表现
,
所以在设计中应
½½量½用
M egafunction
这类资源
,
不½½将我们
从繁琐的代码编写中解脱出来
,
更重要的是
M ega
2
function
的综合和实现结果比用户编写的代码性½
更优 。例如我们设计中½用到的
RAM , F IFO , PLL
(
时钟精确分频器
)
等
,
½直接½用
M egafunction
实
现
,
极大地优化了我们设计的工½时序 。特别要指
出的是
,
在½用
QuartusII
生成这类资源的过程中
,
如果碰到有速度优先的选项
,
就应½选上
,
这个选项
也½极大地提高我们设计的性½ 。
( 2 )
速度优先设½
在
A ssignments
菜单下的
Settings
对话框中选择
Analysis & Synthesis Settings,
进入分析综合设½界
面
,
把 综 合 选 项“
Op tim ization Technique
” ½ 为
设
“
Speed
”工具在综合时就会对设计进行速度优化 。
,
( 3 )
全局时钟
f
max
的设½
如果设计中只有一个 全局 时钟
,
那么 可以 在
Quartus II
中只设½一个全局时钟
,
在
A ssignments
菜单 下 的
Settings
对 话 框 中 选 择
Tim ing Require
2
ments &Op tions
可以设½全局时钟
f
ax
。
m
一个时钟的
f
max
就是与该时钟相关的所有触发
器到触发器路径中延时最大的一条路径所½接受的
时钟频率
,
这个时钟频率同样也决定了芯片中该时
就代表希望设计½跑的频率至少为
66MHz,
综合工
具在实现过程中就会朝着这个目标努力 。
f
m ax
通常
定义如下
:
f
max
= 1 / t
CLK
钟所½跑的最高时钟频率
,
例如设½
f
m ax
为
66MHz
t
CL K
代表的是最小时钟周期
,
它的计算表达式如
t
CL K
= t
CO
+ t
ELA Y
+ t
ire
+ t
SU
- t
CL K_SKEW
D
w
下
:
表达式中
t
CO
是寄存器固有的时钟输出延时
;
http://www.cnki.net
3
期
林昌辉等
: FPGA
设计中优化时序的原则与方法
・
9
・
t
ELA Y
是同步元件之间的组合逻辑延迟
; t
ire
是连线
D
w
Dup licaton )
和寄存器重新定时
( Register Retim ing )
延迟
; t
SU
是寄存器固有的时钟建立时间
; t
CL K_SKEW
是
时钟偏斜 。
f
ax
½综合½现设计的时序性½
,
是最重要的时
m
序指标之一 。在
Quartus II
完成所有流程的最后时
序分析报告里
,
会根据所设½的
f
max
报告½响时序
性½的
N
条最差时序路径
,
根据这些信息就可以找
出设计的关键路径 。
( 4 )
全局
I/O
时序设½
同样在
A ssignments
菜单下的
Settings
对话框中
选择
Tim ing Requirements &Op tions
可以设½全局
I/
O
时序约束
,
约束中包含了
t
SU
、
CO
和
t
PD
(
管脚到管
t
脚延时
)
的延时要求 。根据首次编译的时序报告
,
我们设½
t
SU
、 和
t
PD
的延时要求分别为
10ns, 15ns
t
CO
和
10ns
。
( 5 )
½表优化
在
A ssignments
菜单下的
Settings
对话框中选择
Analysis & Synthesis Settings
的 子 树 目 ½
Synthesis
Netlist Op im izations,
则可以对½表进行优化 。
该目½包含两个选项
,
由于我们在综合优化技
术的设½种选择了“
Speed
”因此第一项对½表中
,
的
W YSI YG
原语进行重综合时
,
就会朝着速度优
W
化的方向进行 。
第二项为“
执行门级寄存器重定时 ”如果选中
,
这一功½
,
工具在不½响设计功½的前提下
,
½把½
表解包成分立的组合逻辑和寄存器后
,
在门级对触
发器和触发器间的组合逻辑进行平衡优化
,
然后再
重映射到½表中
,
提高系统性½ 。在该选项下
,
还有
一个叫做“
A llow register retim ing to trade off Tsu / Tco
w ith Fmax
”
的子选项
,
如果打开该选项
,
寄存器重新
定时的优化过程就会½响输入和输出的触发器
,
同
时优化
tsu
和
tco
的时序 。
( 6 )
物理综合优化设½
在
A ssignments
菜单下的
Settings
对话框中选择
Fitter Settings
的子树目½
Physical Synthesis Op ti i
2
m
zations,
进入物理综合优化设½界面 。
两部分 。寄存器复制的概念就是之前设计思想和技
巧里面所说的逻辑复制
,
工具可以根据关键路径物
理上的走线延迟
,
复制高扇出节点
,
以提高性½ 。而
在物理综合阶段的寄存器重新定时功½
,
是在逻辑
单元
(LE )
级进行的操½
,
是对½表优化阶段的寄存
器重新定时的一个补充 。
图
3
未优化前
图
4
组合逻辑的物理综合优化后
4. 2
时序优化结果
在物理综合的优化选项中
,
包括对组合逻辑和
对寄存器的物理综合优化 。
在对组合逻辑的物理综合过程中
,
综合工具在
保证设计功½不变的情况下
,
通过改变关键路径的
½½
,
来减少关键路经所经过的
LUT
的级数
,
从而
提高时序性½ 。如图
3
中未优化前关键路径
(
粗½
线显示
)
经过了两级
LUT,
经过组合逻辑的物理综
合优化后
,
关键路径只经过一级
LUT,
如图
4
所示 。
对寄存器的物理综合包括寄存器复制
( Register
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved.
上述优化选项是按照序号顺序逐次加入到
Qu
2
artus
设½中的
,
每添加一种优化选项就½用
Quar
2
tusII
对设计重新进行了分析综合 、
布局布线 、
时序
分析 、
写½表等一系列操½
,
各阶段资源½用情况和
工½频率如表
2
所示 。
表
2
依次添加优化选项的综合结果
依次添加的优化选项 ½用面积
(LE
单元数
)
速度
(MHz)
M egafunction
资源
45955
50. 968
速度优先
47271
60. 451
½表优化
47034
61. 060
全局
I/O
时序设½
47460
61. 638
全局时钟
f
m ax
47999
64. 421
物理综合优化
48214
71. 421
从表
2
可以看出
,
相对于½用缺省设½的综合
结果
(
原始速度
: 42. 337MHz) ,
½用
M egafunction
资
源
,
添加速度优先设½
,
添加全局时钟设½以及添加
物理综合优化设½½½极大地提高设计的工½频
率
,
½同时也付出了一定的面积代价
(
原始面积
:
44262
个
LE )
。
最终设计可以布局布线到目标器件中
,
逻辑单
元½用率上升到了
61% ,
½是将布线工程下½½到目
标器件上运行测试程序可以稳定地工½在
66M ,
达
到了我们预期的设计目标
,
说明我们的优化策略是
(
下½第
13
页
)
成功的 。
http://www.cnki.net
3
期
谭延军
:
一种用在 Σ
-
Δ
ADC
中的六阶
MASH
算法
- 1
・
13
・
H
3
( z)
=
(
1 -
z
)
3
( 16 )
由图
5
所示的系统
,
加
hanning
窗的
FFT,
得出
仿真结果 。横坐标是
( 0
½
F
S
/2 ) ,
纵坐标是
dB
。对
每一级的积分器进行了加
Hanning
窗的
FFT
仿真
,
由图
7
、 显然可知
,
六阶调制器的精度 、
8
增益和平滑
度比四阶得到较大的提高
,
且性½稳定 。仿真结果
表明
,
在一定的积分器过½½限制下合理选择级间耦
合系数和各个积分器的增益衰减因子是很重要的 。
(
(
图
7
( a )
六阶 、
b )
四阶 、
c )
二阶的输出和
( d )
输入
图
8
仿真图
4
结 论
采用单
bit
噪声整½
,
通过增加级数½够提高信
噪比
,
并½系统稳定 。
MASH ( 2 - 2 - 2 )
结构非常适
合于½用混合信号的大规模集成电路工艺 。仿真结
果表明
,MASH ( 2 - 2 - 2 )
算法是在减小芯片面积和
器件个数的基础上
,
同时保证了较大的动态范围
,
并
降½了系统复杂度
,
提高了系统稳定性的优化设计
,
是六阶结构中的优化算法 。
(
上接第
9
页
)
5
结 论
对一个½的设计来说
,
在规划阶段设计者就应
该初步规划设计的规模和时序关键路径
,
并对设计
的优化目标有一个整½上的把握 。如果时序是½响
设计的主要因素
,
则在设计模块划分阶段以及代码
编写阶段就要朝着优化时序这个方向进行
,
针对不
同情况采用所介绍的或其它的有利于提高工½时序
的设计思想和技巧
,
并充分利用市场上各种强大的
EDA
工具来完成时序方面的优化
,
从而达到事半功
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved.
参考文献
:
[ 1 ]
Candy, et al Over samp ling Delta - Sigma Data Converters
.
Theory, Design and Sim ulation [ P ]. IEEE Press, 1992.
[ 2 ]
W ei Q in, Bo Hu, and Xieting L ing Sigma - Delta ADC
.
w ith Reduced Samp le Rate M ulti - bit Quant[ D ]. IEEE,
1999.
[3]
高光天
.
模数½换器应用技术
[M ].
北京
:
科学出版
社
, 2001.
[ 4 ]
J Candy A U se of Double Integration in Sigma Delta Mod
2
.
ulation [ J ]. IEEE Trans Commum , Vol 33, pp. 249 -
.
.
258, M ar 1985.
.
[ 5 ]
V Peluso, M Steyaert, and W Sansen. Design of Low -
voltage Low - power CMOS Delta - sigma A /D converters
[M ]. Kluwer Academ ic Publishers, ISBN0 - 7923 - 8417
- 2, 1999.
[ 6 ]
Letizia Lo Presti Efficient Modified - Sinc Filters for Sig
2
.
ma
∃
Delta A /D Converters[ P ]. M ember, IEEE, 2000.
[ 7 ]
V Peluso. Design of Low - voltage Low - power CMOS Del
2
ta - sigma AD converters[M ]. Kluwer Academ ic Publish
2
ers, ISBN0 - 7923 - 8417 - 2, 1999.
[ 8 ]
Sonia Zouari1, Patrick Loumeau2, Mourad Loulou1,
NouriM as
moudi Modulators Sigma Delta MASH 2 - 1 - 1
.
M ulti - bits L ine arise par "DWA " Pour App lication Ra
2
dio mobile Large Bande [M ]. TA ISA 2005.
[ 9 ]
R. Jacob Baker CMOS: M ixed - Signal Circuit [ M ].
.
English Science Press and The Institute 0f Electrical and
Electronics Engineers Inc. , 2004.
.
倍的效果 。
参考文献
:
[ 1 ]
吴 继 华
,
王 诚
. A ltera FPGA /CPLD
设 计
(
高 级 篇
)
[M ].
北京
:
人民邮电出版社
, 2005.
[ 2 ]
A ltera Corporation. QuartusII Help [M /CD ]. QuartusII
安
装光盘
, 2003.
[3]
夏宇闻
. Verilog
数字系统设计教程
[M ].
北京
:
北京航
天航空大学出版社
, 2003.
[4]
韩俊刚
.
论
ASIC
与
FPGA
之争
[ J ].
计算机工程
, 2004,
30 ( 8 ) : 10 - 12.
[5]
王维博
,
吴自恒
.
用
FPGA /CPLD
实现
EDA
设计
[ J ].
四川工业学院院报
, 2004, 23 ( 2 ) : 6 - 8
[6]
谢长生
,
徐睿
. FPGA
在
ASIC
设计流程中的应用
[ J ].
微电子技术
, 2001, 29 ( 6 ) : 50 - 52.
http://www.cnki.net
评论