推荐答案
测试一下
题目
简述 FPGA等可编程逻辑器件设计流程。(仕兰微面试题目)
参考答案与知识点
参考答案
FPGA等可编程逻辑器件的设计流程通常包括以下步骤:
1. 需求分析与规格定义:明确设计功能、性能指标、接口协议、资源约束等,形成设计文档。
2. 模块划分与架构设计:将系统分解为子模块,确定数据路径、控制逻辑、时钟域划分等。
3. RTL编码:使用Verilog/VHDL等硬件描述语言编写寄存器传输级代码,描述电路行为。
4. 功能仿真(前仿真):使用仿真工具验证RTL逻辑功能正确性,检测语法错误和逻辑漏洞。
5. 综合(Synthesis):将RTL代码映射到目标FPGA的底层单元(LUT、触发器、BRAM、DSP等),生成网表。需设置时序约束和面积约束。
6. 布局布线(Place & Route):将综合网表中的逻辑单元放置到FPGA内部物理位置,并完成连线。该步骤决定实际时序性能,需多次迭代优化。
7. 时序仿真(后仿真):考虑布局布线后的实际延迟,进行静态时序分析(STA)和动态仿真,确保满足建立/保持时间要求。
8. 时序收敛:若时序不满足,需修改设计或约束,重新综合/布局布线。
9. 位流生成与下载:生成FPGA配置文件(bitstream),通过JTAG或SPI Flash等措施烧录到器件。
10. 板级调试:使用逻辑分析仪、内嵌逻辑分析仪(如ChipScope/SignalTap)验证实际运行情况。
易错点:
- 功能仿真通过不等于时序满足;综合前需正确编写可综合代码,避免使用不可综合的语法;布局布线后必须进行静态时序分析;忽略时钟域同步可能引发亚稳态;未考虑I/O约束(如驱动强度、上下拉)可能导致信号损坏。
- 设计流程中,仿真验证贯穿前后,包括前仿真、后仿真和时序仿真,但许多工程师仅重视前仿真而忽视后仿真,导致上板后时序异常。
涉及知识点
- FPGA设计流程步骤
- RTL编码与可综合设计
- 功能仿真与时序仿真区别
- 综合与布局布线
- 静态时序分析(STA)
- 位流生成与板级调试