时序约束只提供了设计需求.PPT
文本预览下载声明
水煮FPGA 传统FPGA设计流程简介 FPGA? Field Programmable Gate Array 可编程逻辑器件 适合高密度,复杂时序逻辑 供应商: Xilinx、Altera、Actel、Lattice、Quicklogic FPGA结构 可编程IO 可编程逻辑单元 LUT(查找表) 寄存器 布线 全局线(低Skew、强驱动) 普通互连(长、短) 专用进位链 内嵌功能单元 PLL/DLL RAM DSP SERDES …… FPGA设计流程 电路设计 功能仿真 综合 综合后仿真 布局布线 布局布线后仿真 板级仿真(optional) 加载配置,在线调试 FPGA设计平台 Xilinx ISE — 界面简洁的工具接口 Altera Quarters II — 高集成度的工具箱 MAXPLUS II 模型设计 数字系统模型设计层次 ESL Behavior level RTL Gate level 设计输入 SystemC, SystemVerilog HDL 原理图 — simple 网表 – IP core 高性能电路HDL描述 1、提升频率 算法:并行、乒乓、流水线……合理按排数据流 结构:源逻辑复制,减少扇出…… 2、减少资源、功耗 资源共享,时钟使能 功能仿真 Tools Modelsim VCS NCsim …… Working in Test Bench 建议在设计中估算并加入延时信息 综 合 将模型映射到现有资源 Tools Synplify Pro – for most FPGA XST – for xilinx FPGA Quartus – for Altera FPGA …… 可综合HDL设计 HDL是描述性语言,非设计语言,原则上先有电路后有HDL。 可综合的特点:可以直观反应到一个或几个具体的简单电路上 if()…else… ? mux2 always @( posedge clk) begin … ? DFFs end for()… ? ? a÷b ? ? 传说中可综合的RTL不一定可综合 对应的映射区间限制在FPGA现有的资源内 HDL模型优化 — 我们的目标是,没有不确定性 — 不要让综合器替你做决定 用HDL设计描述你的设计 尽量使用厂商所提供的库 使用综合约束 A+B+C+D 综合约束 模型优化(speed、area) 模型映射自由度 设置方式: 1、菜单选择 – for global 2、HDL内嵌入 – for special 3、约束文件编辑 综合结果观察 1、综合报告 资源利用率 最大设计速率 – 注意你的Warning 2、RTL View/Technology View 跟踪、分析关键模块、路径 综合后仿真 目的: 验证综合后的实际功能与模型所描述功能的一致性 添加器件延时信息,初步验证时序(optional) 实 现 流程 布局 单元放置 物理综合(optional) 布线 单元连接 单元重放置 约束 唯一人为干预实现过程的接口 决定实现效果好坏的主要因素 约束不会提升设计的最佳性能,同综合一样,它只增加实现过程的可控性,结果的唯一性 PIN 分配管脚、电压标准 驱动能力、速度 输入延迟 端接阻抗 Timing …… Area …… Area Constraint 绝对位置 ? 触发器 ? LUT ? RAM/DSP ……(primitive) 绝对区域 ? 模块 ? group of primitive 相对位置 ? 触发器 ? LUT ? RAM/DSP …… (primitive) 相对区域 ? 模块 指定布线 ? net !区域约束主要目的是关联耦合逻辑,减少后续布线压力;其次是加大资源利用率。 !靠的近信号延迟不一定就小,信号线上延迟主要来自线与线之间的转接(如LUT,switch-box)。由于FPGA内部连接的结构是横纵两向的,斜向的连接延迟会大于横纵方向上最大跨度连接。所以,在做位置约束时尽量避免斜向;而区域约束要松,如果没有资源上的顾虑,约束面积建议为所需的3倍以上。 !对时序的改善贡献很小,紧的约束甚至有恶化时序的可能。 Timing Constraint 端口输入输出约束 ? IO端口 时钟约束 单时钟域约束 ? 同步器件 多时钟域约束 ? 关联时钟
显示全部