CN117634385A - 在fpga上仿真ic设计的方法、系统及存储介质 - Google Patents
在fpga上仿真ic设计的方法、系统及存储介质 Download PDFInfo
- Publication number
- CN117634385A CN117634385A CN202310658649.1A CN202310658649A CN117634385A CN 117634385 A CN117634385 A CN 117634385A CN 202310658649 A CN202310658649 A CN 202310658649A CN 117634385 A CN117634385 A CN 117634385A
- Authority
- CN
- China
- Prior art keywords
- clock
- data
- terminal
- data output
- data input
- 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.)
- Pending
Links
- 238000013461 design Methods 0.000 title claims abstract description 62
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000005070 sampling Methods 0.000 claims description 115
- 230000015654 memory Effects 0.000 claims description 41
- 101100021996 Arabidopsis thaliana CYP97C1 gene Proteins 0.000 claims description 29
- 230000000630 rising effect Effects 0.000 claims description 22
- 101100099821 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) cbs-1 gene Proteins 0.000 claims 1
- 229920000609 methyl cellulose Polymers 0.000 description 25
- 239000001923 methylcellulose Substances 0.000 description 25
- 235000010981 methylcellulose Nutrition 0.000 description 25
- 238000010586 diagram Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 19
- 230000001960 triggered effect Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 102100032066 EMI domain-containing protein 1 Human genes 0.000 description 3
- 101710133019 EMI domain-containing protein 1 Proteins 0.000 description 3
- 238000009472 formulation Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000003708 edge detection Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 102100028284 Collagen alpha-1(XXVI) chain Human genes 0.000 description 1
- 101710113648 Collagen alpha-1(XXVI) chain Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000002715 modification method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明涉及电子设计自动化技术领域,具体涉及一种在FPGA上仿真IC设计的方法、系统及存储介质,通过识别时序单元的端口,根据时序单元的数据输出端接入另一个时序单元的用户时钟输入端,或者不接入所述另一个时序单元的用户时钟输入端且接入所述另一个时序单元的数据输入端,将时序单元分为A组和B组;将A组中的所有时序单元修改为时钟模型CA,将B组中的所有时序单元修改为时钟模型CB;时钟模型CA和时钟模型CB通过将具有毛刺的用户时钟接入对毛刺不敏感的用户使能端,解决了毛刺的问题;通过设置主时钟′使A组和B组各接入一个主时钟′,降低时钟域的数量,并能够通过控制主时钟′使整个系统同时启动和暂停。
Description
技术领域
本发明涉及电子设计自动化技术领域,具体涉及一种在FPGA上仿真IC设计的方法、系统及存储介质。
背景技术
集成电路设计(Integrated circuit design;IC design)是指以集成电路、超大规模集成电路为目标的设计流程。集成电路设计包括专用集成电路(ApplicationSpecific Integrated Circuit;ASIC)设计,是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。集成电路设计完成之后会进入流片阶段,流片的成本很高,一旦出问题就会导致流片失败。为了降低流片失败的风险,在流片之前需要对IC的软件和硬件进行充分的验证,及时发现设计过程中很难发现的一些问题,及时调整设计,以保证流片的顺利进行。常见的验证工具包括Simulation和Emulation,其中Emulation是指模拟用户设计芯片中实际使用的硬件,再进行仿真。Emulation大多数是基于现场可编程逻辑门阵列(Field Programmable Gate Array;FPGA)芯片进行设计的,FPGA芯片由查找表和寄存器等元器件构成,通过软件配置相应元器件的电信号能够实现不同功能。
由于IC和FPGA的物理结构不同,IC设计基于标准单元库,而FPGA基于厂商提供的宏单元模块(查找表),因此如果要在FPGA上验证IC设计,IC设计就必须做一定的转换,才能够移植到FPGA上。IC和FPGA芯片的内核之间最大的不同莫过于时钟结构。IC中的时钟结构包括至少一个时钟树,每个时钟树为由一个主时钟(primary clock)和多个生成时钟(generated clock)组成的时钟树结构。IC设计在未经过布线设计前,由于电路延时会导致组合逻辑运算生成的生成时钟中存在毛刺。若将具有毛刺的生成时钟接入时序单元的时钟输入端,由于时序单元的时钟输入端对毛刺敏感,会错误的触发时序单元对数据输入端的信号进行采样,进而导致时序单元的数据输出端输出的采样数据发生错误。为了解决毛刺问题,在IC设计中尚可通过严格的布线设计控制组合逻辑输入信号的延时,进而控制毛刺的产生。但是若将IC设计直接应用于FPGA中,由于FPGA属于预布线的半定制电路,无法通过控制布线长度控制延时的方式控制毛刺的产生,进而无法避免毛刺导致时序单元输出错误采样数据的问题。
发明内容
本发明的目标是克服这些缺点中的一些或全部。
为此目的,根据第一方面,本发明提供了一种在FPGA上仿真IC设计的方法,包括:
S2)将所述多个时序单元标识为A组或B组,包括:若时序单元的数据输出端接入另一个时序单元的用户时钟输入端,将所述时序单元标识为A组;若时序单元的数据输出端不接入所述另一个时序单元的用户时钟输入端且接入所述另一个时序单元的数据输入端,将所述时序单元标识为B组。
S3)修改所述多个时序单元,包括:
3.1)修改被标识为A组的时序单元,包括:
3.1.1)为时钟模型CA设置数据输入端CA、数据输出端CA、用户使能端CA和时钟输入端CA。
3.1.2)将时序单元A替换为时钟模型CA,包括:
将时序单元的数据输入端和数据输出端分别对应的修改为数据输入端CA和数据输出端CA;将时序单元A的用户时钟输入端A接入用户使能端CA;将主时钟′接入时钟输入端CA,其中:所述主时钟′的频率大于或等于所述主时钟的频率;设置时钟模型CA,包括:在主时钟′的每个有效沿对来自数据输入端CA的信号采样,获得在以所述有效沿为起点的一个主时钟′的周期内的采样数据;当用户时钟A第N次发生有效沿时:获得主时钟′在当前周期内的采样数据,向数据输出端CA输出采样数据,直到用户时钟A第N+1次发生有效沿为止。
3.2)修改被标识为B组的时序单元,包括:
3.2.1)为时钟模型CB设置数据输入端CB、数据输出端CB、用户使能端CB和时钟输入端CB。
3.2.2)将时序单元B替换为时钟模型CB,包括:
将时序单元B的数据输入端和数据输出端分别对应的修改为数据输入端CB和数据输出端CB;将用户时钟输入端B接入用户使能端CB;将主时钟′接入时钟输入端CB;设置时钟模型CB,包括:当用户时钟B的有效沿发生时且主时钟′的有效沿发生时:对来自数据输入端CB的信号采样,获得在以主时钟′的所述有效沿为起点的一个主时钟′的周期内的采样数据;向数据输出端CB输出采样数据。
第二方面,本发明提供了一种在FPGA上仿真IC设计的系统,包括处理器和与所述处理器通信连接的存储介质,其中:当所述处理器执行在所述存储介质内的程序时,所述系统可实施上述一种在FPGA上仿真IC设计的方法。
第三方面,本发明提供了一种非瞬时性计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现上述一种在FPGA上仿真IC设计的方法。
本发明至少具有以下有益效果:
本发明实施例提供了一种在FPGA上仿真IC设计的方法,首先识别时序单元的端口,当时序单元的数据输出端接入另一个时序单元的用户时钟输入端时,将所述时序单元标识为A组;当时序单元的数据输出端不接入所述另一个时序单元的用户时钟输入端且接入所述另一个时序单元的数据输入端,将所述时序单元标识为B组;将A组中的所有时序单元修改为时钟模型CA,将B组中的所有时序单元修改为时钟模型CB;时钟模型CA和时钟模型CB通过将具有毛刺的用户时钟接入对毛刺不敏感的用户使能端,解决了毛刺的问题;将A组中的时钟模型CA接入同一个主时钟′,B组中的时钟模型CB接入同一个主时钟′,能够大幅度的降低时钟域的数量,不仅能够降低资源开销,而且通过控制更少的主时钟′使整个系统暂停下来。
附图说明
本发明的其它优点、目标和特征将从参照附图的遵循用于一种在FPGA上仿真IC设计的方法、系统及存储介质的至少一个特定实施例的非限制性描述显现,其中:
图1为本发明一个实施例提供的时钟模型CA的结构示意图;
图2为本发明一个实施例提供的时钟模型CB的结构示意图;
图3为时序单元修改为时钟模型的前后对比示意图;
图4为时钟模型CB在主时钟′移动前的时序示意图;
图5时钟模型CB在主时钟′移动前后的时序对比示意图;
图6为现有技术中理想状态与实际生成毛刺的对比示意图;
图7为本发明实施例提供的一种在FPGA上仿真IC设计的方法流程图;
图8为本发明实施例中S2的步骤流程图;
图9为本发明实施例中S3的步骤流程图;
图10为用时钟模型CA替换时序单元A的示意图;
图11为本发明另一个实施例提供的时钟模型CA的结构示意图;
图12为本发明另一个实施例提供的时钟模型CB的结构示意图;
图13为本发明又一个实施例提供的时钟模型CB的结构示意图;
图14为本发明又一个实施例提供的时钟模型CB的结构示意图;
图15为本发明提供的一种将时序单元替换为时钟模型之后的结构示意图;
图16为本发明提供的时钟模型CA和时钟模型CB共用时钟检测器的结构示意图;
图17为本发明提供的两个时钟模型CA共用时钟检测器的结构示意图;和
图18为本发明提供的两个时钟模型CB共用时钟检测器的结构示意图。
具体实施方式
IC设计中的时钟结构包括至少一个时钟树,每个时钟树由一个主时钟(primaryclock)和多个生成时钟(generated clock)组成。主时钟是IC设计的时钟输入源,通常表示物理时钟。生成时钟是主时钟经过一个子电路生成。子电路可分为分频器、门控时钟或多路复用器等。可选的,子电路为组合逻辑电路、时序逻辑电路、或者组合逻辑电路与时序逻辑电路的混合电路,其中分频器为时序逻辑电路,门控时钟和多路复用器为组合逻辑电路。主时钟经过不同的子电路分别生成不同的生成时钟,生成时钟也可以再次经过另一个子电路生成下一级生成时钟,以此类推构成时钟树结构。生成时钟用于接入多个时序单元的用户时钟输入端以驱动时序单元进行数据采样。时序单元的种类有寄存器、锁存器和存储器等。时序单元具有用户时钟输入端、数据输入端和数据输出端,当用户时钟输入端接入的用户时钟的有效沿发生时,触发时序单元对数据输入端接入的数据信号进行采样,并由数据输出端输出采样数据。其中,时序单元的数据输出端输出的采样数据可以作为用户时钟接入另一个时序单元的用户时钟输入端,也可以作为数据信号接入另一个时序单元的数据输入端。
IC设计在未经过布线设计前,由于电路延时会导致组合逻辑运算生成的生成时钟中存在毛刺。若将具有毛刺的生成时钟接入时序单元的时钟输入端,由于时序单元的用户时钟输入端对毛刺敏感,会错误的触发时序单元对数据输入端的信号进行采样,进而无法避免毛刺导致时序单元输出错误采样数据的问题。为了更好的理解毛刺产生的来源,以具有两个输入端的与门电路为例来说明,请参阅附图6,图6中的a图为理想状态下与门电路中两个输入端分别输入波形信号IA和波形信号IB,则与门的输出端输出的波形信号为OC;但是在未经布线设计控制延时的情况下,由于线路的长度导致的延时或者上级电路运算导致的延时等原因,并不能保证与门电路中两个输入端的信号按照预设的时间间隔翻转,当与门电路中两个输入端分别输入的波形信号延时不一致时,如图6中的b图所示,假设与门电路输入的波形信号IB′比波形信号IA延时时间t0时,此时与门电路输出的波形信号为具有d的OC′,其中相比较理想波形信号OC,在OC′中出现了本不该出现的d,d即为毛刺。也即由于延时的作用,使應該在同一时刻输入的多个信号到达终点的时间具有先后关系,形成了竞争关系,由竞争产生的错误输出就是毛刺。
为了解决毛刺问题,在IC设计中尚可通过严格的布线设计控制组合逻辑输入信号的延时,进而控制毛刺的产生。但是若将IC设计直接应用于FPGA中,由于FPGA属于预布线的半定制电路,无法通过控制布线长度控制延时的方式控制毛刺。为了解决具有毛刺的生成时钟输入时序单元的时钟输入端导致采样错误的问题,并同时实现将IC设计中的时序单元应用于FPGA中,本发明提供了两种功能等价的时钟模型进行替换,通过将用户时钟接入时钟模型的用户使能端消除毛刺对采样数据的影响,并结合时钟模型接入新的主时钟′来等价模拟原IC设计中时序单元的功能,主时钟′直接接入时钟模型的时钟输入端,时钟输入端不会被引入毛刺。其中主时钟′的频率大于用户时钟的频率。
本发明提供了两种类型的时钟模型包括:时钟模型CA和时钟模型CB。这两种时钟模型都是通过主时钟′和用户时钟之间的配合驱动时钟模型进行数据采样,保证重现IC设计中时序单元的功能。其中,时钟模型CA为通过控制输出采样数据的时机来模拟IC设计中时序单元的功能;时钟模型CB通过控制对数据进行采样的时机来模拟IC设计中时序单元的功能。时钟模型CA和时钟模型CB封装之后的端口相同,在此仅以时钟模型CA为例来说明替换的具体操作,请参阅图10,其示出了将时序单元A修改为时钟模型CA的结构示意图,首先需要说明的是,时序单元A的外部端口包括数据输入端D、用户时钟输入端C和数据输出端Q,时钟模型CA的端口包括数据输入端D、用户使能端Ev、时钟输入端MC和数据输出端Q;图10中的“X”为表示断开连接,图中虚线表示修改为时钟模型CA之后的布线,具体的,将时序单元A的某一条信号线断开,并将该信号线接入时钟模型CA的相应端口,相当于将时钟模型CA的相应端口修改为时序单元A的端口并接入对应的信号线;如图10中,将接入时序单元A的用户时钟输入端C的时钟信号线断开,并将该时钟信号线接入时钟模型CA的用户使能端E,相当于将时钟模型CA的用户使能端E修改为时序单元A的用户时钟输入端C,使时钟模型CA的用户使能端E接入用户时钟;以此类推,将时钟模型CA的数据输入端D修改为时序单元A的数据输入端D,使时钟模型CA的数据输入端D接入数据输入信号;将时钟模型CA的数据输出端Q修改为时序单元A的数据输出端Q,使时钟模型CA的数据输出端Q接入输出的后级电路;将主时钟′直接接入时钟模型CA的时钟输入端,达到利用时钟模型CA替换掉时序单元F的目的。
将主时钟′直接接入时钟模型CA或者时钟模型CB的时钟输入端,因为在主时钟′与时钟模型CA的时钟输入端或时钟模型CB的时钟输入端之间不存在组合逻辑不会引入延时,所以时钟模型CA和时钟模型CB的时钟输入端不存在毛刺,解决了毛刺问题。将具有毛刺的用户时钟通过用户使能端接入时钟模型CA或时钟模型CB,由于用户使能端对毛刺不敏感,不会影响时钟模型的采样数据,解决了上述技术问题。其中,对毛刺不敏感是指:由于用户使能端的用户时钟需要满足建立时间和保持时间的要求,其中建立时间是指在主时钟′的有效沿到来之前数据保持稳定不变的时间,保持时间是指在主时钟′的有效沿到来之后数据保持稳定不变的时间,而毛刺的持续时间一般比较短,无法满足建立时间和保持时间的要求,能够屏蔽毛刺,毛刺已不具备损害性,因此不会影响数据采样。
除了消除毛刺,为了更进一步减少时钟域的数量,节省硬件资源,将IC设计中的时序单元进行分组,分组的方法为:若时序单元数据输出端输出的生成时钟接入另一个时序单元的时钟输入端,则将该时序单元划分为A组;若时序单元数据输出端输出的生成时钟不接入另一个时序单元的时钟输入端且接入另一个时序单元的数据输入端,则将时序单元划分为B组。其中,A组中的时序单元对应于时钟树的中间节点代表的时序单元,B组中的时序单元对应于时钟树中叶子结点代表的时序单元。
将A组中的所有时序单元修改为时钟模型CA,时钟模型CA的采样数据是否输出受到用户时钟A的控制且不受主时钟′的控制,时钟模型CA在主时钟′的每一个有效沿都会进行数据采样,使得在采样的过程中不存在延时,在采样时序上等价于时序单元。因此A组中的所有时钟模型所接入的主时钟′的时钟偏移可以相同,主时钟′的时钟偏移相同的时钟模型CA处于同一个时钟域,同一个时钟域的主时钟′使用一个时钟低偏移缓冲器(BUFG)即可,这样能够大幅度的减少时钟域,节省更多的时钟低偏移缓冲器(BUFG)资源。
将B组中的所有时序单元替换为时钟模型CB,B组中每一个时序单元的用户使能端接入的用户时钟分别为A组中时钟模型CA数据输出端输出的采样数据,时钟模型CB进行数据采样的时机同时受到主时钟′和用户时钟的控制,因此当时钟模型CB的用户时钟的有效沿发生之后还需要等待主时钟′的有效沿也发生才能进行采样,且接入时钟模型CB的用户时钟输入端的主时钟′的频率大于用户时钟,但是并不是每个主时钟′的有效沿都能够进行采样,只有当用户时钟有效沿发生且主时钟′有效沿发生才能够进行采样,因此需要在采样前先检测用户时钟的有效沿是否发生,在此期间产生的时间延时使得时钟模型CB得到的采样数据相比于时序单元的采样时间具有一定的滞后,而时钟模型CA的采样时机等价于时序单元,因此时钟模型CB的采样时机滞后于时钟模型CA的采样时机。需要说明的是,时钟模型CB为相对于时钟模型CA具有时钟延迟的时钟模型,其中的时钟延迟是由于时钟模型CB自身的硬件结构带来的延迟。
为了更好理解,请参阅图4,为了区分,使用MC1表示时钟模型CA接入的主时钟′的波形,MC2表示时钟模型CB接入的主时钟′的波形。用Ev表示时钟模型CB内部检测到的用户时钟的波形,时钟模型CA能够在时序上完全等价于时序单元。在图4中MC1具有第一个时钟有效沿发生时间T1和第二个时钟有效沿发生时间T2,正常情况下,如果时钟模型CB能够与时钟模型CA在同一个主时钟′的时钟周期内完成一次采样就能够得到一次正确的采样,其中T1与T2之间的时间差即为一个主时钟′的周期。但是由于时钟模型CA在每个主时钟′的有效沿到来时都进行采样,在用户时钟的有效沿到来时输出实时采样的结果;而时钟模型CB是在检测到用户时钟的有效沿到来之后再等待主时钟′的有效沿到来时进行采样,其中检测用户时钟Ev有效沿的电路在检测的过程中需要一定的时间,因此导致检测到的用户时钟Ev有效沿发生时间T0相对于实际用户时钟Ev有效沿的发生时间有一个微小的时间偏差t1,也即检测到的用户时钟Ev有效沿发生时间T0相对于MC2的第一个有效沿发生时间T1落后了一个微小的时间偏差t1,导致当时钟模型CB接入MC2的第一个有效沿发生时,未能检测到Ev中有效沿发生,因而无法在主时钟′第一个有效沿发生时进行正确采样;只能在Ev中有效沿发生期间等待主时钟′的第二个有效沿发生时间T2进行采样,导致此时,时钟模型CB采样的时间为T2,而时钟模型CA采样的时间为T1,时钟模型CB的采样时序相对于时钟模型CA刚好落后了一个主时钟′的时钟周期。落后的时钟周期会导致时序错乱,为了使时钟模型CB与时钟模型CA在同一个周期内进行数据采样,请参阅图5,需要将时钟模型CB接入的主时钟′主动向后移动一个大于时间偏差t1且小于主时钟′的时钟周期的偏移时间△t,图5中示出了移动前的MC2波形和移动后的MC2波形的波形对比图,移动后的MC2波形中第一个有效沿发生时间T1′的发生时间晚于用户时钟有效沿发生时间T0,也即在用户时钟的有效沿发生之后,移动后的MC2波形中第一个有效沿发生,使数据采样的时间提前为移动后的MC2波形中第一个有效沿发生时间T1′,T1′与MC1在第一个时钟有效沿发生时间T1进行采样的时间处于同一个主时钟′的周期内发生,进而能够得到正确的采样数据。
为了使时钟模型CB与作为父节点的时钟模型CA在同一个主时钟′的同一周期内完成采样,保证采样时序不错乱,需要设置所有时钟模型CB接入的主时钟′的有效沿的触发时间主动滞后于作为父节点的时钟模型CA接入的主时钟′的有效沿在同一周期内的触发时间,因此,每个时钟模型CB与其作为父节点的时钟模型CA之间满足:TB=TA+Δt,其中TB为时钟模型CB的主时钟′的采样时间,TA为时钟模型CA的主时钟′的采样时间,Δt为时钟偏移。其中,B组中不同时钟模型CB的父节点可能不同,这样会导致B组中时钟模型CB接入主时钟′的时钟偏移不同,进而导致时钟域大量增加。
进一步,为了减少时钟域的数量,使B组中所有时钟模型CB接入同一个主时钟′,主时钟′的时钟偏移Δt相同,也即B组中所有时钟模型CB接入一个主时钟′、A组中所有时钟模型CA接入一个主时钟′,两个主时钟之间同样需要满足:TB=TA+Δt,且Δt满足:最小阈值<Δt<主时钟′的时钟周期。其中,最小阈值为B组中所有时钟模型CB接入的用户时钟在经过时钟检测器进行边缘检测前后用户时钟有效沿的时间差的最大值。该方法能够使B组中所有时钟模型CB处于同一个时钟域内,节省BUFG资源。
请参阅图7,下面结合图7来具体说明本发明提出的一种在FPGA上仿真IC设计的方法,该方法包括以下步骤:
S1)在IC设计中辨识出:主时钟、子电路、多個生成时钟和多个时序单元。其中主时钟经过所述子电路运算生成所述多個生成时钟,接入多个时序单元的用户时钟是所述主时钟或所述多个生成时钟。
可选的,主时钟为IC设计的时钟输入源,通常表示物理时钟。
可选的,子电路为组合逻辑电路、时序逻辑电路或者组合逻辑电路与时序逻辑电路的混合电路。作为一个示例,子电路可以是分频器、门控时钟或多路复用器等,其中分频器为时序逻辑电路,门控时钟和多路复用器为组合逻辑电路。
其中,生成时钟是由主时钟或者上一级生成时钟经过子电路得到。主时钟经过不同的子电路能够分别生成不同的生成时钟,上一级的生成时钟也可以再次经过另一个子电路生成下一级生成时钟,以此类推,主时钟和生成时钟的拓扑结构构成时钟树结构。生成时钟用于接入多个时序单元的时钟输入端以驱动时序单元进行数据采样,或者接入时序单元的数据输入端。
其中,时序单元具有用户时钟输入端、数据输入端和数据输出端,用于当用户时钟输入端接入的用户时钟的有效沿发生时,触发时序单元对数据输入端接入的数据信号进行采样,并由数据输出端输出采样数据。其中用户时钟有效沿作为驱动时序单元采样的驱动信号,在驱动信号的作用下对输入时序单元的数据进行采样并输出得到生成时钟。时序单元的数据输出端输出的采样数据可以作为另一个时序单元时钟输入端的时钟输入信号,也可以作为另一个时序单元数据输入端的数据输入信号。
可选的,时序单元为锁存器、触发器、寄存器、移位寄存器或者存储器,现有技术中其他具有相同功能的组合单元也落入本发明的保护范围之内。
其中,时序单元之间的连接方式包括级连关系和串联关系,请参阅图3,在图3中的a部分为IC设计中时序单元之间可能存在的连接结构,其中,每个时序单元都包括数据输入端D、时钟输入端C和数据输出端Q,级连关系为第i个时序单元FFi的数据输出端Q输出的数据信号Qi被接入第j个时序单元的时钟输入端C,串联关系为第i个时序单元FFi的数据输出端Q输出的数据信号Qi被接入第p个时序单元的数据输入端D。
S2)将所述多个时序单元标识为A组或B组,请参阅图8,S2包括:2.1)将多个时序单元中的一个时序单元标识为A组或B组,2.2)将所述多个时序单元中的其他时序单元标识为A组或B组。
其中,步骤2.1包括:2.1.1)在所述时序单元上辨识出:接入所述时序单元的用户时钟、数据输入端、用户时钟输入端和数据输出端,其中所述用户时钟接入所述用户时钟输入端。2.1.2)若所述数据输出端接入另一个时序单元的用户时钟输入端,将所述时序单元标识为A组。2.1.3)若所述数据输出端不接入所述另一个时序单元的用户时钟输入端且接入所述另一个时序单元的数据输入端,将所述时序单元标识为B组。
作为一个示例,请参阅图3,图3中a部分中,当时序单元FFi的数据输出端Q接入时序单元FFp的数据输入端D且同时接入时序单元FFj的时钟输入端C时,时序单元FFi满足被标识为A组的条件,但是不满足被标识为B组的条件,因此将时序单元FFi标识为A组。
S3)修改所述多个时序单元,请参阅图9,S3包括:3.1)修改被标识为A组的时序单元;3.2)修改被标识为B组的时序单元;3.3)设置主时钟′。
具体的,3.1)包括:3.1.1)为时钟模型CA设置数据输入端CA、数据输出端CA、用户使能端CA和时钟输入端CA;3.1.2)修改被标识为A组的时序单元中的一个时序单元A,包括:i)依S2辨识出:接入时序单元A的用户时钟A、数据输入端A、用户时钟输入端A和数据输出端A,其中用户时钟A接入用户时钟输入端A;ii)将时序单元A替换为时钟模型CA,包括:将数据输入端A接入数据输入端CA、将数据输出端A接入数据输出端CA、将用户时钟输入端A接入用户使能端CA和将主时钟′接入时钟输入端CA,其中:所述主时钟′的频率大于或等于所述主时钟的频率;iii)设置时钟模型CA,包括:在主时钟′的每个有效沿对来自数据输入端CA的信号采样,获得在以所述有效沿为起点的一个主时钟′的周期内的采样数据;当用户时钟A第N次发生有效沿时:获得主时钟′在当前周期内的采样数据N,向数据输出端CA输出采样数据N,直到用户时钟A第N+1次发生有效沿为止;当用户时钟A第N+1次发生有效沿时:获得主时钟′在当前周期内的采样数据N+1,向数据输出端CA输出采样数据N+1,直到用户时钟A第N+2次发生有效沿为止。
其中,时钟模型CA的内部结构包括多种结构类型,本发明实施例提供以下三种变形结构,现有技术中能够实现与时钟模型CA相同功能的模型也落入本发明的保护范围之内。
作为一个优选实施例,请再次参阅图1,时钟模型CA包括时钟检测器E1和采样单元CAs,如图1所示,D1表示接入时钟输入端CA的数据信号、C1表示接入用户使能端CA的用户时钟A、MC1表示接入时钟输入端CA的主时钟′、Q1表示数据输出端CA输出的数据信号。也即,用户使能端E1接入C1、时钟输入端E1接入MC1、有效沿输出端E1接入使能端CAs、数据输入端CAs接入D1、数据输出端CAs接入Q1。其中S3.1还包括:为时钟模型CA设置时钟检测器E1和采样单元CAs;为时钟检测器E1设置用户使能端E1、时钟输入端E1和有效沿输出端E1;为采样单元CAs设置数据输入端CAs、使能端CAs、时钟输入端CAs和数据输出端CAs;将用户使能端E1接入用户使能端CA;将时钟输入端E1和时钟输入端CAs接入时钟输入端CA;将有效沿输出端E1接入使能端CAs;将数据输入端CAs接入数据输入端CA;和将数据输出端CAs接入数据输出端CA。其中,时钟检测器E1用于检测用户时钟是否发生有效沿。采样单元CAs用于实现在主时钟′的每个有效沿对来自数据输入端CA的信号采样,获得在以所述有效沿为起点的一个主时钟′的周期内的采样数据;当用户时钟A第N次发生有效沿时:获得主时钟′在当前周期内的采样数据N,向数据输出端CA输出采样数据N,直到用户时钟A第N+1次发生有效沿为止;当用户时钟A第N+1次发生有效沿时:获得主时钟′在当前周期内的采样数据N+1,向数据输出端CA输出采样数据N+1,直到用户时钟A第N+2次发生有效沿为止。其中,时钟检测器E1输出的用户时钟的有效沿用于驱动采样单元CAs输出相应的采样数据。
作为一个优选实施例,如图1所示,S3.1还进一步包括:为采样单元CAs设置第一基本存储单元Re1、第二基本存储单元Re2和多路选择器MUX1;为第一基本存储单元Re1设置时钟输入端Re1、数据输入端Re1和数据输出端Re1;为第二基本存储单元Re2设置时钟输入端Re2、数据输入端Re2和数据输出端Re2;为多路选择器MUX1设置第一数据输入端MUX1、第二数据输入端MUX1、信号选择端MUX1和数据输出端MUX1;将数据输入端Re1接入数据输入端CAs;将数据输出端MUX1接入数据输出端CAs;将时钟输入端Re1和时钟输入端Re2接入时钟输入端CAs;将数据输出端Re1接入第一数据输入端MUX1;将数据输入端Re2接入数据输出端MUX1;将数据输出端Re2接入第二数据输入端MUX1;和将使能端CAs接入信号选择端MUX1。采样单元CAs的结构不仅能够实现通过控制输出采样数据的时机来实现与时序单元相同的功能,同时由于其内部结构会在每一个主时钟′的有效沿进行采样,使采样单元CAs在采样的过程中不存在延时,在时序上等价于IC设计中的时序单元。
其中,多路选择器为多个数据输入且单个数据输出的组合逻辑电路,多个数据输入的多路选择器就是一个多路的数字开关,可以根据信号选择端的不同信号从多个数据输入中选择一个数据输入信号输出到公共的数据输出端。
其中,第一基本存储单元Re1用于实现在主时钟′的每个有效沿发生时对来自数据输入端CA的数据信号进行采样得到采样数据。第二基本存储单元Re2用于实现在主时钟′的每个有效沿同时对数据输出端CA的输出信号进行采样得到采样数据。其中,主时钟′的时钟频率大于用户时钟的时钟频率,Re1和Re2接入同一个主时钟′,在主时钟′的每个有效沿都会得到两种采样数据:Re1输出主时钟′当前周期获取的采样数据、以及Re2输出主时钟′上一个周期获取的采样数据。多路选择器MUX1用于当用户时钟A有效时选择输出Re1的采样数据,当用户时钟A无效时输出Re2的采样数据。也即在主时钟′的第i个有效沿到来时,Re1对输入数据进行采样得到采样数据data1,若此时用户时钟A有效,则驱动MUX1选择Re1的采样数据输出data1;在主时钟′的第i+1个有效沿到来时,Re1继续对输入数据进行采样得到新的采样数据data2,但是此时Re2是对MUX1输出的data1进行采样得到data1,若此时用户时钟A无效,则驱动MUX1选择Re2的采样数据输出data1,在主时钟′的第i+2个有效沿到来时,若用户时钟有效,则驱动MUX1输出新的采样数据data2,否则继续保持输出data1。也即达到:当用户时钟A第N次发生有效沿时:获得主时钟′在当前周期内的采样数据dataN,向数据输出端CA输出采样数据dataN,直到用户时钟A第N+1次发生有效沿为止;当用户时钟A第N+1次发生有效沿时:获得主时钟′在当前周期内的采样数据dataN+1,向数据输出端CA输出采样数据dataN+1,直到用户时钟A第N+2次发生有效沿为止。
进一步,作为一个优选实施例,请再次参阅图1,为时钟检测器E1设置第三基本存储单元Re3、非门电路A0和与门电路A1,其中:为Re3设置时钟输入端Re3、数据输入端Re3和数据输出端Re3;为非门电路设置信号输入端A0和信号输出端A0;为与门电路设置第一数据输入端A1、第二数据输入端A1和数据输出端A1;将时钟输入端Re3接入时钟输入端E1;将数据输入端Re3和第一数据输入端A1接入用户使能端E1;将数据输出端Re3接入信号输入端A0;将信号输出端A0接入第二数据输入端A1;将数据输出端A1接入有效沿输出端E1。
其中,非门电路A0用于实现使信号输出端A0输出的电平与信号输入端A0输入的电平相反。与门电路A1用于实现当第一数据输入端A1和第二数据输入端A1同时为高电平时,数据输出端A1输出高电平;否则,数据输出端A1输出低电平。
可选的,非门电路A0和与门电路A1的组合电路可以是具有相同真值表的查找表,其中实现同一真值表的查找表的数字电路组合包括多种。其中,查找表为用于实现已经事先写入所有可能的逻辑组合及其对应的逻辑结果的真值表的结构,根据查找表输入端的逻辑组合能够得到对应的逻辑结果。
现有技术中能够实现与时钟检测器E1相同功能的电路均落入本发明的保护范围。其中相同功能是指时钟边缘检测的功能,时钟检测器可以是检测上升沿的时钟检测器、检测下降沿的时钟检测器或者检测双边缘的时钟检测器。
时钟模型CA不仅能够重现时序单元的功能,而且由于时钟模型CA内部结构通过在主时钟′的有效沿到来之后,直接进行数据据采样,只是选择性的输出相应的采样结果,因此时钟模型CA的采样时机不存在延时的问题。
作为一个优选实施例,当时序单元的使能端被接入电路时,请参阅图11,时钟模型CA也具备使能端,具体的,D1表示接入数据输入端CA的数据信号、Q1表示数据输出端CA输出的采样数据、C1表示接入用户使能端CA的用户时钟、MC1表示接入时钟输入端CA的时钟信号、EN1表示接入使能端CA的使能信号;S2.1还包括在所述时序单元上辨识出:数据输入端、用户时钟输入端、数据输出端和使能端;则S3.1还包括:为时钟模型CA设置数据输入端CA、数据输出端CA、用户使能端CA、时钟输入端CA和使能端CA;为时钟模型CA设置时钟检测器E1、第一基本存储单元Re1、第二基本存储单元Re2、多路选择器MUX1和多路选择器MUX2;为时钟检测器E1设置用户使能端E1、时钟输入端E1和有效沿输出端E1;为第一基本存储单元Re1设置时钟输入端Re1、数据输入端Re1和数据输出端Re1;为第二基本存储单元Re2设置时钟输入端Re2、数据输入端Re2和数据输出端Re2;为多路选择器MUX1设置第一数据输入端MUX1、第二数据输入端MUX1、信号选择端MUX1和数据输出端MUX1;为多路选择器MUX2设置第一数据输入端MUX2、第二数据输入端MUX2、信号选择端MUX2和数据输出端MUX2;将第二数据输入端MUX2接入数据输入端CA;将数据输出端MUX1接入数据输出端CA、数据输入端Re2和第一数据输入端MUX2;将时钟输入端Re1、时钟输入端Re2和时钟输入端E1接入时钟输入端CA;将用户使能端E1接入用户使能端CA;将有效沿输出端E1接入信号选择端MUX1;将数据输出端Re2接入第二数据输入端MUX1;将使能端CA接入信号选择端MUX2;将数据输出端MUX2接入数据输入端Re1;和将数据输出端Re1接入第一数据输入端MUX1。需要说明的是,MUX2用于实现当使能端CA接入的使能信号有效时,则驱动MUX2选择将数据输入端CA输入的数据信号D1输出给数据输入端Re1;否则驱动MUX2选择将数据输出端CA输出的数据信号Q1输出给数据输入端Re1。
可选的,第一基本存储单元Re1被设置为寄存器或锁存器。第二基本存储单元Re2被设置为寄存器或锁存器。
3.2)修改被标识为B组的时序单元,包括:3.2.1)为时钟模型CB设置数据输入端CB、数据输出端CB、用户使能端CB和时钟输入端CB;3.2.2)修改被标识为B组的时序单元中的一个时序单元B,包括:i)依S2辨识出:接入时序单元B的用户时钟B、数据输入端B、用户时钟输入端B和数据输出端B,其中用户时钟B接入用户时钟输入端B;ii)将时序单元B替换为时钟模型CB,包括:将数据输入端B接入数据输入端CB、将数据输出端B接入数据输出端CB、将用户时钟输入端B接入用户使能端CB、将主时钟′接入时钟输入端CB;iii)设置时钟模型CB,包括:当用户时钟B的有效沿发生时且主时钟′的有效沿发生时:对来自数据输入端CB的信号采样,获得在以主时钟′的所述有效沿为起点的一个主时钟′的周期内的采样数据,向数据输出端CB输出所述采样数据;当用户时钟B的有效沿未发生时或当主时钟′的有效沿未发生时:不对来自数据输入端CB的信号采样,不向数据输出端CB输出数据;3.2.3)修改被标识为B组的时序单元中的其他时序单元。
由于主时钟′直接接入时钟模型CB的时钟输入端CB,并且具有毛刺的用户时钟被接入时钟模型CB的用户使能端CB,时钟模型CB与时钟模型CA解决技术问题的原理相同,时钟输入端CB接入的主时钟′中不存在毛刺,而具有毛刺的用户时钟被接入对毛刺不敏感的用户使能端CB,毛刺不会影响数据采样,因此时钟模型CB解决了毛刺问题。
作为一个优选实施例,请参阅图2,其中S3.2还包括:为时钟模型CB设置时钟检测器E2和采样单元CBs;为时钟检测器E2设置用户使能端E2、时钟输入端E2和有效沿输出端E2;为采样单元CBs设置时钟输入端CBs、使能端CBs、数据输入端CBs、数据输出端CBs;将数据输入端CBs接入数据输入端CB;将数据输出端CBs接入数据输出端CB;将时钟输入端E2和时钟输入端CBs接入时钟输入端CB;将用户使能端E2接入用户使能端CB;和将有效沿输出端E2接入使能端CBs。请再次参阅图2,D2表示接入数据输入端CB的数据信号、Q2表示数据输出端CB输出的采样数据、C2表示接入用户使能端CB的用户时钟、MC2表示接入时钟输入端CB的时钟信号。
其中,时钟检测器E2的作用与E1相同,用于检测用户时钟是否发生有效沿。时钟检测器E2的内部结构与E1相同,不再赘述。
其中,采样单元CBs用于实现当用户时钟B的有效沿发生时且主时钟′的有效沿发生时:对来自数据输入端CB的信号采样,获得在以主时钟′的所述有效沿为起点的一个主时钟′的周期内的采样数据;向数据输出端CB输出所述采样数据;当用户时钟B的有效沿未发生时或当主时钟′的有效沿未发生时:不对来自数据输入端CB的信号采样,不向数据输出端CB输出数据。
采样单元CBs的实现电路可以设置为多种类型,本发明实施例提供以下两种变形方法。
可选的,采样单元CBs被设置为具有使能端的寄存器ERe1。时钟模型CB的内部结构简单,而时钟模型CA需要较多的硬件组合实现,时钟模型CB相比较时钟模型CA能够节约大量的硬件资源,因此通过时钟模型CA和时钟模型CB的配合能够实现硬件资源的平衡。
作为一个优选实施例,请再次参阅图2,时钟模型CB包括一个寄存器ERe1和一个时钟检测器E2,其中寄存器ERe1为具有使能端的寄存器,时钟检测器的输出端与寄存器的使能端连接。
作为一个优选实施例,请参阅图12,采样单元CBs被设置为包括第四基本存储单元Re4和多路选择器MUX3;为第四基本存储单元Re4设置时钟输入端Re4、数据输入端Re4和数据输出端Re4;为多路选择器MUX3设置第一数据输入端MUX3、第二数据输入端MUX3、信号选择端MUX3和数据输出端MUX3;将第一数据输入端MUX3接入数据输入端CBs;将数据输出端Re4接入第二数据输入端MUX3和数据输出端CBs;将时钟输入端Re4接入时钟输入端CBs;将信号选择端MUX3接入使能端CBs;将数据输出端MUX3接入数据输入端Re4。其中,MUX3和Re4的组合功能相当于具有使能端的寄存器ERe1的功能,MUX3用于实现当用户信号有效时选择数据输入端CBs输入的数据信号输出给Re4,否则选择数据输出端CBs输出的数据信号输出给Re4,当主时钟′有效时对数据输入端Re4的数据信号进行采样并输出。需要说明的是,时钟模型CB为相对于时钟模型CA具有时钟延迟的时钟模型,时钟模型CB的时钟延迟是由于时钟模型CB自身的硬件结构带来的延迟。
可选的,第四基本存储单元Re4为寄存器或锁存器。
作为一个优选实施例,时钟模型CB还可以是由其他结构构成的功能模块,请参阅图13,为时钟模型CB设置第三基本存储单元Re3、第四基本存储单元Re4和查找表LUT1;为第三基本存储单元Re3设置时钟输入端Re3、数据输入端Re3和数据输出端Re3;为第四基本存储单元Re4设置时钟输入端Re4、数据输入端Re4和数据输出端Re4;为查找表LUT1设置第一数据输入端LUT1、第二数据输入端LUT1、第三数据输入端LUT1、第四数据输入端LUT1和数据输出端LUT1;将第二数据输入端LUT1接入数据输入端CB;将数据输出端Re4接入第一数据输入端LUT1和数据输出端CB;将时钟输入端Re3和时钟输入端Re4接入时钟输入端CB;将数据输入端Re3和第三数据输入端LUT1接入用户使能端CB;将数据输出端Re3接入第四数据输入端LUT1;将数据输出端LUT1接入数据输入端Re4。需要说明的是,其中查找表LUT1的作用相当于图12中非门电路A0、与门电路A1和多路选择器MUX3作为一个模块的组合功能,其中查找表LUT1的第一-第四数据输入端相当于信号输入端A0、第一数据输入端A1、第一数据输入端MUX3和第二数据输入端MUX3,查找表LUT1的数据输出端LUT1相当于图12中的数据输出端Re4,也即查找表LUT1预先写入的真值表的功能等价于A0、A1和MUX3的组合功能。
第三基本存储单元Re3被设置为寄存器或锁存器。
作为一个优选实施例,当时序单元的使能端被接入电路时,请参阅图14,S2.1还包括在所述时序单元上辨识出:数据输入端、用户时钟输入端、数据输出端和使能端。S3.2还包括:为时钟模型CB设置数据输入端CB、数据输出端CB、用户使能端CB、时钟输入端CB和使能端CB;为时序单元CB设置时钟检测器E2、存储单元ERe1和多路选择器MUX4;为时钟检测器E2设置用户使能端E2、时钟输入端E2和有效沿输出端E2;为存储单元ERe1设置时钟输入端ERe1、使能端ERe1、数据输入端ERe1、数据输出端ERe1;为多路选择器MUX4设置第一数据输入端MUX4、第二数据输入端MUX4、信号选择端MUX4和数据输出端MUX4;将第二数据输入端MUX4接入数据输入端CB;信号选择端MUX4接入使能端CB;将数据输出端ERe1接入数据输出端CB和第一数据输入端MUX4;将时钟输入端E2和时钟输入端ERe1接入时钟输入端CB;将用户使能端E2接入用户使能端CB;将有效沿输出端E2接入使能端ERe1;和将数据输出端MUX4接入数据输入端ERe1。图14中D2表示接入数据输入端CB的数据信号、Q2表示数据输出端CB输出的采样数据、C2表示接入用户使能端CB的用户时钟、MC2表示接入时钟输入端CB的时钟信号、EN2表示接入使能端CB的使能信号。需要说明的是,MUX4用于实现当使能端CB接入的使能信号有效时,则驱动MUX4选择将数据输入端CB输入的数据信号D2输出给数据输入端ERe1;否则驱动MUX4选择将数据输出端CB输出的数据信号Q2输出给数据输入端ERe1。作为一个优选实施例,有效沿被设置为上升沿或下降沿。其中,有效沿为用户时钟的有效沿和/或主时钟′的有效沿。
在IC设计中,时序单元之间的组合逻辑中存在锚点,锚点为时序单元输出的生成时钟在经过组合逻辑电路的处理之后经过多个分支输出端口输出处理后的生成时钟,每个分支输出端口称为一个锚点,将每个锚点接入对应时钟模型的时钟输入端。由于接入同一个锚点的用户时钟完全相同,相同的用户时钟经过不同时钟模型的时钟检测器输出的用户时钟有效沿的结果相同,因此为了节约硬件资源,将接入同一个锚点的时钟模型设置为共用同一个时钟检测器检测用户时钟的有效沿。作为一个示例,为了更好的理解本发明中的锚点,请参阅图15,图15中包括4个已经修改完成的时钟模型EMU1-EMU4,其中时钟模型EMU1可以是时钟模型CA或者时钟模型CB,时钟模型CA和时钟模型CB预留的外接端口相同,在图15中以D表示数据输入端、Q表示数据输出端、Ev表示用户使能端、MC表示时钟输入端,其中,EMU1的用户使能端Ev和EMU4的用户使能端Ev接入同一个锚点anchor1,EMU2的用户使能端Ev和EMU3的用户使能端Ev接入同一个锚点anchor2,接入EMU1和EMU4的用户时钟UC1相同,接入EMU2和EMU3的用户时钟UC2相同,对于时钟检测器来说,当输入的用户时钟相同时,其时钟检测器的输出结果相同,因此接入相同用户时钟的时钟模型可以共用同一个时钟检测器,也即EMU1和EMU4共用同一个时钟检测器,EMU2和EMU3共用同一个时钟检测器。
共用时钟检测器的组合包括以下三种实施例。
作为一个优选实施例,对于不同类型的时钟模型接入同一个锚点的情况,请参阅附图16,其中,在S1,所述多个时序单元包括:时序单元A1和时序单元B1;在S2:时序单元A1被标识为A组,时序单元B1被标识为B组;在S3.1:时序单元A1被替换为时钟模型CA1,时钟模型CA1被设置为包括数据输入端CA1、数据输出端CA1、用户使能端CA1和时钟输入端CA1;在S3.2:时序单元B1被替换为时钟模型CB1,时钟模型CB1被设置为包括数据输入端CB1、数据输出端CB1、用户使能端CB1和时钟输入端CB1;S3还包括:为时钟模型CA1设置采样单元CA1s;为采样单元CA1s设置数据输入端CA1s、使能端CA1s、时钟输入端CA1s和数据输出端CA1s;为时钟模型CB1设置采样单元CB1s;为采样单元CB1s设置数据输入端CB1s、使能端CB1s、时钟输入端CB1s和数据输出端CB1s;辨识用户使能端CA1接入的锚点,和若用户使能端CB1被接入所述锚点:为时钟模型CA1和时钟模型CB1共同设置时钟检测器E12;为时钟检测器E12设置用户使能端E12、时钟输入端E12和有效沿输出端E12;将用户使能端E12接入所述锚点、用户使能端CA1和用户使能端CB1;将时钟输入端E12接入时钟输入端CA1s、时钟输入端CA1、时钟输入端CB1s和时钟输入端CB1;将有效沿输出端E12接入使能端CA1s和使能端CB1s;将数据输入端CA1s接入数据输入端CA1;将数据输出端CA1s接入数据输出端CA1;将数据输入端CB1s接入数据输入端CB1;将数据输出端CB1s接入数据输出端CB1。如图16所示,C1表示接入用户使能端CA的用户时钟A、同时也表示接入用户使能端CB的用户时钟B;MC1表示接入时钟输入端CA的主时钟′、同时也表示接入时钟输入端CB的主时钟′。通过使接入同一个锚点的时钟模型CA和时钟模型CB共用一个时钟检测器,不仅能够得到与未共享时钟检测器相同的有效沿,而且能够大幅度减少了时钟检测器的使用,减少硬件资源的消耗。作为一个优选实施例,对于多个时钟模型CA接入同一个锚点的情况,请参阅附图17,其中在S1,所述多个时序单元包括:时序单元A1和时序单元A2;在S2,时序单元A1和时序单元A2都被标识为A组;在S3.1:时序单元A1被替换为时钟模型CA1,时钟模型CA1被设置为包括数据输入端CA1、数据输出端CA1、用户使能端CA1和时钟输入端CA1;时序单元A2被替换为时钟模型CA2,时钟模型CA2被设置为包括数据输入端CA2、数据输出端CA2、用户使能端CA2和时钟输入端CA2;S3还包括:为时钟模型CA1设置采样单元CA1s,为采样单元CAs1设置数据输入端CA1s、使能端CA1s、时钟输入端CA1s和数据输出端CA1s;为时钟模型CA2设置采样单元CA2s;为采样单元CA2s设置数据输入端CA2s、使能端CA2s、时钟输入端CA2s和数据输出端CA2s;辨识用户使能端CA1接入的锚点;和若用户使能端CA2被接入所述锚点:为时钟模型CA1和时钟模型CA2共同设置时钟检测器E12;为时钟检测器E12设置用户使能端E12、时钟输入端E12和有效沿输出端E12;将用户使能端E12接入所述锚点、用户使能端CA1和用户使能端CA2;将时钟输入端E12接入时钟输入端CA1s、时钟输入端CA1、时钟输入端CA2s和时钟输入端CA2;将有效沿输出端E12接入使能端CA1s和使能端CA2s;将数据输入端CA1s接入数据输入端CA1;将数据输出端CA1s接入数据输出端CA1;将数据输入端CA2s接入数据输入端CA2;和将数据输出端CA2s接入数据输出端CA2。如图17所示,由于时钟检测器E12共用,C1既表示接入用户使能端CA1的用户时钟A,同时也表示接入用户使能端CA2的用户时钟A;MC1既表示接入时钟输入端CA1的主时钟′,同时也表示接入时钟输入端CA2的主时钟′。通过使接入同一个锚点的两个或两个以上的时钟模型CA共用一个时钟检测器,不仅能够得到与未共享时钟检测器相同的有效沿,而且能够大幅度减少了时钟检测器的使用,减少硬件资源的消耗。作为一个优选实施例,对于多个时钟模型CB接入同一个锚点的情况,请参阅附图18,其中在S1,所述多个时序单元包括:时序单元B1和时序单元B2;在S2,时序单元B1和时序单元B2都被标识为B组;在S3.1:时序单元B1被替换为时钟模型CB1,时钟模型CB1被设置为包括数据输入端CB1、数据输出端CB1、用户使能端CB1和时钟输入端CB1;时序单元B2被替换为时钟模型CB2,时钟模型CB2被设置为包括数据输入端CB2、数据输出端CB2、用户使能端CB2和时钟输入端CB2;S3还包括:为时钟模型CB设置采样单元CB1s,为采样单元CB1s设置数据输入端CB1s、使能端CB1s、时钟输入端CB1s和数据输出端CB1s;为时钟模型CB设置采样单元CB2s,为采样单元CB2s设置数据输入端CB2s、使能端CB2s、时钟输入端CB2s和数据输出端CB2s;辨识用户使能端CB1接入的锚点;若用户使能端CB2被接入所述锚点:为时钟模型CB1和时钟模型CB2共同设置缘检测器E12;时钟检测器E12设置用户使能端E12、时钟输入端E12和有效沿输出端E12;将用户使能端E12接入所述锚点、用户使能端CB1和用户使能端CB2;将时钟输入端E12接入时钟输入端CB1s、时钟输入端CB1、时钟输入端CB2s和时钟输入端CB2;将有效沿输出端E12接入使能端CB1s和使能端CB2s;将数据输入端CB1s接入数据输入端CB1;将数据输出端CB1s接入数据输出端CB1;将数据输入端CB2s接入数据输入端CB2;和将数据输出端CB2s接入数据输出端CB2。如图18所示,由于时钟检测器E12共用,C2既表示接入用户使能端CB1的用户时钟B,同时也表示接入用户使能端CB2的用户时钟B;MC2既表示接入时钟输入端CB1的主时钟′,同时也表示接入时钟输入端CB2的主时钟′。通过使接入同一个锚点的两个或两个以上的时钟模型CB共用一个时钟检测器,不仅能够得到与未共享时钟检测器相同的有效沿,而且能够大幅度减少了时钟检测器的使用,减少硬件资源的消耗。
请再次参阅图3,图3中示出了修改前后的对比图,为了使附图更好的表达替换前后之间的关系,在该附图中用相同字母表示替换前后各个端口所接入的信号不变。请参阅图3中a部分附图,其示出了在修改前的IC设计的时序单元之间的结构,对于替换前的任意一个寄存器FFi,FFi包括时钟输入端C、数据输入端D和数据输出端Q,其中Lo为组合逻辑电路,在FFi的时钟输入端C被接入用户时钟UCi、数据输入端D被接入数据信号Di和数据输出端Q输出数据信号Qi。请参阅图3中b部分附图,其示出了在修改后时钟模型的结构示意图,为了更好的表达端口之间的关系,在b部分附图中依然采用D表示时钟模型CA的数据输入端CA或者时钟模型CB的数据输入端CB、以C表示时钟模型CA的时钟输入端CA或者时钟模型CB的时钟输入端CB、以Q表示时钟模型CA的数据输出端CA或者时钟模型CB的数据输出端CB、以Ev标识时钟模型CA的用户使能端CA或者时钟模型CB的用户使能端CB,将FFi修改为时钟模型CAi,其中,Di被接入CAi的数据输入端D、UCi被接入CAi的用户使能端Ev、CAi的数据输出端Q输出数据信号Qi、CAi的时钟输入端C被接入主时钟′。采用相同的方法将FFj替换为时钟模型CAj,将FFp替换为时钟模型CBp,将CAi、CAj和CBp的时钟输入端分别接入相应的时钟信号MC。
其中,替换后的电路中包括串联的第p个时钟模型CA和第g个时钟模型CB,且第p个时钟模型CA的用户使能端CA和第g个时钟模型模型CB的用户使能端CB接入同一个用户时钟。其中,串联关系为前一级时钟模型的数据输出端连接后一级时钟模型的数据输入端。其中,替换后的电路中还包括串联的第v个时钟模型CB和第q个时钟模型CB,且第v个时钟模型CB的用户使能端CB和第q个时钟模型CB的用户使能端CB接入同一个用户时钟。其中第v个时钟模型CB和第q个时钟模型CB还可以接入同一个主时钟′。采用两个时钟模型CA能够解决级联结构中采用时钟模型CB导致的时序错乱问题。
3.3)将主时钟′设置为:使接入任何时钟模型CA的主时钟′在一周期内的同一时点TA触发有效沿;使接入任何时钟模型CB的主时钟′在一周期内的同一时点TB触发有效沿;和在主时钟′的同一周期内,使TB=TA+Δt,其中:最小阈值<Δt<主时钟′的时钟周期;所述最小阈值为在接入用来替换被标识为B组的时序单元的各时钟模型CB的用户时钟B中,各用户时钟B的延时中的最大值;所述延时为在所述各时钟模型CB内的时钟检测器上,接入所述时钟检测器的用户时钟B的有效沿发生时点与从所述时钟检测器输出的所述用户时钟B的有效沿发生时点间的时间差。
可选的,用户时钟的有效沿被设置为上升沿或者下降沿。可选的,S3还包括:时钟模型CA和时钟模型CB的主时钟′的有效沿被设置为以下任意一种:将接入时钟模型CA的主时钟′的有效沿设置为上升沿触发或下降沿触发;将接入时钟模型CB的主时钟′的有效沿设置为上升沿触发或下降沿触发。当时钟模型CA和时钟模型CB的主时钟′的有效沿均被设置为上升沿触发,上升沿之间的时钟偏移为Δt;或者均被设置为下降沿触发,下降沿之间的时钟偏移为Δt;或者时钟模型CA的主时钟′有效沿被设置为上升沿触发且时钟模型CB的主时钟′有效沿被设置为下降沿触发,上升沿与下降沿之间的时钟偏移为Δt;或者时钟模型CA的主时钟′有效沿被设置为下降沿触发,时钟模型CB的主时钟′有效沿被设置为上升沿触发,下降沿与上升沿之间的时间偏移为Δt。
进一步,S3还包括:将时钟模型CA和时钟模型CB接入同一个主时钟′;若时钟模型CA被设置为上升沿触发且时钟模型CB被设置为下降沿触发,将所述主时钟′中高电平持续的时间设置为所述Δt;若时钟模型CA被设置为下降沿触发且时钟模型CB被设置为上升沿触发,将所述主时钟′中低电平持续的时间设置为所述Δt。当时钟模型CA和时钟模型CB接入同一个主时钟′,且时钟模型CA的主时钟′有效沿为上升沿触发,时钟模型CB的主时钟′有效沿为下降沿触发时,主时钟′中高电平持续的时间为Δt;当时钟模型CA和时钟模型CB接入同一个主时钟′,且时钟模型CA的主时钟′有效沿为下降沿触发,时钟模型CB的主时钟′有效沿为上升沿触发时,主时钟′中低电平持续的时间为Δt。
可选的,当有效沿被设置为上升沿触发时,时钟检测器采用检测上升沿的时钟检测器,如图1中的时钟检测器E1。当有效沿被设置为下降沿触发时,时钟检测器采样检测下降沿的时钟检测器,此时时钟检测器采样检测下降沿的时钟检测器,检测下降沿的时钟检测器与时钟检测器E1不同的是,第三基本存储单元Re3的数据输出端Re3直接接入与门电路的第二数据输入端A1,非门电路A0被设置为非门电路的非门输入端接入用户使能端E1,非门输出端接入与门电路的第一数据输入端A1。现有技术中能够实现检测上升沿、下降沿或者双边沿的时钟检测器均落入本发明的保护范围之内。
其中,将A组内的时序单元替换为时钟模型CA能够减少引入的时钟域的数量,进而减少BUFG的资源开销。将B组中的时序单元替换为时钟模型CB,由于时钟模型CB的结构简单,能够有效的减少资源消耗。A组和B组的配合能够降低系统的整体资源消耗量,不仅能够解决毛刺的问题,同时能够平衡全部采用时钟模型CA修改时序单元导致硬件资源开销大的问题以及全部采用时钟模型CB导致的时序域多且时序混乱的问题。
需要说明的是,时钟模型CB的数量大于时钟模型CA的数量,在实际电路中,被标识为B组的时序单元的数量会远大于被标识为A组的时序单元的数量,因此在替换之后能够更多的使用时钟模型CB,进一步的降低系统的资源消耗。
其中,对于B组中的时钟模型CB,当第j个时序单元的数据输出端的数据信号与第g个时序单元的数据输入端连接时,第j个时序单元和第g个时序单元均被修改为时钟模型CB。对于串联的两个时钟模型CB,在两者接入的主时钟′相同的情况下,这两个时钟模型CB的时序也是完全相同的,不会导致时序错乱的问题,同时减少了系统的资源消耗。
作为一个优选实施例,所述方法还包括:其中:在S1,所述多个时序单元包括:时序单元A1、时序单元B1和时序单元B2;在S2:时序单元A1被标识为A组、时序单元B1被标识为B组和时序单元B2被标识为B组;在S3.1:时序单元A1被替换为时钟模型CA1、时钟模型CA1被设置为包括数据输入端CA1;在S3.2:时序单元B1被替换为时钟模型CB1,时钟模型CB1被设置为包括数据输入端CB1和数据输出端CB1;时序单元B2被替换为时钟模型CB2,时钟模型CB2被设置为包括数据输入端CB2和数据输出端CB2;数据输出端CB1接入数据输入端CB2、数据输出端CB2接入数据输入端CA1、数据从数据输出端CB2被传送到数据输入端CA1具有偏移时间;S3还包括S3.4:改将时序单元B2标示为A组,包括:3.4.1)依S3.1修改时序单元B2;3.4.2)依S3.3设置主时钟′,使数据从数据输出端CB1被传输到数据输出端CB2具有所述偏移时间。通过调整时钟替换模型的类型转移偏移时间,进一步增大系统的最大时钟频率,提高系统的性能。
需要说明的是,A组中所有时钟模型CA为同一个时钟域。时钟域引入的越少,所需BUFG的资源越少,能够进一步的节约系统的资源消耗,通过控制一个主时钟′就可以使整个系统同时启动和暂停。
需要说明的是,B组中所有时钟模型CB接入的主时钟′相同。
作为一个优选实施例,F(x-tM)的获取步骤包括:获取时钟信号Tc;将时钟信号Tc进行X分频,得到分频信号,所述分频信号为F(x);将分频信号延迟时间tM,得到F(x-tM)。依次类推,其他节点的主时钟′的波形均可以通过该方式获取。可以理解的是,分频之后的分频信号的时钟频率为时钟信号Tc的1/X倍。通过将时钟信号进行分频分别得到第一时钟替换模型和第二时钟替换模型的时钟信号,能够进一步的减少时钟域的引入。其中时钟信号Tc可以为晶振信号。
可选的,将时钟信号Tc进行X分频的方法为:将时钟信号Tc输入分频器得到分频信号。其中,X大于0。
可选的,将分频信号延迟时间τ的方法为:将分频信号输入延时电路。
S4)得到修改后的IC设计;
S5)将所述修改后的IC设计写入所述FPGA;和
S6)在被写入所述修改后的IC设计的所述FPGA上验证所述IC设计。
综上所述,本发明实施例提供了一种在FPGA上仿真IC设计的方法,首先识别时序单元的端口,当时序单元的数据输出端接入另一个时序单元的用户时钟输入端时,将所述时序单元标识为A组;当时序单元的数据输出端不接入所述另一个时序单元的用户时钟输入端且接入所述另一个时序单元的数据输入端,将所述时序单元标识为B组;将A组中的所有时序单元修改为时钟模型CA,将B组中的所有时序单元修改为时钟模型CB;时钟模型CA和时钟模型CB通过将具有毛刺的用户时钟接入对毛刺不敏感的用户使能端,解决了毛刺的问题;将A组中的时钟模型CA接入同一个主时钟′,B组中的时钟模型CB接入同一个主时钟′,能够大幅度的降低时钟域的数量,不仅能够降低资源开销,而且通过控制更少的主时钟′使整个系统同时启动和暂停;通过设置接入时钟模型CA的主时钟′和接入时钟模型CB的主时钟′之间的时钟偏移使得两者在同一个时钟周期内采样。
基于与上述方法实施例相同的发明构思,本发明实施例还提供了一种在FPGA上仿真IC设计的系统,包括处理器和与所述处理器通信连接的存储介质,其中:当所述处理器执行在所述存储介质内的程序时,所述系统可实施上述任意一种实施例提供的一种在FPGA上仿真IC设计的方法。
其中,处理器可以包括一个或多个处理核心,比如4核心处理器、12核心处理器等。处理器可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU;协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器可以集成有图像处理器(Graphics Processing Unit,GPU),GPU用于负责显示器所需要显示的内容的渲染和绘制。一些实施例中,处理器还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。
其中,存储介质是计算机设备中的记忆设备,用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息。可以理解的是,此处的存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备所支持的扩展存储介质。存储介质提供存储空间,在该存储空间中还存放了适于被处理器加载并执行的一条或多条计算机指令,这些计算机指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(Non-volatile Memory),例如存储介质包括RAM、ROM、可擦除可编程只读存储器(Erasable Programmable Read-only Memory,EPROM)、带电可擦可编程只读存储器(Electrically ErasableProgrammable Read-only Memory,EEPROM)、闪存或其他固态存储其技术,CD-ROM、数字多功能光盘(Digital Video Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备等。当然,本领域技术人员可知计算机存储介质不局限于上述几种。
基于与上述方法实施例相同的发明构思,本发明实施例提供了一种非瞬时性计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现上述任意一个方法实施例所提供的一种在FPGA上仿真IC设计的方法,其中一种在FPGA上仿真IC设计的方法在上述方法实施例中已经详细说明,不再赘述。
Claims (22)
1.一种在FPGA上仿真IC设计的方法,包括:
S2)将所述多个时序单元标识为A组或B组,包括:
若时序单元的数据输出端接入另一个时序单元的用户时钟输入端,将所述时序单元标识为A组;
若时序单元的数据输出端不接入所述另一个时序单元的用户时钟输入端且接入所述另一个时序单元的数据输入端,将所述时序单元标识为B组;
S3)修改所述多个时序单元,包括:
3.1)修改被标识为A组的时序单元,包括:
3.1.1)为时钟模型CA设置数据输入端CA、数据输出端CA、用户使能端CA和时钟输入端CA;
3.1.2)将时序单元A替换为时钟模型CA,包括:
将时序单元的数据输入端和数据输出端分别对应的修改为数据输入端CA和数据输出端CA;将时序单元A的用户时钟输入端A修改为用户使能端CA;将主时钟′接入时钟输入端CA,其中:所述主时钟′的频率大于或等于所述主时钟的频率;
设置时钟模型CA,包括:在主时钟′的每个有效沿对来自数据输入端CA的信号采样,获得在以所述有效沿为起点的一个主时钟′的周期内的采样数据;当用户时钟A第N次发生有效沿时:获得主时钟′在当前周期内的采样数据,向数据输出端CA输出采样数据,直到用户时钟A第N+1次发生有效沿为止;
3.2)修改被标识为B组的时序单元,包括:
3.2.1)为时钟模型CB设置数据输入端CB、数据输出端CB、用户使能端CB和时钟输入端CB;
3.2.2)将时序单元B替换为时钟模型CB,包括:
将时序单元B的数据输入端和数据输出端分别对应的修改为数据输入端CB和数据输出端CB;将用户时钟输入端B修改为用户使能端CB;将主时钟′接入时钟输入端CB;
设置时钟模型CB,包括:
当用户时钟B的有效沿发生时且主时钟′的有效沿发生时:对来自数据输入端CB的信号采样,获得在以主时钟′的所述有效沿为起点的一个主时钟′的周期内的采样数据;向数据输出端CB输出采样数据。
2.根据权利要求1所述的方法,其特征在于,S3还包括:
3.3)将主时钟′设置为:
使接入任何时钟模型CA的主时钟′在一周期内的同一时点TA触发有效沿;
使接入任何时钟模型CB的主时钟′在一周期内的同一时点TB触发有效沿;和
在主时钟′的同一周期内,使TB=TA+Δt,其中:
最小阈值<Δt<主时钟′的时钟周期;
所述最小阈值为在接入用来替换被标识为B组的时序单元的各时钟模型CB的用户时钟B中,各用户时钟B的延时中的最大值;和
所述延时为在所述各时钟模型CB内的时钟检测器上,接入所述时钟检测器的用户时钟B的有效沿发生时点与从所述时钟检测器输出的所述用户时钟B的有效沿发生时点间的时间差。
3.根据权利要求1所述的方法,所述方法还包括:
S1,识别多个时序单元包括:
时序单元A1;
时序单元B1;和
时序单元B2;
在S2:
时序单元A1被标识为A组;
时序单元B1被标识为B组;和
时序单元B2被标识为B组;
在S3.1:
时序单元A1被替换为时钟模型CA1;和
时钟模型CA1被设置为包括数据输入端CA1;
在S3.2:
时序单元B1被替换为时钟模型CB1;
时钟模型CB1被设置为包括数据输入端CB1和数据输出端CB1;
时序单元B2被替换为时钟模型CB2;和
时钟模型CB2被设置为包括数据输入端CB2和数据输出端CB2;
数据输出端CB1接入数据输入端CB2;
数据输出端CB2接入数据输入端CA1;
数据从数据输出端CB2被传送到数据输入端CA1具有偏移时间;和
S3还包括S3.4:
S3.4)改将时序单元B2标示为A组,包括:
3.4.1)依S3.1修改时序单元B2;
3.4.2)依S3.3设置主时钟′,使数据从数据输出端CB1被传输到数据输出端CB2具有所述偏移时间。
4.根据权利要求1所述的方法,其中S3.1还包括:
为时钟模型CA设置时钟检测器E1和采样单元CAs;
为时钟检测器E1设置用户使能端E1、时钟输入端E1和有效沿输出端E1;
为采样单元CAs设置数据输入端CAs、使能端CAs、时钟输入端CAs和数据输出端CAs;
将用户使能端E1接入用户使能端CA;
将时钟输入端E1和时钟输入端CAs接入时钟输入端CA;
将有效沿输出端E1接入使能端CAs;
将数据输入端CAs接入数据输入端CA;和
将数据输出端CAs接入数据输出端CA。
5.根据权利要求4所述的方法,其中S3.1还包括:
为采样单元CAs设置第一基本存储单元Re1、第二基本存储单元Re2和多路选择器MUX1;
为第一基本存储单元Re1设置时钟输入端Re1、数据输入端Re1和数据输出端Re1;
为第二基本存储单元Re2设置时钟输入端Re2、数据输入端Re2和数据输出端Re2;
为多路选择器MUX1设置第一数据输入端MUX1、第二数据输入端MUX1、信号选择端MUX1和数据输出端MUX1;
将数据输入端Re1接入数据输入端CAs;
将数据输出端MUX1接入数据输出端CAs;
将时钟输入端Re1和时钟输入端Re2接入时钟输入端CAs;
将数据输出端Re1接入第一数据输入端MUX1;
将数据输入端Re2接入数据输出端MUX1;
将数据输出端Re2接入第二数据输入端MUX1;和
将使能端CAs接入信号选择端MUX1。
6.根据权利要求1所述的方法,其中:
S2还包括在所述时序单元上辨识出:
数据输入端;
用户时钟输入端;
数据输出端;和
使能端;和
S3.1还包括:
为时钟模型CA设置数据输入端CA、数据输出端CA、用户使能端CA、时钟输入端CA和使能端CA;
为时钟模型CA设置时钟检测器E1、第一基本存储单元Re1、第二基本存储单元Re2、多路选择器MUX1和多路选择器MUX2;
为时钟检测器E1设置用户使能端E1、时钟输入端E1和有效沿输出端E1;
为第一基本存储单元Re1设置时钟输入端Re1、数据输入端Re1和数据输出端Re1;
为第二基本存储单元Re2设置时钟输入端Re2、数据输入端Re2和数据输出端Re2;
为多路选择器MUX1设置第一数据输入端MUX1、第二数据输入端MUX1、信号选择端MUX1和数据输出端MUX1;
为多路选择器MUX2设置第一数据输入端MUX2、第二数据输入端MUX2、信号选择端MUX2和数据输出端MUX2;
将第二数据输入端MUX2接入数据输入端CA;
将数据输出端MUX1接入数据输出端CA、数据输入端Re2和第一数据输入端MUX2;
将时钟输入端Re1、时钟输入端Re2和时钟输入端E1接入时钟输入端CA;
将用户使能端E1接入用户使能端CA;
将有效沿输出端E1接入信号选择端MUX1;
将数据输出端Re2接入第二数据输入端MUX1;
将使能端CA接入信号选择端MUX2;
将数据输出端MUX2接入数据输入端Re1;和
将数据输出端Re1接入第一数据输入端MUX1。
7.根据权利要求5或6所述的方法,其中:
第一基本存储单元Re1被设置为寄存器或锁存器;和
第二基本存储单元Re2被设置为寄存器或锁存器。
8.根据权利要求1所述的方法,其中S3.2还包括:
为时钟模型CB设置时钟检测器E2和采样单元CBs;
为时钟检测器E2设置用户使能端E2、时钟输入端E2和有效沿输出端E2;
为采样单元CBs设置时钟输入端CBs、使能端CBs、数据输入端CBs、数据输出端CBs;
将数据输入端CBs接入数据输入端CB;
将数据输出端CBs接入数据输出端CB;
将时钟输入端E2和时钟输入端CBs接入时钟输入端CB;
将用户使能端E2接入用户使能端CB;和
将有效沿输出端E2接入使能端CBs。
9.根据权利要求8所述的方法,其中:采样单元CBs被设置为具有使能端的寄存器。
10.根据权利要求8所述的方法,其中S3.2还包括:
为采样单元CBs设置第四基本存储单元Re4和多路选择器MUX3;
为第四基本存储单元Re4设置时钟输入端Re4、数据输入端Re4和数据输出端Re4;
为多路选择器MUX3设置第一数据输入端MUX3、第二数据输入端MUX3、信号选择端MUX3和数据输出端MUX3;
将第一数据输入端MUX3接入数据输入端CBs;
将数据输出端Re4接入第二数据输入端MUX3和数据输出端CBs;
将时钟输入端Re4接入时钟输入端CBs;
将信号选择端MUX3接入使能端CBs;和
将数据输出端MUX3接入数据输入端Re4。
11.根据权利要求1所述的方法,其中S3.2还包括:
为时钟模型CB设置第三基本存储单元Re3、第四基本存储单元Re4和查找表LUT1;
为第三基本存储单元Re3设置时钟输入端Re3、数据输入端Re3和数据输出端Re3;
为第四基本存储单元Re4设置时钟输入端Re4、数据输入端Re4和数据输出端Re4;
为查找表LUT1设置第一数据输入端LUT1、第二数据输入端LUT1、第三数据输入端LUT1、第四数据输入端LUT1和数据输出端LUT1;
将第二数据输入端LUT1接入数据输入端CB;
将数据输出端Re4接入第一数据输入端LUT1和数据输出端CB;
将时钟输入端Re3和时钟输入端Re4接入时钟输入端CB;
将数据输入端Re3和第三数据输入端LUT1接入用户使能端CB;
将数据输出端Re3接入第四数据输入端LUT1;和
将数据输出端LUT1接入数据输入端Re4。
12.根据权利要求1所述的方法,其中:
S2还包括在所述时序单元上辨识出:
数据输入端;
用户时钟输入端;
数据输出端;和
使能端;和
S3.2还包括:
为时钟模型CB设置数据输入端CB、数据输出端CB、用户使能端CB、时钟输入端CB和使能端CB;
为时钟模型CB设置时钟检测器E2、存储单元ERe1和多路选择器MUX4;
为时钟检测器E2设置用户使能端E2、时钟输入端E2和有效沿输出端E2;
为存储单元ERe1设置时钟输入端ERe1、使能端ERe1、数据输入端ERe1、数据输出端ERe1;
为多路选择器MUX4设置第一数据输入端MUX4、第二数据输入端MUX4、信号选择端MUX4和数据输出端MUX4;
将第二数据输入端MUX4接入数据输入端CB;
将信号选择端MUX4接入使能端CB;
将数据输出端ERe1接入数据输出端CB和第一数据输入端MUX4;
将时钟输入端E2和时钟输入端ERe1接入时钟输入端CB;
将用户使能端E2接入用户使能端CB;
将有效沿输出端E2接入使能端ERe1;和
将数据输出端MUX4接入数据输入端ERe1。
13.根据权利要求11所述的方法,其中:第三基本存储单元Re3被设置为寄存器或锁存器。
14.根据权利要求10或11所述的方法,其中:第四基本存储单元Re4被设置为寄存器或锁存器。
15.根据权利要求1所述的方法,其中S3还包括:
将接入时钟模型CA的主时钟′的有效沿设置为上升沿触发或下降沿触发;和
将接入时钟模型CB的主时钟′的有效沿设置为上升沿触发或下降沿触发。
16.根据权利要求15所述的方法,其中S3还包括:
将时钟模型CA和时钟模型CB接入同一个主时钟′;
若时钟模型CA被设置为上升沿触发且时钟模型CB被设置为下降沿触发,将所述主时钟′中高电平持续的时间设置为所述Δt;和
若时钟模型CA被设置为下降沿触发且时钟模型CB被设置为上升沿触发,将所述主时钟′中低电平持续的时间设置为所述Δt。
17.根据权利要求1所述的方法,所述方法还包括:
S1,识别多个时序单元包括:
时序单元A1;和
时序单元B1;
在S2:
时序单元A1被标识为A组;和
时序单元B1被标识为B组;
在S3.1:
时序单元A1被替换为时钟模型CA1;和
时钟模型CA1被设置为包括数据输入端CA1、数据输出端CA1、用户使能端CA1和时钟输入端CA1;
在S3.2:
时序单元B1被替换为时钟模型CB1;和
时钟模型CB1被设置为包括数据输入端CB1、数据输出端CB1、用户使能端CB1和时钟输入端CB1;
S3还包括:
为时钟模型CA1设置采样单元CA1s;
为采样单元CA1s设置数据输入端CA1s、使能端CA1s、时钟输入端CA1s和数据输出端CA1s;
为时钟模型CB1设置采样单元CB1s;
为采样单元CB1s设置数据输入端CB1s、使能端CB1s、时钟输入端CB1s和数据输出端CB1s;
辨识用户使能端CA1接入的锚点;和
若用户使能端CB1被接入所述锚点:
为时钟模型CA1和时钟模型CB1共同设置时钟检测器E12;
为时钟检测器E12设置用户使能端E12、时钟输入端E12和有效沿输出端E12;
将用户使能端E12接入所述锚点、用户使能端CA1和用户使能端CB1;
将时钟输入端E12接入时钟输入端CA1s、时钟输入端CA1、时钟输入端CB1s和时钟输入端CB1;
将有效沿输出端E12接入使能端CA1s和使能端CB1s;
将数据输入端CA1s接入数据输入端CA1;
将数据输出端CA1s接入数据输出端CA1;
将数据输入端CB1s接入数据输入端CB1;和
将数据输出端CB1s接入数据输出端CB1。
18.根据权利要求1所述的方法,所述方法还包括:
S1,识别多个时序单元包括:
时序单元A1;和
时序单元A2;
在S2,时序单元A1和时序单元A2都被标识为A组;
在S3.1:
时序单元A1被替换为时钟模型CA1;
时钟模型CA1被设置为包括数据输入端CA1、数据输出端CA1、用户使能端CA1和时钟输入端CA1;
时序单元A2被替换为时钟模型CA2;和
时钟模型CA2被设置为包括数据输入端CA2、数据输出端CA2、用户使能端CA2和时钟输入端CA2;
S3还包括:
为钟模型CA1设置采样单元CA1s;
为采样单元CAs1设置数据输入端CA1s、使能端CA1s、时钟输入端CA1s和数据输出端CA1s;
为时钟模型CA2设置采样单元CA2s;
为采样单元CA2s设置数据输入端CA2s、使能端CA2s、时钟输入端CA2s和数据输出端CA2s;
辨识用户使能端CA1接入的锚点;和
若用户使能端CA2被接入所述锚点:
为时钟模型CA1和时钟模型CA2共同设置时钟检测器E12;
为时钟检测器E12设置用户使能端E12、时钟输入端E12和有效沿输出端E12;
将用户使能端E12接入所述锚点、用户使能端CA1和用户使能端CA2;
将时钟输入端E12接入时钟输入端CA1s、时钟输入端CA1、时钟输入端CA2s和时钟输入端CA2;
将有效沿输出端E12接入使能端CA1s和使能端CA2s;
将数据输入端CA1s接入数据输入端CA1;
将数据输出端CA1s接入数据输出端CA1;
将数据输入端CA2s接入数据输入端CA2;和
将数据输出端CA2s接入数据输出端CA2。
19.根据权利要求1所述的方法,所述方法还包括:
S1,识别多个时序单元包括:
时序单元B1;和
时序单元B2;
在S2,时序单元B1和时序单元B2都被标识为B组;
在S3.1:
时序单元B1被替换为时钟模型CB1;
时钟模型CB1被设置为包括数据输入端CB1、数据输出端CB1、用户使能端CB1和时钟输入端CB1;
时序单元B2被替换为时钟模型CB2;和
时钟模型CB2被设置为包括数据输入端CB2、数据输出端CB2、用户使能端CB2和时钟输入端CB2;
S3还包括:
为钟模型CB1设置采样单元CB1s;
为采样单元CBs1设置数据输入端CB1s、使能端CB1s、时钟输入端CB1s和数据输出端CB1s;
为时钟模型CB2设置采样单元CB2s;
为采样单元CB2s设置数据输入端CB2s、使能端CB2s、时钟输入端CB2s和数据输出端CB2s;
辨识用户使能端CB1接入的锚点;和
若用户使能端CB2被接入所述锚点:
为时钟模型CB1和时钟模型CB2共同设置时钟检测器E12;
为时钟检测器E12设置用户使能端E12、时钟输入端E12和有效沿输出端E12;
将用户使能端E12接入所述锚点、用户使能端CB1和用户使能端CB2;
将时钟输入端E12接入时钟输入端CB1s、时钟输入端CB1、时钟输入端CB2s和时钟输入端CB2;
将有效沿输出端E12接入使能端CB1s和使能端CB2s;
将数据输入端CB1s接入数据输入端CB1;
将数据输出端CB1s接入数据输出端CB1;
将数据输入端CB2s接入数据输入端CB2;和
将数据输出端CB2s接入数据输出端CB2。
20.根据权利要求1所述的方法,还包括:
S4)得到修改后的IC设计;
S5)将所述修改后的IC设计写入所述FPGA;和
S6)在被写入所述修改后的IC设计的所述FPGA上验证所述IC设计。
21.一种在FPGA上仿真IC设计的系统,包括处理器和与所述处理器通信连接的存储介质,其中:当所述处理器执行在所述存储介质内的程序时,所述系统可实施根据权利要求1~20中任一项所述的方法。
22.一种非瞬时性计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,其中:所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1-20中任意一项的所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2023/109197 WO2024041291A1 (en) | 2022-08-24 | 2023-07-25 | Method and system for emulating ic design with fpga, and storage medium |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2022110184608 | 2022-08-24 | ||
CN202211018460 | 2022-08-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117634385A true CN117634385A (zh) | 2024-03-01 |
Family
ID=90022342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310658649.1A Pending CN117634385A (zh) | 2022-08-24 | 2023-06-05 | 在fpga上仿真ic设计的方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117634385A (zh) |
-
2023
- 2023-06-05 CN CN202310658649.1A patent/CN117634385A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7721174B2 (en) | Full-speed BIST controller for testing embedded synchronous memories | |
US6453425B1 (en) | Method and apparatus for switching clocks presented to synchronous SRAMs | |
US7586337B2 (en) | Circuit for switching between two clock signals independently of the frequency of the clock signals | |
EP3125430A2 (en) | Double sampling state retention flip-flop | |
KR20130058719A (ko) | 듀얼 트리거 저에너지 플립 플롭 회로 | |
US8493108B2 (en) | Synchronizer with high reliability | |
US9954534B2 (en) | Methods and circuits for preventing hold time violations | |
US10423795B2 (en) | Method, checking device, and system for determining security of a processor | |
US20070043548A1 (en) | Verifying a simulated hardware environment for a simulated device under test | |
US20160117429A1 (en) | System for reducing power consumption of integrated circuit | |
US10303833B1 (en) | Parallelizing timing-based operations for circuit designs | |
US20130097462A1 (en) | Embedded logic analyzer | |
US6690203B2 (en) | Method and apparatus for a failure-free synchronizer | |
EP1031994B1 (en) | Built-in self-test circuit for memory | |
CN107565936B (zh) | 一种输入时钟稳定电路的逻辑实现装置 | |
US7375571B1 (en) | Glitch free clock multiplexer that uses a delay element to detect a transition-free period in a clock signal | |
US20110181331A1 (en) | Integrated circuit with leakage reduction in static nets | |
US8631292B2 (en) | Multi-threading flip-flop circuit | |
US6389580B1 (en) | Computer readable storage medium having logic synthesis program, and logic synthesis method and apparatus | |
CN117634385A (zh) | 在fpga上仿真ic设计的方法、系统及存储介质 | |
US8751853B2 (en) | Quad-data rate controller and implementing method thereof | |
WO2024041291A1 (en) | Method and system for emulating ic design with fpga, and storage medium | |
CN117634384A (zh) | 在fpga上仿真ic设计的方法、系统及存储介质 | |
US8793548B2 (en) | Integrated circuit, simulation apparatus and simulation method | |
CN103391072B (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 |