想一次性流片成功 ASIC设计中这些问题不可忽视
挂在总线上的各个部件可以分布在芯片的各个部分。同时,由于可以减少连线的数量,它必须保证在任何时候,不发生总线冲突,如果多个驱动总线可能导致严重的错误,需要通过一些措施消除这种隐患,比如三态的使能通过解码器产生Onehot的编码,防止多驱动引起的逻辑错误和对芯片的损害;同时,三态总线需要连到上拉电阻上,以防止在一段时间内不驱动总线产生总线数据不确定,而DC等综合并不支持。另外,三态总线的电容负载也是一个不可忽视的问题,对性能和面积造成不利的影响,其负载主要来自总线连接的多个电路单元,总线布局本身带来一定的负载;最后,三态总线给DFT设计也带来困难。基于这些理由,在非定制ASIC设计时,我们实在不必要选择三态总线的方式。相比之下,采用多路选择器的问题是较多连线带来的布线拥塞问题,选择器的延迟问题基本上不是什么问题,深亚微米设计中,门的延迟差别已经变少,同时多层金属也带来了足够的布线资源。
3逻辑综合以及后端设计相关问题
3.1编码风格检查
DC对编码风格的检查提供良好的支持,在进行逻辑综合之前最好先分析一下DC的log文件,看是否有上述的或其他的一些编码风格问题。通过set_dont_use命令可以禁止使用一些工艺相关的单元,all_registers带参数也可以报告出设计中所用到的Latch。下面主要讨论前面提到的一些情况在综合以及后端实现时的特殊处理。同时,还有很多EDA工具提供编码风格进行检查。
3.2异步时钟域
在编码设计中我们通过划分,将异步时钟域接收模块分离成独立的模块,其他模块都采用单独的时钟,综合约束相对简单。对于那些带有异步时钟域的模块,如果不进行约束,DC总是试图去满足采样时钟的setup/hold时间,事实上,设计者并不关心异步时钟域之间的这些问题,而其Metastability问题在编码阶段已经解决。通常,可以设置异步时钟域之间的Path为false_path。如:
set_false_path-from[get_clocksCLKB]-to[get_clocksCLKA]
如果异步接口数据的控制按照最后一种方式
(也就是在约定的节拍内读取数据),也就需要发送方的数据skew控制在一定范围内。由于没有对这些路径进行约束(虽然可以设置这些path的Maxdelay,但是这种约束对于skew的控制并不能取得好的效果),工具无法对这些路径进行自动优化。因此最好采用手工布局的方法,让这些skew在一个可控的范围内,在STA阶段,也需要对这些skew进行单独的分析。
3.3特殊时钟信号处理
门控时钟像所有的内部时钟一样,时钟的skew可能引起一些保持时间问题,默认条件下,时钟树综合工具并不把逻辑门相连的时钟信号连到时钟树上,非门控的触发器上的时钟是连在时钟树上,这个时钟延迟是相当可观的,为了控制门控时钟与非门控时钟的skew,通常从时钟树叶子节点的上一级引出时钟信号作为控制门的时钟输入。在STA阶段需要对门控时钟的Setup/Hold时间进行特殊分析,以及Glitch检查。然后,我们再回顾一下例1的代码中的情况,可以用图2的示意图表示。
ASIC 相关文章:
- 安森美半导体配合中国消费类医疗市场趋势的半导体方案应用案例研究(07-20)
- 人工智能实现的流派 FPGA vs. ASIC看好谁?(08-27)
- 基于Xilinx Spartan-6 FPGA加速纹理映射的实现(09-08)
- 基于VHDL和CPLD的智能数字电压表设计(10-09)
- 浅谈降低100G系统功耗的六大关键技术(02-26)
- 赛灵思应用解决方案:ASIC原型与仿真(02-14)