1. 课程来源
2. 数字芯片设计流程
功能和指标定义; 架构设计; RTL设计;功能仿真验证(前仿);逻辑综合(生成网表电路);一致性验证(确保综合生成的网表电路与设计的代码完全一致);布局布线;后端验证(后仿);物理验证;版图。
-
需求分析:明确设计的目标和需求,包括性能、功耗、面积、功能等方面的要求。与客户或项目负责人进行沟通,确保对设计目标有清晰的理解。
-
体系结构设计:根据需求,制定芯片的整体架构。确定芯片的功能模块、数据流和控制流。进行关键决策,如单片上集成哪些模块,模块之间的通信方式等。
-
RTL 设计:将体系结构设计转化为 Register Transfer Level(RTL)的表示。这涉及使用硬件描述语言(如Verilog、VHDL)编写逻辑电路描述,包括组合逻辑和时序逻辑。
-
验证:对RTL设计进行功能验证,以确保其符合规范和预期行为。验证可以使用仿真工具、测试矢量等方法进行。验证包括功能验证、时序验证、边界条件测试等。
-
综合与布局布线:将RTL代码综合为门级网表,并进行逻辑优化。然后进行物理设计,包括将逻辑元素放置在芯片上的布局,以及设计连线来满足时序和布线规则。
-
后端验证:在综合和布局布线后,需要进行后端验证,以确保布线后的设计满足时序、功耗和其他物理限制。
-
物理验证:进行物理设计规则检查(DRC)和电气规则检查(ERC),以确保设计不违反制造工艺的限制。
-
版图提取:生成用于制造的版图。这个阶段将布局转化为实际的版图数据,包括曝光层、掩膜等信息。
-
模拟验证:进行电路级模拟验证,验证设计在实际工作条件下的性能、功耗和稳定性。
-
制造准备:准备生产所需的数据,包括版图数据、掩膜数据等。与制造厂商合作,确保设计可以顺利投入生产。
-
测试与验证:设计测试方案和测试模式,以确保生产芯片的功能和质量。制定测试计划,执行测试并分析测试结果。
-
生产与封装:制造芯片、切割晶圆,并将芯片封装成最终的封装形式,如芯片封装或裸片。
-
测试与品质控制:对生产的芯片进行测试,筛选出不合格的芯片。确保生产的芯片达到一定的质量标准。
-
发布与部署:将经过测试和验证的芯片发布给客户或市场。提供相应的文档和支持,以便客户能够使用和集成芯片。
-
持续改进:根据市场反馈和设计经验,持续改进芯片设计流程,优化性能、功耗、可靠性等方面。
3. FPGA设计流程
功能和指标定义;RTL设计;功能仿真;逻辑综合(网表电路,没有实际的坐标);实现(布局布线);时序约束;生成比特流;引脚约束;板级验证。
-
需求分析:明确设计的目标和需求,包括功能、性能、时序等要求。与客户或项目负责人沟通,确保对设计目标有清晰的理解。
-
高级设计:根据需求,进行高级设计,包括确定FPGA的功能模块、数据流和控制流。选择适当的FPGA型号,考虑资源利用率和性能要求。
-
RTL 设计:使用硬件描述语言(如Verilog、VHDL)编写逻辑电路描述,包括组合逻辑和时序逻辑。将高级设计转化为Register Transfer Level(RTL)级别的表示。
-
仿真验证:对RTL设计进行功能仿真,以确保设计符合规范和预期行为。仿真工具可以验证逻辑的正确性和功能性。
-
综合与实现:将RTL代码综合为门级网表,然后进行逻辑优化和布局布线。这个过程会生成一个用于FPGA的位流文件。
-
时序约束:定义时序约束,确保设计在FPGA上能够满足时序要求。时序约束指定信号传播延迟、最小脉冲宽度等。
-
位流生成:生成位流文件,其中包含了设计在FPGA上的配置信息。位流文件可以通过编程器加载到FPGA芯片中。
-
硬件验证:将位流文件加载到目标FPGA芯片中进行验证。这通常涉及FPGA板卡和其他外设的使用。
-
调试与优化:在硬件验证阶段,可能会发现一些问题,需要进行调试和优化。这可能涉及波形分析、信号探头、逻辑分析仪等工具的使用。
-
性能评估:验证FPGA的性能是否满足设计要求,包括时钟频率、延迟、资源利用率等。
-
部署与发布:一旦FPGA设计经过验证,并且满足了需求,可以将FPGA位流文件发布到目标设备上,以供最终产品使用。
-
持续改进:根据测试结果和设计经验,持续改进FPGA设计,优化性能、资源利用率和可靠性。
4. 静态时序分析概念
静态时序分析的核心是检查建立时间和保持时间,来确保每个触发器在时钟边沿能够正确的采集到数据。静态时序分析只针对同步电路,对于异步电路另做处理。目前来说大部分电路都十分复杂,可以当做全局异步,局部同步的电路来处理。