请问为什么Reset、Clock控制器里的电路常用门级cell搭,而不用RTL写
时间:10-02
整理:3721RD
点击:
我看芯片级的Reset、Clock控制电路里,很多都是用门级cell搭的,而不用RTL写。
有些比如说Clock Gating直接例化gating cell可以理解。
但有些,比如说选择器(scan模式和普通模式的选择),也都用库里的门级搭,就不太理解了,为什么要这么做呢?
用RTL写不行吗?
有些比如说Clock Gating直接例化gating cell可以理解。
但有些,比如说选择器(scan模式和普通模式的选择),也都用库里的门级搭,就不太理解了,为什么要这么做呢?
用RTL写不行吗?
我记得是这样的,抛砖引玉,把大牛引出了
如果你自己写的话,每次综合会生成不同的名字(u_mux344,u_mux234),不利于后端找到这个时钟和reset进行优化和布局。
如果你直接调用库里的模块,比如 MX_3_8 u_clk0_clk1(),那么我们每次只要找到u_clk0_clk1就可以,后端脚本固定。
一般时钟电路里会直接调用,MUX,BUF,INV,gating等。其实主要作用是为了综合以及PR时设置dont touch,这样你的时钟的定义点不会被改变,方便做流程。
从逻辑功能上说,gating 只需要一个与门,但这样的时钟是不干净的。
但ICG会生成负沿LATCH+ AND, 这样可以防止毛刺。
感觉2楼和3楼比较有道理,先谢过了
