由于结构化ASIC具有单位成本低、功耗低、性能高和转换快(fast turnaound)等特点,越来越多的先进系统设计工程师正在考虑予以采用。在结构化ASIC中,像通用逻辑门、存储器、锁相环和I/O缓存这些功能性资源都嵌在芯片内部经过预设计和预验证的基层中。然后,该层和顶部少数金属互联层一起完成定制。比起从头开始创建ASIC来说,这种方法可大幅缩短设计时间。
仅在芯片少数金属层上配置电路,不仅可以降低开发成本和缩短开发时间,而且降低了设计错误发生的风险。这是因为与ASIC需要设计许多掩膜层来构成芯片相比,结构化ASIC供应商只需要生成相对简单的金属层。
然而,利用结构化ASIC进行开发也不是没有风险。逻辑设计错误仍然可能存在。避免硅片设计反工的一种方法是使用FPGA作原型,然后将设计从FPGA转换成ASIC。
与标准单元ASIC相比,当结构化ASIC镜像FPGA上的可用资源时,针对结构化ASIC的FPGA原型更加成功。本文是使用结构化ASIC设计方法学的一些建议。
建议
1. 针对一定范围内的应用确立一种设计方法学。要确保你的设计团队受过有关工具和FPGA、ASIC架构的良好培训,以便能够构建最佳设计。
2. 利用软件开发环境,以此降低产生功能性逻辑错误等设计问题的风险。使用逻辑验证和仿真以及FPGA原型设计是行之有效的方法。
3. 利用那些能提供给你最佳性能和功能的FPGA特性进行FPGA原型设计。同时,利用应用所需的知识产权创建原型。
4. 尽可能在系统内检测你的设计,验证它是否符合设计要求。同时,要确保在所有要经历的电压和温度范围下利用FPGA原型对该系统进行了全面检测。
5. 使用FPGA或结构化ASIC进行系统设计。这种方法能实现两个目标。第一,你可以将FPGA投入生产并且将其转变为ASIC。这使得该系统能更快地进入市场。第二,如果对于ASIC有突然增加的需求而供应又不足时,就能够生产一些使用FPGA的系统。
不建议
1. 使用FPGA只对逻辑和低级I/O(例如LVTTL或者LVCMOS)进行原型设计。这会使得你的设计局限在低端门阵列,从而无法提供高性能。通常,FPGA中只有逻辑进行原型设计,这将导致错误理解设计在系统中工作的好坏。许多设计还需要高速存储接口。最好对其进行原型设计,以确保接口按需求工作,特别是在电压和温度变化下能正常工作。
2. 只根据单位成本而选择ASIC方法学。这种选择可能会节省一些物料清单(BOM)成本,但考虑到整个工程计划的实际开发时间和成本等因素,系统将失去竞争力。从长远看,FPGA和结构化ASIC能降低开发成本,缩短开发周期。
3. 对于专用标准产品(ASSP)的设计只考虑采用标准单元ASIC技术。考虑到年产量和产品最快面市的需求,有时候结构化ASIC或甚至FPGA才是最佳选择。
4. 在了解清楚设计的市场需求之前就贸然选择结构化ASIC。当你试图强行把一个设计放入太小或性能受限的结构化ASIC中时,该系统在市场上将直接面临生死考验(DOA)。
5. 只考虑单芯片解决方案。有时,构建系统的最好方法是采用两个器件而不是一个大规模ASIC。将设计分割开来,可以缩短整体开发时间、简化设计流程,还能降低设计反工的危险。