1 / 31

水煮 FPGA

水煮 FPGA. 传统 FPGA 设计流程简介. FPGA ?. F ield P rogrammable G ate A rray 可编程逻辑器件 适合高密度,复杂时序逻辑 供应商: Xilinx 、 Altera 、 Actel 、 Lattice 、 Quicklogic. FPGA 结构. 可编程 IO 可编程逻辑单元 LUT (查找表) 寄存器 布线 全局线( 低 Skew 、强驱动 ) 普通互连(长、短) 专用进位链 内嵌功能单元 PLL/DLL RAM DSP SERDES …….

kara
Download Presentation

水煮 FPGA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 水煮FPGA 传统FPGA设计流程简介

  2. FPGA? • Field Programmable Gate Array • 可编程逻辑器件 • 适合高密度,复杂时序逻辑 • 供应商: Xilinx、Altera、Actel、Lattice、Quicklogic

  3. FPGA结构 • 可编程IO • 可编程逻辑单元 LUT(查找表) 寄存器 • 布线 全局线(低Skew、强驱动) 普通互连(长、短) 专用进位链 • 内嵌功能单元 PLL/DLL RAM DSP SERDES ……

  4. DCM IOB XC3S50 overview Switch box CLB RAM&DSP Lan (global、short、long)

  5. LUT Register 进位链 XC3S50 CLBoverview

  6. FPGA设计流程 • 电路设计 • 功能仿真 • 综合 • 综合后仿真 • 布局布线 • 布局布线后仿真 • 板级仿真(optional) • 加载配置,在线调试

  7. FPGA设计平台 • Xilinx ISE — 界面简洁的工具接口 • Altera Quarters II — 高集成度的工具箱 MAXPLUS II ?

  8. 模型设计 • 数字系统模型设计层次 ESL Behavior level RTL Gate level • 设计输入 SystemC, SystemVerilog HDL 原理图 —simple 网表 – IP core TOP DOWN

  9. 高性能电路HDL描述 1、提升频率 算法:并行、乒乓、流水线……合理按排数据流 结构:源逻辑复制,减少扇出…… 2、减少资源、功耗 资源共享,时钟使能

  10. 功能仿真 • Tools Modelsim VCS NCsim …… • Working in Test Bench 建议在设计中估算并加入延时信息 测试激励 测试目标 测试监控 Test Bench

  11. 综 合 • 将模型映射到现有资源 • Tools Synplify Pro – for most FPGA XST – for xilinx FPGA Quartus – for Altera FPGA ……

  12. 可综合HDL设计 HDL是描述性语言,非设计语言,原则上先有电路后有HDL。 可综合的特点:可以直观反应到一个或几个具体的简单电路上 if()…else… mux2 always @( posedge clk) begin … DFFs end for()…  ? a÷b  ? 传说中可综合的RTL不一定可综合 对应的映射区间限制在FPGA现有的资源内

  13. HDL模型优化 — 我们的目标是,没有不确定性 — 不要让综合器替你做决定 用HDL设计描述你的设计 尽量使用厂商所提供的库 使用综合约束

  14. A+B+C+D or Example

  15. 综合约束 • 模型优化(speed、area) • 模型映射自由度 设置方式: 1、菜单选择 –for global 2、HDL内嵌入 – for special 3、约束文件编辑

  16. 优化目标 优化力度 FSM选项 资源识别 Example

  17. 综合结果观察 1、综合报告 资源利用率 最大设计速率 –注意你的Warning 2、RTL View/Technology View 跟踪、分析关键模块、路径

  18. Synplify Pro RTL overview RTL view Technology view Critical path Net/port/inst

  19. 综合后仿真 • 目的: 验证综合后的实际功能与模型所描述功能的一致性 添加器件延时信息,初步验证时序(optional)

  20. 实 现 • 流程 布局 单元放置 物理综合(optional) 布线 单元连接 单元重放置 组合逻辑优化(复制,交换) 时序逻辑优化(复制,平衡) 布局后仿真

  21. 约束 • 唯一人为干预实现过程的接口 • 决定实现效果好坏的主要因素 • 约束不会提升设计的最佳性能,同综合一样,它只增加实现过程的可控性,结果的唯一性 PIN 分配管脚、电压标准 驱动能力、速度 输入延迟 端接阻抗 Timing …… Area …… 附加约束

  22. AreaConstraint 绝对位置  触发器  LUT  RAM/DSP ……(primitive) 绝对区域  模块  group of primitive 相对位置  触发器  LUT  RAM/DSP ……(primitive) 相对区域  模块 指定布线  net

  23. Floorplanner overview 区域约束 模块列表 Map结果

  24. !区域约束主要目的是关联耦合逻辑,减少后续布线压力;其次是加大资源利用率。!区域约束主要目的是关联耦合逻辑,减少后续布线压力;其次是加大资源利用率。 !靠的近信号延迟不一定就小,信号线上延迟主要来自线与线之间的转接(如LUT,switch-box)。由于FPGA内部连接的结构是横纵两向的,斜向的连接延迟会大于横纵方向上最大跨度连接。所以,在做位置约束时尽量避免斜向;而区域约束要松,如果没有资源上的顾虑,约束面积建议为所需的3倍以上。 !对时序的改善贡献很小,紧的约束甚至有恶化时序的可能。

  25. Timing Constraint 端口输入输出约束  IO端口 时钟约束 单时钟域约束  同步器件 多时钟域约束  关联时钟组 Skew约束  同源时钟 线延迟约束  net TIG  all 设计的最高速度已经由设计的构造和器件的性能决定,时序约束只提供了设计需求,明确了设计内部各单元哪些需要被优待,哪些可以随意。所以,没必要在时序上加上很紧的约束,跟自己的电脑过不去,还浪费青春,浪费电。适可而止才是正道。

  26. 布局布线后验证&仿真 • 时序分析 动态时序分析 需要测试向量 效率低 覆盖率不能保证 静态时序分析 不需要外部测试激励 效率高 全覆盖 精确度不高

  27. STA时序模型

  28. TPmin = Tcko +Tdelay +Tsetup -Tskew • Tcko + Tdelay - Tskew ≥Thold • Slack = Tp - Tpmin

  29. Xilinx STA tool overview !尽量保证实现结果留有一定的余量

  30. 后仿 仿真模型 时序标注 .sdf文件 提供三种延时值,最大、典型、最小 打印信息 $setup, $hold, $recovery # ** Error:/path/to/xilinx/verilog/src/simprims/X_RAMD16.v(96): $setup(negedge WE:29138 ps, posedge CLK:29151 ps, 373 ps); # Time:29151 ps Iteration:0 Instance: /test_bench/u1/\U1/X_RAMD16\ 要求时间 相关信号 出错模型 错误类型 信号最后改变时间 错误报告事件 出错位置

  31. END…

More Related