CN109815619B - 一种将同步电路转化为异步电路的方法 - Google Patents
一种将同步电路转化为异步电路的方法 Download PDFInfo
- Publication number
- CN109815619B CN109815619B CN201910123501.1A CN201910123501A CN109815619B CN 109815619 B CN109815619 B CN 109815619B CN 201910123501 A CN201910123501 A CN 201910123501A CN 109815619 B CN109815619 B CN 109815619B
- Authority
- CN
- China
- Prior art keywords
- circuit
- click
- synchronous
- pipeline
- asynchronous
- 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
- 230000001360 synchronised effect Effects 0.000 title claims abstract description 45
- 238000000034 method Methods 0.000 title claims abstract description 13
- 230000015572 biosynthetic process Effects 0.000 claims description 8
- 238000003786 synthesis reaction Methods 0.000 claims description 8
- 230000002194 synthesizing effect Effects 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 7
- 238000013481 data capture Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明能够实现将同步流水线电路自动转化为基于Click单元的捆绑数据异步电路。首先,该方法通过比较同步流水线和基于Click单元的捆绑数据异步电路的区别,通过Tcl脚本将同步的Verilog代码转化为基于Click单元的捆绑数据异步电路的Verilog代码。而后通过Synopsys Design Compiler(DC)工具来对异步电路进行综合。本发明能够快速实现将同步流水线电路转化为基于Click的捆绑数据异步电路,大大缩短了异步电路设计的周期并减小了异步电路设计难度。
Description
技术领域
本发明属于集成电路设计技术领域,特别涉及一种将同步电路转化为异步电路的方法。
背景技术
随着集成电路制造工艺的不断提高,异步电路与同步电路相比,有以下显著的特点。
1、低功耗:异步电路仅在需要的时间和需要的地方消耗功耗
2、高速度:异步电路的延迟取决于局部延时而不是整体电路的最长延时路径
3、无时钟分配问题:异步电路没有全局时钟,所以不要时钟树综合
然而,异步电路的设计却比较困难。由于异步电路没有被广泛地被工业界采用,所以没有成熟的商业EDA工具支持异步电路的设计。另外,由于众多的集成电路数字工程师接受的都是同步电路设计的训练,因此,在设计上就存在从同步电路设计思维向异步电路设计思维上的转换问题,这就加大了异步电路设计的难度。最后,异步电路的种类较多,不同类型的异步电路在设计方法上也存在差异,这也一定程度上提高了异步电路设计的门槛。
发明内容
为了克服上述现有技术的缺点,减小异步电路设计的困难,本发明的目的在于提供一种将同步电路转化为异步电路的方法,采用与同步电路最为接近的基于Click单元的捆绑数据异步电路结构,可以借助成熟的EDA工具进行设计。
为了实现上述目的,本发明采用的技术方案是:
一种将同步电路转化为异步电路的方法,包括如下步骤:
步骤1,比较同步流水线电路与基于Click单元的捆绑数据异步电路的区别;
步骤2,通过Tcl脚本将同步流水线电路的Verilog代码转化为基于Click单元的捆绑数据异步电路的Verilog代码;
步骤3,通过Synopsys Design Compiler(DC)工具对异步电路进行综合。
所述同步流水线电路与基于Click单元的捆绑数据异步电路的区别在于:
1)、同步流水线电路使用全局时钟clk驱动D触发器,而基于Click单元的捆绑数据异步电路使用Click单元产生的脉冲信号来驱动D触发器;
2)、基于Click单元的捆绑数据异步电路需要额外的Click单元来产生能够驱动D触发器的脉冲,而同步流水线电路不要。
3、根据权利要求1所述将同步电路转化为异步电路的方法,其特征在于,对Click单元进行例化,网表如下:
例化后的Click单元,使用set_dont_touch命令防止它在综合的过程中被改变。
所述步骤2具体包括:
步骤2.1:找到同步流水线电路的流水线级数;
步骤2.2:将同步流水线电路代码中的posedge clk替换为posedge fire,并在代码中加入Click单元的例化;
步骤2.3:将同步流水线电路代码中的clock端口替换为in_req,并在代码中添加Click单元的其他端口。
所述步骤2.1中,在同步流水线电路代码中通过如下所示的方式进行标注,然后通过Tcl脚本找到标注的个数从而找到流水线的级数:
所述步骤2.2中,根据流水线的级数加入Click单元的个数,并将每一级的posedgeclk依次替换成为posedge fire1,posedge fire2,以此类推,即第一级的posedge clk替换成为posedge fire1,第二级的posedge clk替换成为posedge fire2,第N级的posedge clk替换成为posedge fireN。其中流水线的级数与Click单元个数是相等的。
所述步骤2.3中,在代码端口声明部分中添加Click单元的in_req,in_ack,out_req,out_ack端口。
所述步骤3中,通过Synopsys Design Compiler(DC)工具对异步电路进行综合是将同步流水线代码转化为异步流水线代码,而后对Click单元set_dont_touch,再对fire信号创建时钟,从而实现对电路综合。
与现有技术相比,本发明可直接将同步流水线电路转化为基于Click的捆绑数据异步电路,大大降低了异步电路设计的难度。
附图说明
图1为本发明使用的Click单元。
图2为本发明使用的Click单元的波形图。
图3为基于Click单元的捆绑数据异步电路基本架构图。
图4为本发明待转化的同步流水线电路图。
图5为图4同步流水线电路转化得到的基于Click单元的捆绑数据异步电路示意图。
具体实施方式
下面结合附图和实施例详细说明本发明的实施方式。
Click单元的电路图如图1所示:
可以看出Click单元中含有D触发器,并且电路中有环路,因此其并不是一个组合逻辑电路。这样的电路如果仅仅通过Verilog来描述其逻辑关系,是无法通过DC工具综合出想要的电路的。因此,需要通过对Click单元直接例化来解决这个问题。对Click单元进行例化的网表如表1所示。例化后的Click单元,需要使用命令防止它在综合的过程中被改变。
表1 Click网表
Click单元的波形图如图2所示。Click单元采用两相位握手协议,即request信号的每一次翻转都代表一次请求,并且Click单元都会产生一个脉冲。可以把这个脉冲当作是时钟,用来捕捉和存储数据。这样,实际上可以把异步电路的Click控制单元所产生的脉冲信号当成是时钟,这样就可以在综合的脚本中为这些脉冲信号创建时钟,而后让DC工具进行综合。
基于Click单元的捆绑数据异步电路是现有异步电路的一种,其基本架构如图3所示,根据Click的结构,每当Click的request信号(i_r1)发生翻转时,就会产生一个fire信号用于进行数据捕获或者存储。并且request信号会传到下一级充当下一级的request信号(i_r2)。“捆绑数据”是指数据信号采用布尔型数值,请求(request)和应答(acknowledge)线相互分开并且与数据捆绑在一起。
将图4所示同步流水线电路转化为基于Click单元的捆绑数据异步电路的示意图如图5所示。从图4和图5中可以看出,同步流水线电路与基于Click单元的捆绑数据异步电路之间的区别在于:
1、同步电路使用全局时钟clk驱动D触发器,而异步电路使用Click单元产生的脉冲信号来驱动D触发器。
2、异步电路需要额外的Click单元来产生能够驱动D触发器的脉冲,而同步电路不要。
基于上述的区别,可以通过以下步骤将用Verilog描述的同步流水线电路转化为基于Click单元的捆绑数据异步电路。
步骤1:找到流水线的级数。这可以通过在同步代码中通过表2所示的方式进行标注,而后可以通过Tcl脚本找到流水线的级数。
表2流水线级数标注
步骤2:将同步代码中的posedge clk替换为posedge fire,并在代码中加入Click单元的例化。在步骤1里面已经能够找到流水线的级数,根据流水线的级数加入Click单元的个数,并为每一级的posedge clk替换成为posedge fire1,posedge fire2,以此类推。
步骤3:将同步代码中的clock端口替换为in_req,并在代码中添加一些其他的Click的其他端口。
通过以上的方式就能实现将同步的流水线电路转化为基于Click的捆绑数据异步电路。
Claims (5)
1.一种将同步电路转化为异步电路的方法,其特征在于,包括如下步骤:
步骤1,比较同步流水线电路与基于Click单元的捆绑数据异步电路的区别;
步骤2,通过Tcl脚本将同步流水线电路的Verilog代码转化为基于Click单元的捆绑数据异步电路的Verilog代码,具体步骤如下:
步骤2.1:找到同步流水线电路的流水线级数;
步骤2.2:将同步流水线电路代码中的posedge clk替换为posedge fire,并在代码中加入Click单元的例化;
步骤2.3:将同步流水线电路代码中的clock端口替换为in_req,并在代码中添加Click单元的其他端口;
步骤3,通过Synopsys Design Compiler(DC)工具对异步电路进行综合。
2.根据权利要求1所述将同步电路转化为异步电路的方法,其特征在于,所述同步流水线电路与基于Click单元的捆绑数据异步电路的区别在于:
1)、同步流水线电路使用全局时钟clk驱动D触发器,而基于Click单元的捆绑数据异步电路使用Click单元产生的脉冲信号来驱动D触发器;
2)、基于Click单元的捆绑数据异步电路需要额外的Click单元来产生能够驱动D触发器的脉冲,而同步流水线电路不要。
3.根据权利要求1所述将同步电路转化为异步电路的方法,其特征在于,所述步骤2.2中,根据流水线的级数加入Click单元的个数,并将每一级的posedge clk依次替换成为posedge fire1,posedge fire2,以此类推,其中流水线的级数与Click单元个数是相等的。
4.根据权利要求1所述将同步电路转化为异步电路的方法,其特征在于,所述步骤2.3中,在代码端口声明部分中添加Click单元的in_req,in_ack,out_req,out_ack端口。
5.根据权利要求1所述将同步电路转化为异步电路的方法,其特征在于,所述步骤3中,通过Synopsys Design Compiler(DC)工具对异步电路进行综合是将同步流水线代码转化为异步流水线代码,而后对Click单元set_dont_touch,再对fire信号创建时钟,从而实现对电路综合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910123501.1A CN109815619B (zh) | 2019-02-18 | 2019-02-18 | 一种将同步电路转化为异步电路的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910123501.1A CN109815619B (zh) | 2019-02-18 | 2019-02-18 | 一种将同步电路转化为异步电路的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109815619A CN109815619A (zh) | 2019-05-28 |
CN109815619B true CN109815619B (zh) | 2021-02-09 |
Family
ID=66606890
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910123501.1A Active CN109815619B (zh) | 2019-02-18 | 2019-02-18 | 一种将同步电路转化为异步电路的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109815619B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112347722B (zh) * | 2020-11-12 | 2023-12-26 | 苏州盛科通信股份有限公司 | 高效评估芯片Feed-through流水级数的方法及装置 |
CN112908379B (zh) * | 2021-01-26 | 2023-05-23 | 北京航空航天大学 | 一种异步电路及系统 |
CN113407239B (zh) * | 2021-06-09 | 2023-06-13 | 中山大学 | 一种基于异步单轨的流水线处理器 |
CN113407467B (zh) * | 2021-07-19 | 2023-05-30 | 北京中科芯蕊科技有限公司 | 一种基于Mousetrap的同步异步转换接口及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102565665A (zh) * | 2010-12-17 | 2012-07-11 | 炬力集成电路设计有限公司 | 一种电路检测装置及方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593221B (zh) * | 2008-05-28 | 2010-10-27 | 北京中电华大电子设计有限责任公司 | 一种防止异域时钟动态切换毛刺的方法和电路 |
CN100552621C (zh) * | 2008-06-06 | 2009-10-21 | 清华大学 | 一种采用异步电路实现的算术逻辑单元 |
US9685957B2 (en) * | 2014-04-09 | 2017-06-20 | Altera Corporation | System reset controller replacing individual asynchronous resets |
US10152565B2 (en) * | 2015-06-03 | 2018-12-11 | Altera Corporation | Methods for performing register retiming operations into synchronization regions interposed between circuits associated with different clock domains |
CN108537331A (zh) * | 2018-04-04 | 2018-09-14 | 清华大学 | 一种基于异步逻辑的可重构卷积神经网络加速电路 |
-
2019
- 2019-02-18 CN CN201910123501.1A patent/CN109815619B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102565665A (zh) * | 2010-12-17 | 2012-07-11 | 炬力集成电路设计有限公司 | 一种电路检测装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109815619A (zh) | 2019-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109815619B (zh) | 一种将同步电路转化为异步电路的方法 | |
JP4322548B2 (ja) | データ形式変換回路 | |
CN102487272A (zh) | 集成电路、时钟门控电路和方法 | |
US7904874B2 (en) | Opposite-phase scheme for peak current reduction | |
CN1514968A (zh) | 同步到异步到同步接口 | |
CN104022775A (zh) | 一种面向SerDes技术中基于FIFO协议的数字接口电路 | |
US8578074B2 (en) | First in first out device and method thereof | |
CN104050140B (zh) | 用于混合通道停转或无锁总线架构的方法、设备、系统 | |
CN102819418A (zh) | 超细粒度门控时钟的fifo数据存储方法及装置 | |
US20030210603A1 (en) | Method and apparatus for performing signal synchronization | |
CN101689851A (zh) | 逻辑状态捕捉电路 | |
CN104184456A (zh) | 用于io接口的低频多相位差分时钟树型高速低功耗串行器 | |
CN117811539A (zh) | Fpga时钟无毛刺切换电路 | |
CN101876960A (zh) | 一种apb总线系统及一种芯片 | |
CN213876359U (zh) | 一种硬件仿真加速器i/o扩展装置 | |
CN116318601A (zh) | 用于高速信令互连的帧对齐恢复 | |
CN112181356B (zh) | 一种可配置的多进多出fifo的设计方法及装置 | |
Oelmann et al. | Asynchronous control of low-power gated-clock finite-state-machines | |
CN115220528A (zh) | 时钟获得方法、装置、芯片、电子设备及存储介质 | |
EP3173895A1 (en) | Clock tree implementation method, system-on-chip and computer storage medium | |
CN103348594A (zh) | 多电压时钟同步 | |
CN111506529A (zh) | 一种应用于flash的高速spi指令应答电路 | |
CN1315018C (zh) | 时钟脉冲切换系统及其时钟脉冲切换方法 | |
US20030121009A1 (en) | Method for generating register transfer level code | |
CN111785309B (zh) | 非型闪存接口电路的实现方法、电路、存储介质和终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |