CN104268352B - 一种fpga实现中时钟歪斜的快速修复方法 - Google Patents
一种fpga实现中时钟歪斜的快速修复方法 Download PDFInfo
- Publication number
- CN104268352B CN104268352B CN201410527472.2A CN201410527472A CN104268352B CN 104268352 B CN104268352 B CN 104268352B CN 201410527472 A CN201410527472 A CN 201410527472A CN 104268352 B CN104268352 B CN 104268352B
- Authority
- CN
- China
- Prior art keywords
- clock
- fpga
- routing
- placement
- sequential
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种FPGA实现中时钟歪斜的快速修复方法,它涉及高速超大规模集成电路的FPGA设计领域。该方法最大程度上减少了两个时钟之间的歪斜,有效的解决了时序违反问题。该方法通过手动插入时钟延迟链、将时钟模块锁定在指定区域以及手动给时钟分配全局缓冲器等手段,精确控制主时钟和分频时钟的相对时延,从而达到减少两个时钟之间的歪斜的目的。本发明可以应用于所有基于FPGA实现的高速超大规模数字集成电路设计。
Description
技术领域
本发明涉及高速超大规模集成电路的FPGA设计领域,尤其涉及FPGA实现中时钟歪斜(skew)的快速修复方法。
背景技术
随着FPGA(Field Programmable Gate Array,现场可编程门阵列)技术的迅速发展,其容量不断增大、速度不断提升、成本和功耗不断降低,FPGA被广泛应用于电子设计的各个领域。越来越多复杂系统的核心电路使用FPGA实现,以及基于FPGA进行芯片设计的原型验证。
然而,随着FPGA器件规模的不断扩大和速度的持续提升,不论是使用FPGA进行设计实现还是原型验证,越来越多的设计会遇到时序收敛问题。如何确保和改善时序收敛是当前FPGA设计的关键。
FPGA设计不同于ASIC(Application Specific Intergrated Circuits,专用集成电路)设计,其布局、布线通常是在一定约束条件下由FPGA自动布局布线工具完成的,一般FPGA用户要手工控制FPGA内所有同步时序电路布局布线仍有较大困难,所以FPGA的布局、布线结果具有一定的随机性,较容易出现时钟歪斜现象。
通常在使用FPGA综合工具进行综合设计时,将时钟信号配置在全局时钟网络上,可有效抑制时钟歪斜现象。但是为了保证和专用集成电路的结构一致,或者受到锁相环数量的限制,需要采用触发器作为分频电路。触发器作为可编程单元的组成部分,在综合过程中被分配,它与全局缓冲器的相对位置并不是确定的,所以导致分频时钟和主时钟的相对时延较大,且不确定。
因此,迫切需要寻找一种有效的方法解决FPGA设计中的时钟歪斜,以满足高速、高性能的设计要求,保证电路的正常工作。
发明内容
本发明所要解决的技术问题是在高速超大规模集成电路的FPGA设计中,分频时钟和主时钟之间的时钟歪斜过大,导致时序无法收敛。为了保证和专用集成电路的结构一致,或者受到锁相环数量的限制,需要采用触发器作为分频电路。分频触发器作为可编程单元的组成部分,在综合过程中被分配,其与主时钟的全局缓冲器的相对位置并不是确定的,所以导致分频时钟和主时钟的相对时延较大,且不确定,从而导致设计的时序不收敛。
本发明的上述目的通过以下技术方案来实现的,一种FPGA实现中时钟歪斜的快速修复方法,其特征在于包括以下步骤:
S1:对FPGA设计源码进行逻辑综合以及布局布线,得到初始的布局布线图;
S2:对初始的布局布线图进行时序分析得到初始的时序报告,查看初始的时序报告的内容来判断时序是否收敛;若时序收敛,则完成时钟歪斜修复;若时序不收敛,则执行步骤S3;
S3:在主时钟路径中插入延迟链;
S4:将FPGA设计中不用修改的模块设置为隔离模块,再次进行逻辑综合以及布局布线,得到新的布局布线图;
S5:对新的布局布线图进行时序分析得到新的时序报告,查看新的时序报告的内容来判断时序是否收敛;若时序收敛,完成时钟歪斜修复;若时序仍旧不收敛,分析主时钟网络与分频时钟网络的延迟差,转到步骤S3。
其中,所述步骤S3中,在主时钟路径插入延迟链具体为:首先在主时钟路径上插入由多个普通缓冲器组成的延迟链来调整主时钟的延迟时间,并在延迟链之后插入一个全局缓冲器;然后通过逻辑锁定功能将时钟模块锁定在FPGA中被布局布线的设定区域,并手动给时钟分配全局缓冲器。
本发明相比背景技术具有如下优点:
1.本发明通过手动插入时钟延迟链、将时钟模块锁定在设定区域以及手动给时钟分配全局缓冲器等手段,精确控制主时钟和分频时钟的相对时延,从而达到减少两个时钟之间的歪斜的目的;
2.本发明能够有效降低对硬件资源的占用,提高设计的可靠性;
3.本发明可以应用于所有基于FPGA实现的高速超大规模数字集成电路设计。
附图说明
图1是本发明实施例的FPGA设计中时钟歪斜修复的方法的示意图;
图2是在主时钟路径上插入延迟链的示意图。
具体实施方式
为了使本发明的目的、技术方案更加清楚明白,下面通过具体实施例并结合附图1和附图2对本发明的实施方式作进一步详细说明。
S1:利用QuartusII对FPGA设计源码RTL代码进行逻辑综合以及布局布线,得到初始的布局布线图;
S2:对初始的布局布线图进行时序分析得到初始的时序报告,查看初始的时序报告的内容来判断时序是否收敛;若时序收敛,则完成时钟歪斜修复;若时序不收敛,则执行步骤S3;
S3:在主时钟路径中插入延迟链;
首先在主时钟路径上插入由多个普通缓冲器(LCELL)组成的延迟链来调整主时钟的延迟时间,并在延迟链之后插入一个全局缓冲器(global buffer);
如附图2所示,在主时钟根部形成两个分支,分支1插入由多个普通缓冲器组成的延迟链,通过调整普通缓冲器的数目来平衡时钟树,需要多次综合试验;并在延迟链之后插入一个全局缓冲器,通过全局缓冲器控制触发器;分支2通过控制分频触发器产生分频时钟。为了保证两个分支的时延相等,必须保证主时钟的时延等于分频触发器的时延和分频时钟的时延之和,即使得T3=T1+T2,T1为分频触发器的时延,T2为分频时钟的时延,T3为主时钟的时延。为了确保延迟链的延迟时间精确可控,需要指定延迟链单元的分布位置。为了保证分频时钟的时延可控,需要精确控制分频触发器和分频时钟的全局缓冲器的相对位置。
下面的例子中通过generate语句插入10个普通缓冲器组成延迟链,在延迟链之后插入全局缓冲器。
generate
for(index=1;index<=10;index++)begin:myGen
LCELL inst_cell(.in(my_wire[index-1]),.out(my_wire[index]));
end
endgenerate
global inst_global(.in(my_wire[10]),.out(my_clk));
然后通过逻辑锁定功能将时钟模块锁定在FPGA中被布局布线的设定区域,并手动给时钟分配全局缓冲器。
QuartusII的逻辑锁定(LogicLock)功能允许设计者自主地控制特定模块在FPGA中被布局布线的区域。因此在本发明中利用这一技术将设计中的时钟模块锁定在特定区域(该区域包含所需的全局缓冲器),这样,分频触发器以及延迟链等被锁定在一定区域,使得每次综合过程中,时钟之间的时钟歪斜变化最小。
如果时钟模块的时钟数量多于上述逻辑锁定锁定区域中所含的全局缓冲器的数量,这样,在再次综合时,工具自动分配全局缓冲器,将导致需要调整的主时钟和分频时钟无法约束到该区域内的全局缓冲器上。因此可使用set_location_assignment指令直接给时钟分配全局缓冲器。该手动指定时钟分频电路的方法,其优点在于采用手动指定时钟延迟链、分频时钟电路的位置,精确控制主时钟和分频时钟的相对时延,最大程度上减少了两个时钟之间的歪斜,有效的解决了时序违反问题。相较于传统方法,本方法能够有效降低对硬件资源的占用,提高设计的可靠性。本发明可以应用于所有基于FPGA实现的高速超大规模数字集成电路设计。
S4:将FPGA设计中不用修改的模块设置为隔离模块(Partition),再次进行逻辑综合以及布局布线,得到新的布局布线图;
由于在时序修正过程中需要反复调整延迟链的长度,因此需要多次综合,对于大的设计每次全综合时间在1个小时以上,导致效率低下。将设计中不修改的模块设置为Partition可以大大缩短综合时间。需要注意的是,设置为Partiton的模块所占区域与LogicLock锁定的区域不冲突,否则在再次综合中,QuartusII不会释放该区域给时钟模块。
S5:对新的布局布线图进行时序分析得到新的时序报告,查看新的时序报告的内容来判断时序是否收敛;若时序收敛,完成时钟歪斜修复;若时序仍旧不收敛,分析主时钟网络与分频时钟网络的延迟差,转到步骤S3。
以上所述仅为本发明的一种具体的实施方式。本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (1)
1.一种FPGA实现中时钟歪斜的快速修复方法,其特征在于包括以下步骤:
S1:对FPGA设计源码进行逻辑综合以及布局布线,得到初始的布局布线图;
S2:对初始的布局布线图进行时序分析得到初始的时序报告,查看初始的时序报告的内容来判断时序是否收敛;若时序收敛,则完成时钟歪斜修复;若时序不收敛,则执行步骤S3;
S3:在主时钟路径中插入延迟链;
S4:将FPGA设计中不用修改的模块设置为隔离模块,再次进行逻辑综合以及布局布线,得到新的布局布线图;
S5:对新的布局布线图进行时序分析得到新的时序报告,查看新的时序报告的内容来判断时序是否收敛;若时序收敛,完成时钟歪斜修复;若时序仍旧不收敛,分析主时钟网络与分频时钟网络的延迟差,转到步骤S3;
其中,所述步骤S3中,在主时钟路径插入延迟链具体为:首先在主时钟路径上插入由多个普通缓冲器组成的延迟链来调整主时钟的延迟时间,并在延迟链之后插入一个全局缓冲器;然后通过逻辑锁定功能将时钟模块锁定在FPGA中被布局布线的设定区域,并手动给时钟分配全局缓冲器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410527472.2A CN104268352B (zh) | 2014-10-09 | 2014-10-09 | 一种fpga实现中时钟歪斜的快速修复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410527472.2A CN104268352B (zh) | 2014-10-09 | 2014-10-09 | 一种fpga实现中时钟歪斜的快速修复方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104268352A CN104268352A (zh) | 2015-01-07 |
CN104268352B true CN104268352B (zh) | 2017-03-22 |
Family
ID=52159873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410527472.2A Active CN104268352B (zh) | 2014-10-09 | 2014-10-09 | 一种fpga实现中时钟歪斜的快速修复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104268352B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107330177B (zh) * | 2017-06-26 | 2020-03-20 | 北方电子研究院安徽有限公司 | 一种基于Tcl/Tk脚本的时钟树扇出违约修复方法 |
CN110852026B (zh) * | 2019-11-07 | 2023-10-20 | 许继集团有限公司 | 一种fpga及其时序收敛方法 |
CN111832241A (zh) * | 2020-07-03 | 2020-10-27 | 京微齐力(北京)科技有限公司 | 一种fpga多区域动态参数时序驱动设计方法 |
CN114722763A (zh) * | 2021-01-06 | 2022-07-08 | 上海复旦微电子集团股份有限公司 | 布局fpga芯片内时钟线网的方法及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103812592A (zh) * | 2014-02-13 | 2014-05-21 | 南京航空航天大学 | 基于链状工业以太网的时间同步协议系统及同步方法 |
US8819607B1 (en) * | 2013-05-31 | 2014-08-26 | Altera Corporation | Method and apparatus to minimize clock tree skew in ICs |
-
2014
- 2014-10-09 CN CN201410527472.2A patent/CN104268352B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8819607B1 (en) * | 2013-05-31 | 2014-08-26 | Altera Corporation | Method and apparatus to minimize clock tree skew in ICs |
CN103812592A (zh) * | 2014-02-13 | 2014-05-21 | 南京航空航天大学 | 基于链状工业以太网的时间同步协议系统及同步方法 |
Non-Patent Citations (1)
Title |
---|
FPGA内全数字延时锁相环的设计;李兆静;《中国优秀硕士学位论文全文数据库 信息科技辑》;20091115;第I136-95页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104268352A (zh) | 2015-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9830418B2 (en) | Clock-tree transformation in high-speed ASIC implementation | |
US11480993B2 (en) | Methods for optimizing circuit performance via configurable clock skews | |
CN104268352B (zh) | 一种fpga实现中时钟歪斜的快速修复方法 | |
US8884663B2 (en) | State machine for low-noise clocking of high frequency clock | |
CN100541385C (zh) | 数字电视调制器芯片中同步分频时钟的产生装置及其方法 | |
KR20160049465A (ko) | 클록 신호의 레이턴시를 조정하기 위한 방법, 장치, 및 프로그램 | |
CN105897261B (zh) | 时钟同步方法 | |
JP2008140821A (ja) | 半導体装置および半導体装置の設計方法 | |
CN104795091B (zh) | 在fpga中实现zbt读写的时序稳定度的系统及方法 | |
CN106777437A (zh) | 时钟系统的构造方法、装置和时钟系统 | |
US10031992B2 (en) | Concurrently optimized system-on-chip implementation with automatic synthesis and integration | |
CN105653748B (zh) | 一种时钟树资源的分配方法和时钟树架构 | |
US8970267B2 (en) | Asynchronous clock dividers to reduce on-chip variations of clock timing | |
US10068042B1 (en) | Methods and apparatus for regulating the supply voltage of an integrated circuit | |
US8086986B1 (en) | Clock boosting systems and methods | |
US7898296B1 (en) | Distribution and synchronization of a divided clock signal | |
US20190140649A1 (en) | High-speed core interconnect for multi-die programmable logic devices | |
US20040133864A1 (en) | Programmable delay method for hierarchical signal balancing | |
US10740526B2 (en) | Integrated circuit design system with automatic timing margin reduction | |
US10242141B2 (en) | Reset sequencing for reducing noise on a power distribution network | |
US8947124B2 (en) | Clock gater with independently programmable delay | |
CN104598670B (zh) | 一种解决fpga保持时间不满足的方法 | |
US8972920B1 (en) | Re-budgeting connections of a circuit design | |
JP2004120084A (ja) | 同期回路の設計方法 | |
JP2004266034A (ja) | 半導体集積回路、および半導体集積回路の設計方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |