ASIC 专用集成电路
Application Specific:应用户要求或特定电子系统的需要而设计、制造的集成电路;
1.架构定义:芯片的架构规格书architecture specification至关重要,通过市场调研或企业内部需要,决定芯片有多少核心、有哪些外设、需要哪些IP、具备哪些功能。架构规格书指导整个芯片设计流程。从文档变为代码,由代码变为版图。在编写代码的过程中,需要并行进行功能验证和性能验证。在芯片架构规格书确定之后,需要详细撰写设计规格,比如各个模块的功能、寄存器的数量等,在性能方面需要考虑速度和功耗,在功能验证方面用C语言或其它语言编写参考模型。
2.前端设计及验证:RTL Coding即编写verilog代码,目前大多采用自顶向下的设计理念分解大型复杂设计,通过层层例化的方式组成一个实现具体功能的IP。完成编码后需要进行功能验证,通过对设计模块施加激励进行仿真,生成验证报告;
3.可测性设计:主要为流片后的测试服务;
4.后端设计:逻辑综合把设计的RTL代码翻译成门级网表,逻辑综合时需要添加约束条件。逻辑综合后一般需要进行静态时序分析和形式验证。工程师结合时序约束文件、面积约束文件、物理库文件等依次布局、时钟树综合、布线以及对版图的物理验证等。
静态时序分析STA
操作:利用PT(Prime Time)等相关软件在逻辑综合之后进行timing analysis;
目的:提高系统工作主频以及增加系统的稳定性 ;
区别:
传统的电路分析方法采用动态仿真来验证设计的正确性。动态仿真所需要的时间与集成电路的规模成正比。动态仿真取决于验证时采用的测试向量的覆盖率及仿真平台的性质,往往无法覆盖全部逻辑。
静态时序分析能够验证所有的门级电路设计。最大的特点是不需要加入输入测试向量,每一个时序路径都自动被检测到,运行速度快,占用内存小。但是无法判断逻辑功能。
路径:
-
从原始输入端到设计电路中的所有触发器;
-
从触发器到触发器;
-
从触发器到设计电路的原始输出端口;
-
从设计电路的原始输入端口到原始输出端口。
对于整个设计电路,STA工具会将其拆分成以上四种类型的时序路径(Timing Path),分析时序信息,包括最慢与最快的开关时间、决定最坏的路径、比较信号到达的时间与要求的时间是否一致等,一些关键的时序信息参数包括触发器的建立(Setup Time)与保持时间(Hold Time)、时钟偏斜(Time Skew,从时钟定义点到不同触发器时钟引脚的延时差。)、最大扇出(Maximum Fanout)、最大跳变时间(Maximum Transition)、最大负载电容(Maximum Capacitance)。
触发器的恢复时间:对时序单元来说,Recovery Time是指在时钟信号的时钟沿到达之前,置位或重置信号必须保持有效的最小时间。
时间裕量(Slack):指信号在时序路径上要求的时间和实际花费的时间之差。如果Slack的值为正值或零,则说明设计电路的实际时序符合约束条件。
芯片设计流程
需求分析:工作人员需要对用户提出的功能要求进行分析理解,做出电路系统的整体规划,形成详细的技术指标,确定初步方案。例如,要设计一个电子屏,需要考虑供电方式、工作频率、产品体积、成本、功耗等,电路实现采用 ASIC 还是选用 FPGA/CPLD 器件等。
功能划分:正确地分析了用户的电路需求后,就可以进行逻辑功能的总体设计,设计整个电路的功能、接口和总体结构,考虑功能模块的划分和设计思路,各子模块的接口和时序(包括接口时序和内部信号的时序)等,向项目组成员合理分配子模块设计任务。
HDL描述:文本描述可以用任意的文本编辑器,也可以用专用的 HDL 编辑环境,对所需求的数字电路进行设计建模,保存为.v文件。
功能仿真(前仿真):对建模文件进行编译,对模型电路进行功能上的仿真验证,查找设计的错误并修正。此时的仿真验证并没有考虑到信号的延迟等一些 timing 因素,只是验证逻辑上的正确性。
逻辑综合:综合(synthesize),就是在标准单元库和特定的设计约束的基础上,将设计的高层次描述(Verilog 建模)转换为门级网表的过程。逻辑综合的目的是产生物理电路门级结构,并在逻辑、时序上进行一定程度的优化,寻求逻辑、面积、功耗的平衡,增强电路的可测试性。但不是所有的 Verilog 语句都是可以综合成逻辑单元的,例如时延语句。
布局布线:根据逻辑综合出的网表与约束文件,利用厂家提供的各种基本标准单元库,对门级电路进行布局布线。至此,已经将 Verilog 设计的数字电路,设计成由标准单元库组成的数字电路。
时序仿真(后仿真):布局布线后,电路模型中已经包含了时延信息。利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。单元器件的不同、布局布线方案都会给电路的时序造成影响,严重时会出现错误。出错后可能就需要重新修改 RTL(寄存器传输级描述,即 Verilog 初版描述),重复后面的步骤。这样的过程可能反复多次,直至错误完全排除。
FPGA/CPLD 下载或 ASIC 制造工艺生产完成上面所有步骤后,就可以通过开发工具将设计的数字电路目标文件下载到 FPGA/CPLD 芯片中,然后在电路板上进行调试、验证。如果要在 ASIC 上实现,则需要制造芯片。一般芯片制造时,也需要先在 FPGA 板卡上进行逻辑功能的验证。