讨论下为什么要把时钟产生模块单独拿出来综合吗
时间:10-02
整理:3721RD
点击:
大家好:
在看DC user guide时,看到3-13说综合需要将时钟模块,异步逻辑,边界扫描和核心逻辑要分开来综合,以前看到别的资料上说,可能是想当然了,“这样有利于综合啊”,今天我跟同学讨论这个问题的时候,他说之所以好综合就是因为单独出来之后时钟线容易定义了,所以他坚持时钟模块核核心模块放在一起top-down综合,我找不到别的理由来说明单独出来的好处,有人研究过吗?
3-13说时钟模块单独出来有利于这个模块的例化和仿真,难道就这么简单吗?
在看DC user guide时,看到3-13说综合需要将时钟模块,异步逻辑,边界扫描和核心逻辑要分开来综合,以前看到别的资料上说,可能是想当然了,“这样有利于综合啊”,今天我跟同学讨论这个问题的时候,他说之所以好综合就是因为单独出来之后时钟线容易定义了,所以他坚持时钟模块核核心模块放在一起top-down综合,我找不到别的理由来说明单独出来的好处,有人研究过吗?
3-13说时钟模块单独出来有利于这个模块的例化和仿真,难道就这么简单吗?
我想到一个原因:假设没有分开,用top-down方式综合,那核心逻辑的时钟就是有drive的,而DC综合是需要将drive设为0来综合,这样是不是就会有问题呢。希望高手指点。
问一下set_drive命令会把driving cell的drive改变吗?
有点懵懂,看来蛮深奥,我用了一段时间来,好像没有觉察出其中的区别,有没有实际应用的例子来剖析下!
我说的还不够具体吗?就是你的设计为什么要将时钟模块和核心模块分开呢,这样综合有什么好处呢?
有人研究过吗?等高手!
单独综合时钟是为了理清楚时钟的balance和skew的关系,综合其它逻辑的时候不带时钟,综合器将时钟视为理想时钟,不存在时钟的delay和skew,这样有利于逻辑优化,比如实在不可能在一个cycle内完成的逻辑,就可以采取useful skew,而这个信息在进行时钟综合的时候是有用的。
谢谢你的回答,不过有点不懂。如果把时钟模块和核心模块放在一起综合会有什么问题呢,假设时钟模块里既有门控时钟又有分频电路。能简单的说一下吗?谢谢啊
目前进行的逻辑综合大都是以时序为驱动的,时序单元是逻辑综合中重点要考虑的对象,也就是说时序单元是进行timing分析的基础,而综合器trace时钟路径的时候,其出发点就是时序单元的时钟端,但这种trace无法穿过诸如分频器之类的cell,或者是mux
但是我在定义时钟的时候直接把它定义到分频器或者门控输出的那个net上不就可以了吗?这样不就可以跳过分频的触发器了。
这种是generated clock
