目 录 前 言... 3 第 一 章 :TimeQuest 静 态 时 序 分 析 模 型 模 型 的 基 础 单 位 理 想 的 建 立 关 系 值 和 保 持 关 系 值 物 理 中 的 建 立 关
|
|
|
- 延 钱
- 9 years ago
- Views:
Transcription
1
2 目 录 前 言... 3 第 一 章 :TimeQuest 静 态 时 序 分 析 模 型 模 型 的 基 础 单 位 理 想 的 建 立 关 系 值 和 保 持 关 系 值 物 理 中 的 建 立 关 系 过 程 和 建 立 余 量 令 人 误 会 的 建 立 关 系 和 建 立 余 量 建 立 余 量 保 持 余 量...21 总 结 :...31 第 二 章 : 模 型 角 色, 网 表 概 念, 时 序 报 告 TimeQuest 模 型 的 努 力 SDC 的 网 表 (Net Lists) 基 本 单 位 TimeQuest 模 型 的 简 单 实 例...37 实 验 一 : 入 门 实 验 进 一 步 看 看 TimeQuest 模 型 如 何 分 析 时 序 建 立 sdc 文 件 与 网 表 约 束 时 钟 时 序 报 告...58 总 结 :...66 第 三 章 :TimeQuest 扫 盲 文 余 量 的 概 念 延 迟 因 数 : 内 部 延 迟 因 数 延 迟 因 数 : 外 部 延 迟 因 数 第 一 层 与 第 二 层 时 间 要 求 山 寨 TimeQuest 模 型 约 束 命 令 和 约 束 行 为...88 总 结 :...89 第 四 章 : 内 部 延 迟 与 其 他 PLL 与 约 束 命 令 约 束 PLL 时 钟...92 实 验 二 vga 模 块 的 物 理 时 序 分 析 延 迟 怪 兽 实 验 三 延 迟 怪 兽 的 暴 动 Delay_monster.v 延 迟 怪 兽 实 验 四 约 束 延 迟 怪 兽 Set Multicycle Path 的 噩 梦 不 可 理 喻 的 Set False Path 实 验 五 延 迟 怪 兽 受 死 吧!
3 黑 金 动 力 社 区 总 结 : 第 五 章 : 网 表 质 量 与 外 部 模 型 网 表 质 量 的 概 念 Fmax 评 估 值 外 部 模 型 外 部 模 型 推 导 外 包 资 料 的 公 式 外 部 模 型 的 input/ouput 约 束 指 令 实 验 六 假 想 实 验 input/output delay 约 束 总 结 : 第 六 章 : 物 理 时 钟 与 外 部 模 型 物 理 时 钟 实 验 七 :set_clock_latency 告 诉 TimeQuest 外 部 时 钟 延 迟 信 息 物 理 时 钟 实 验 八 时 钟 抖 动 与 set_clock_latency 物 理 时 钟 实 验 九 时 钟 抖 动 与 input/output 约 束 命 令 物 理 时 钟 实 验 十 时 间 抖 动 与 set_clock_uncertainly 无 奈 的 set_max_delay 与 set_min_delay 总 结 :
4 前 言 这 是 笔 者 用 两 年 构 思 准 备 一 年 之 久 的 笔 记, 其 实 这 也 是 笔 者 的 另 一 种 挑 战 写 工 具 篇 I 不 像 写 Verilog HDL 那 些 事 儿 系 列 的 笔 记 一 样, 只 要 针 对 原 理 和 HDL 内 容 作 出 解 释 即 可, 虽 然 Verilog HDL 那 些 事 儿 夹 杂 着 许 多 笔 者 对 Verilog 的 独 特 见 解, 不 过 这 些 内 容 都 可 以 透 过 想 象 力 来 弥 补 然 而 工 具 篇 I 需 要 一 定 的 基 础 才 能 书 写 两 年 前, 编 辑 时 序 篇 之 际, 笔 者 忽 然 对 TimeQuest 产 生 兴 趣, 可 是 笔 者 当 时 却 就 连 时 序 是 什 么 也 不 懂, 更 不 明 白 时 序 有 理 想 和 物 理 之 分, 为 此 笔 者 先 着 手 理 想 时 序 的 研 究 一 年 后, 虽 然 已 掌 握 解 理 想 时 序, 但 是 笔 者 始 终 觉 得 理 想 时 序 和 TimeQuest 之 间 缺 少 什 么, 这 种 感 觉 就 像 磁 极 不 会 没 有 原 因 就 相 互 吸 引 着? 于 是 漫 长 的 思 考 就 开 始 了... 在 不 知 不 觉 中 就 写 出 整 合 篇 HDL 描 述 的 模 块 是 软 模 型,modelsim 仿 真 的 软 模 型 是 理 想 时 序 换 之, 软 模 型 经 过 综 合 器 总 综 合 以 后 就 会 成 为 硬 模 型, 也 是 俗 称 的 网 表 而 TimeQuest 分 析 的 对 象 就 是 硬 模 型 的 物 理 时 序 理 想 时 序 与 物 理 时 序 虽 然 与 物 理 时 序 有 显 明 的 区 别, 但 它 们 却 有 黏 糊 的 关 系, 就 像 南 极 和 北 极 的 磁 性 一 样 相 互 作 用 着 编 辑 工 具 篇 I 的 过 程 不 也 是 一 番 风 顺, 其 中 也 有 搁 浅 或 者 灵 感 耗 尽 的 情 况 工 具 篇 I 给 笔 者 最 具 挑 战 的 地 方 就 是 如 何 将 抽 象 的 概 念, 将 其 简 化 并 且 用 语 言 和 图 形 表 达 出 来 读 者 们 可 要 知 道 工 具 篇 I 使 用 许 多 不 曾 出 现 在 常 规 书 的 用 词 与 概 念... 但 是, 不 曾 出 现 并 不 代 表 它 们 不 复 存 在, 反 之 如 何 定 义 与 实 例 化 它 们 让 笔 者 兴 奋 到 夜 夜 失 眠 工 具 篇 I 的 书 写 方 式 依 然 继 承 笔 者 往 常 的 笔 记 风 格, 内 容 排 版 方 面 虽 然 给 人 次 序 不 一 的 感 觉, 不 过 笔 者 认 为 这 种 次 序 对 学 习 有 最 大 的 帮 助 编 辑 工 具 篇 I 辛 苦 归 辛 苦, 但 是 笔 者 却 很 热 衷, 心 情 好 比 小 时 候 研 究 新 玩 具 一 般, 一 边 好 奇 一 边 疑 惑, 一 边 学 习 一 边 记 录 完 成 它 让 笔 者 有 莫 民 的 愉 快 感, 想 必 那 是 笔 者 久 久 不 失 的 童 心 吧!? (akuei2 上 ) 3
5 黑 金 动 力 社 区 第 一 章 :TimeQuest 静 态 时 序 分 析 模 型 兜 兜 转 转, 然 后 又 转 转 兜 兜, 最 终 还 是 需 要 站 在 TimeQuest 的 大 门 口 先 自 白 一 下, 接 下 来 的 故 事 都 是 一 位 傻 子 对 TimeQuest 的 理 解, 这 个 傻 子 的 脑 容 量 有 限, 处 理 能 力 不 好, 空 白 的 地 方 都 会 用 想 象 力 自 园 TimeQuest 是 Altera - Quartus II 旗 下 的 东 西, 其 中 它 (TimeQuest) 用 了 一 个 时 序 分 析 模 型 作 为 物 理 时 序 的 分 析 框 子 或 者 数 学 模 型 在 这 里 笔 者 需 要 强 调 一 下, TimeQuest 中 的 时 序 和 Verilog HDL 中 出 现 的 时 序 是 两 个 东 西 所 谓 HDL 的 时 序 是 指 模 块 的 活 动 记 录 等 理 想 的 波 形 ; 反 之 TimeQuest 中 出 现 的 时 序 是 指 物 理 上 路 径, 各 种 延 迟 问 题 的 不 理 想 波 形 让 我 们 暂 时 把 Verilog HDL 忘 了 吧... 一 般 上 分 析 物 理 时 序 有 用 一 套 方 法 称 为 静 态 时 序 分 析 的 方 法, 关 于 静 态 时 序 分 析 网 上 有 太 多 的 解 释 了, 但 是 TimeQuest 有 属 于 自 己 一 套 分 析 时 序 的 模 型, 所 以 我 们 可 以 无 视 其 它 1.1 模 型 的 基 础 单 位 图 模 型 的 基 础 TimeQuest 的 时 序 分 析 模 型 ( 以 下 简 称 模 型 ) 的 基 础, 基 本 上 需 要 两 个 节 点 才 能 发 挥, 如 图 所 示 节 点 的 定 义 很 模 糊, 因 为 节 点 本 身 没 有 个 性, 它 处 在 什 么 就 变 什 么... 如 果 用 TimeQuest 的 话 来 讲, 将 一 对 节 点 放 在 fpga 内 部, 节 点 就 会 化 身 成 为 寄 存 器 这 也 节 点 最 常 见 的 姿 态 所 以 说, 暂 时 让 我 们 把 节 点 看 成 寄 存 器 吧! 图 寄 存 器 为 节 点 图 是 把 另 个 节 点 看 成 寄 存 器, 亦 即 寄 存 器 1(reg1) 和 寄 存 器 2(reg2) 寄 存 器 1 和 寄 存 器 2 共 享 同 样 的 时 钟 信 号 Signal( 信 号 ) 从 寄 存 器 1 的 D 进 入, 再 由 寄 存 器 1 的 Q 游 走, 然 后 从 寄 存 器 2 的 D 进 入, 最 后 再 经 寄 存 器 2 的 Q 出 走 上 述 的 寄 存 器 活
6 动, 按 理 想 时 序 会 产 生 图 的 时 序 图 图 理 想 时 序 如 图 所 示... 所 谓 理 想 就 是 不 存 在 任 何 物 理 上 的 延 迟, T-1 之 际 是 初 始 化 状 态,Sig In 的 初 值 为 1, 然 后 在 T0 的 时 候 寄 存 器 1 读 取 Sig In 的 过 去 值, 亦 即 逻 辑 1 在 T0 的 未 来 寄 存 器 1 输 出 逻 辑 1 长 达 一 个 时 钟 周 期 在 T1 的 时 候, 寄 存 器 2 读 取 Reg1-Q 的 过 去 值, 亦 即 逻 辑 1, 然 后 在 T1 的 未 来 寄 存 器 2 拉 高 输 出 长 达 一 个 时 钟 周 期 根 据 模 块 沟 通 而 言, 每 一 个 寄 存 器 至 少 需 要 消 耗 1 个 时 钟, 在 此 Sig In 经 过 两 个 寄 存 器, 也 就 是 它 延 迟 了 2 两 个 时 钟, 从 最 开 始 到 最 后 的 Reg2-Q 输 出 理 想 时 序 和 TimeQuest 模 型 到 底 有 什 么 关 系? 笔 者 一 直 在 苦 恼 这 个 问 题 要 完 全 理 解 TimeQuest 的 模 型, 理 想 时 序 作 的 角 色 有 参 考 和 比 较 的 作 用 在 前 面 笔 者 说 过 了,TimeQuest 的 模 型 需 要 一 对 节 点 才 能 成 立, 这 是 铁 一 般 的 基 础, 但 是 Time Quest 模 型 它 才 不 在 乎 时 序 的 整 个 过 程, 而 它 只 在 乎 Reg1 发 送 数 据 给 Reg2 然 后 Reg2 读 取 数 据 这 一 段 时 间 而 已 TimeQuest 模 型 中 有 两 个 关 键 关 系, 亦 即 建 立 关 系 和 保 持 关 系 老 实 说 要 很 好 的 明 白 它 们 之 间 的 定 义, 还 是 真 是 不 简 单, 笔 者 也 耗 了 很 长 的 时 间 去 整 理 思 想, 然 后 才 能 得 出 零 星 的 总 结 在 此, 我 们 需 要 借 助 理 想 时 序 的 力 量, 唯 有 如 此 才 能 更 好 了 解 TimeQuest 模 型 5
7 黑 金 动 力 社 区 1.2 理 想 的 建 立 关 系 值 和 保 持 关 系 值 图 理 想 的 建 立 关 系 值 图 的 一 对 节 点, 该 reg1 和 reg2 都 有 自 己 专 属 的 时 钟 信 号, 亦 即 Clock1 和 Clock2 在 T0 的 时 候,reg1 决 定 向 reg2 发 送 数 据, 同 学 们 请 注 意 时 序 图 的 箭 头 ", 该 数 据 长 达 一 个 周 期 时 间, 这 段 时 间 也 称 为 建 立 关 系 值 或 者 建 立 关 系 时 间 建 立 关 系 值 的 定 义 是 指 在 T0 的 时 候 Clock1 的 上 升 沿 使 得 reg1 给 reg2 输 出 数 据, 这 个 上 升 沿 也 称 为 启 动 沿 - lunch edge 在 T1 的 时 候,Clock2 的 上 升 沿 使 得 reg2 保 存 reg1 发 过 来 的 数 据, 这 个 Clock2 的 上 升 沿 也 称 为 锁 存 沿 - latch edge 然 而 该 启 动 沿 与 锁 存 沿 之 间 的 长 度 就 是 建 立 关 系 值 建 立 关 系 时 间 在 理 想 的 状 态 下, 如 果 reg1 和 reg2 使 用 相 同 频 率 的 时 钟, 那 么 : 建 立 关 系 值 = 时 钟 周 期 假 设 Clock1 和 Clock2 都 是 20Mhz 频 率, 那 么 建 立 关 系 值 是 50ns 既 然 有 建 立 关 系 值 当 然 也 有 保 存 关 系 值, 但 是 关 于 保 存 关 系 值 的 概 念 确 实 会 比 较 头 疼, 笔 者 抓 到 头 秃 了... 要 理 解 保 存 关 系 值, 基 本 上 又 要 从 锁 存 时 间 开 明 白 所 谓 锁 存 时 间 就 是 reg2 用 来 锁 存 reg1 发 送 过 来 数 据 所 需 的 最 小 时 间 在 理 想 的 状 态 下, 锁 存 时 间 几 乎 是 0 或 者 瞬 间
8 图 保 持 关 系 值 如 图 所 示, 在 T0 的 时 候 Clock1 的 启 动 沿 ( 红 色 的 箭 头 ) 使 得 reg1 向 reg2 发 送 数 据 然 后 在 T1 的 时 候 ( 我 们 先 看 Clock2 的 红 色 键 头 )Clock2 的 锁 存 沿 使 得 reg2 保 存 reg1 发 送 过 来 的 数 据 保 持 关 系 的 定 义 是 指 Clock1 的 另 一 个 上 升 沿 来 到 之 前 (Clock1 的 绿 色 箭 头 ),reg2 要 最 快 的 速 度 将 数 据 读 取 换 句 话 说,reg1 在 T0 向 reg2 发 送 的 数 据, 而 reg2 乘 数 据 还 没 有 更 新 之 前,reg2 必 须 迅 速 的 将 reg1 在 T0 发 送 过 来 的 数 据 保 存 起 来 ( 在 理 想 的 时 序 下 reg2 的 锁 存 所 需 的 时 间 是 0) 所 以 说, 我 们 可 以 这 样 决 定 保 持 关 系 值, 亦 即 Clock1 的 下 一 个 启 动 沿 至 当 前 Clock2 的 锁 存 沿 之 间 的 长 度 在 理 想 的 状 态 下, 如 果 reg1 和 reg2 使 用 相 同 的 时 钟 频 率, 那 么 一 定 : 保 持 关 系 值 = 0ns 在 这 里, 笔 者 需 要 再 强 调 一 下, 在 实 际 的 物 理 情 况 下 不 可 能 会 有 0ns 的 保 持 关 系 值, 然 而 reg2 锁 存 数 据 所 使 用 的 时 间 也 不 会 是 0ns 同 学 们 需 要 好 好 的 记 住, 理 想 时 序 仅 是 一 种 直 观 的 表 达 而 已 有 些 朋 友 会 纳 闷 道 : 建 立 关 系 值 和 想 保 持 关 系 值 到 底 在 TimeQuest 模 型 中 扮 演 什 么 有 角 色? 呵 呵, 用 处 可 真 大 了... 笔 者 根 据 自 己 的 理 解, 它 们 有 3 大 用 处 : ( 一 ) 对 物 理 时 序 分 析 有 直 观 的 表 达 ( 二 ) 简 化 TimeQuest 模 型 分 析 ( 三 ) 为 物 理 时 序 取 等 价 关 系 图 7
9 黑 金 动 力 社 区 1.3 物 理 中 的 建 立 关 系 过 程 和 建 立 余 量 建 立 余 量 是 什 么? 在 建 立 关 系 的 过 程 中, 正 值 的 建 立 余 量 代 表 了 两 个 节 点 之 中 的 建 立 关 系 是 合 格 让 我 们 一 步 一 步 来 理 解 吧 : 图 物 理 上 的 延 迟 图 所 示, 有 一 对 节 点 上 出 现 许 多 骇 人 的 东 西, 这 就 是 我 们 所 谓 的 物 理 时 序, 而 那 些 骇 人 的 东 西 就 是 内 部 延 迟 因 数 物 理 时 序 和 理 想 时 序 就 像 水 火 不 容 的 好 兄 弟, 不 过 它 们 再 怎 么 糟, 身 上 也 有 同 样 的 血 亲 ( 黏 糊 关 系 ) 物 理 时 序 的 产 生 是 Verilog HDL 经 过 综 合 后 (FPGA 布 线 完 成 后 ) 才 会 产 生, 然 而 理 想 时 序 是 Verilog HDL 所 描 述 模 块 会 出 现 的 活 动 记 录 或 者 沟 通 记 录 我 们 来 看 看 图 有 什 么 样 的 延 迟 因 数 呢? Tclk1 和 Tclk2 本 是 时 钟 路 径 延 迟, 别 名 clock path;tdata 是 指 数 据 路 径 延 迟, 也 称 data path;tco 是 寄 存 器 发 送 数 据 时 需 要 的 最 小 持 续 ( 更 新 ) 时 间, Tsu 是 寄 存 器 在 锁 存 数 据 前 时 需 要 的 " 最 小 准 备 时 间 ", 反 之 Th 是 寄 存 器 在 锁 存 数 据 过 后 需 要 的 最 小 确 保 时 间, 而 Tco,Tsu 和 Th 也 称 为 寄 存 器 特 性 在 图 出 现 的 延 迟 因 数 会 大 大 的 影 响 时 序 表 现, 尤 其 是 建 立 关 系 和 保 持 关 系 不 过, 不 同 的 延 迟 因 数 都 会 出 现 在 特 定 的 场 合 换 句 话 说, 当 我 们 分 析 建 立 余 量 的 时 候, 必 定 会 出 现 某 个 特 定 的 延 迟 因 素 ; 然 后, 在 我 们 分 析 保 持 余 量 的 时 候, 又 会 某 个 特 定 的 延 迟 因 数 好 了, 我 们 先 来 看 看 在 建 立 关 系 的 过 程 中, 会 出 现 什 么 延 迟 因 数 呢? 图 延 迟 因 素 影 响 建 立 关 系
10 在 前 面 笔 者 已 经 说 过, 计 算 建 立 关 系 的 长 度 ( 建 立 关 系 值 ) 需 要 先 考 虑 reg1 向 reg2 发 送 数 据 的 启 动 沿 理 想 情 况 reg1 会 无 视 一 切 延 迟 因 数, 反 之 物 理 情 况 reg1 发 送 数 据 给 reg2 的 时 候 就 必 须 考 虑 Tclk1 + Tco + Tdata 的 等 延 迟 图 被 延 迟 因 素 影 响 ( 物 理 状 态 ) 图 是 reg1 发 送 数 据 时 受 延 迟 因 数 影 响 的 经 过... Clock 的 上 升 沿 来 到 reg1 之 前, clock 受 到 Tclk1 的 延 迟... 当 clock 的 启 动 沿 ( 红 色 箭 头 ) 触 发 reg1 reg1 向 reg2 发 送 数 据 之 际,reg1 还 要 需 要 Tco 的 热 身 时 间 ( 更 新 数 据 ) 当 经 过 Tco 的 延 迟 之 后, 数 据 终 于 从 Reg1-Q 发 送 出 去 了... 可 以 在 它 前 面 的 还 有 Tdata 的 延 迟 Tdata 延 迟 的 产 生 源 除 了 路 径 本 身 的 延 迟 以 外, 最 最 主 要 还 是 组 合 逻 辑 最 后 reg1 向 reg2 发 送 的 数 据 经 过 Tdata 的 延 迟 之 后 就 抵 达 reg2 的 入 口 (reg2-d) 图 理 想 状 态 相 反 的 图 是 理 想 时 序 而 里 边 不 包 含 何 延 迟 当 Clock 的 启 动 沿 触 发 reg1 以 后, reg1 就 会 立 即 输 出 数 据 而 已, 还 有 锁 存 沿 这 一 方 如 果 用 了 一 条 公 式 评 估 Tclk1 + Tco + Tdata 对 启 动 沿 的 影 响 : 数 据 抵 达 时 间 Data Arrival Time = 启 动 沿 时 间 + Tclk1 延 迟 + Tco 延 迟 + Tdata 延 迟 这 公 式 的 定 义 很 简 单 : 在 分 析 建 立 关 系 的 过 程 中, 假 设 reg1 向 reg2 在 某 个 启 动 沿 T 发 送 数 据, 当 经 过 Tclk1 + Tco + Tdata 等 延 迟 因 素, 而 该 启 动 沿 T 会 产 生 多 少 位 移 呢? 9
11 黑 金 动 力 社 区 图 例 子 举 个 例 子, 假 设 reg1 在 0ns 的 时 候 向 reg2 发 送 数 据, 而 Tclk1 + Tco + Tdata 等 总 和 延 迟 时 间 是 1ns, 那 么 启 动 沿 会 被 位 移 至 1ns, 如 图 所 示 在 前 面 笔 者 说 过, 如 果 要 分 析 建 立 关 系 值, 单 是 评 估 延 迟 因 数 对 启 动 沿 的 影 响 是 不 足 的, 因 为 造 就 建 立 关 系, 除 了 启 动 沿 以 外, 还 有 锁 存 方 (reg2) 的 锁 存 沿 图 锁 存 沿 受 延 迟 因 数 的 影 响 要 明 白 锁 存 方 如 何 造 就 建 立 关 系 的 结 果 ( 建 立 关 系 值 ), 我 们 考 虑 考 虑 锁 存 方 的 寄 存 器 特 性 还 有 锁 存 方 的 时 钟 路 径, 如 图 所 示 的 Tclk2 和 Tsu Tclk2 是 锁 存 沿 抵 达 reg2 之 前, 时 钟 路 径 的 延 迟 反 之 Tsu 是 在 reg2 要 锁 存 从 reg1 发 来 的 数 据 之 前, 需 要 的 最 小 准 备 时 间
12 图 图 是 建 立 关 系 考 虑 锁 存 方 的 物 理 时 序 Clock 是 源 时 钟, 又 或 者 理 想 时 钟, 而 Clock1 是 经 过 Tclk1 延 迟 以 后,reg1 的 时 钟 源 ( 注 意 那 个 启 动 沿 );Clock2 是 经 过 Tclk2 延 迟 以 后,reg2 的 时 钟 源 ( 注 意 那 个 锁 存 沿 ), 而 Tclk2 延 迟 造 成 了 reg2 时 钟 源 的 位 移 clock2 经 过 Tclk2 延 迟 之 后 reg2 终 于 迎 来 了 自 己 的 锁 存 沿... 接 下 我 们 要 注 意 的 家 伙 是 Tsu, 亦 即 锁 存 方 的 寄 存 性 特 性 图 Tsu 延 迟 因 素 的 影 响 Tsu 的 定 义 是 指 寄 存 器 2 在 锁 存 之 前 需 要 的 最 小 准 备 时 间 如 图 所 示,Tsu 的 箭 头 方 向 与 Tclk2 的 箭 头 方 向 是 相 冲 的, 这 也 使 得 Tsu 将 锁 存 沿 左 移, 随 之 造 就 图 的 相 冲 结 果 同 样 TimeQuest 模 型 也 用 了 一 条 公 式 来 评 估 锁 存 沿 受 Tclk2 和 Tsu 的 影 响 : 数 据 锁 存 ( 读 取 保 存 ) 时 间 Data Required Time = 锁 存 沿 时 间 + Tclk2 - Tsu 这 一 条 公 式 的 定 义 很 简 单 : 在 分 析 建 立 关 系 的 过 程 中, 锁 存 时 间 就 是 reg2 欲 读 取 数 据 之 际, 而 锁 存 沿 受 Tclk2 影 响 影 响 以 后 会 右 移 几 点, 接 着 Tsu 再 将 锁 存 沿 左 移 几 点 假 设 一 个 例 子 : 11
13 黑 金 动 力 社 区 图 例 子 如 图 所 示, 在 理 想 的 状 态 下... 锁 存 沿 的 时 间 原 本 是 10ns, 但 是 经 Tclk2 的 延 迟 向 右 位 移 几 点, 成 为 10ns + 3ns = 13ns 然 后 锁 存 沿 又 受 到 Tsu 影 响 所 以 又 向 左 移 几 点, 成 为 13ns - 2ns = 11ns, 最 终 reg2 的 锁 存 时 间 是 11ns
14 1.4 令 人 误 会 的 建 立 关 系 和 建 立 余 量 还 没 有 进 入 建 立 余 量 这 个 主 题 之 前 笔 者 有 责 任, 简 单 的 刷 新 刷 新 一 下 那 些 封 尘 已 久 的 记 忆 还 有 一 误 点 建 立 关 系 被 TimeQuest 称 为 "Setup Relationship", 事 实 上 这 个 Setup Relationship 是 评 估 ( 计 算 ) 建 立 余 量 (setup lack) 的 一 个 过 程 但 是, 不 知 曾 经 何 时, 在 很 多 文 章 中 Setup Relationship 的 定 义 忽 然 模 糊 起 来... 图 理 想 建 立 关 系 值 如 图 所 示, 在 理 想 的 状 态 下 建 立 关 系 值 是 10ns... 那 么 问 题 来 了, 在 这 里 我 们 需 要 严 重 的 注 意 这 个 10ns, 而 这 个 10ns 是 一 个 建 立 关 系 值, 而 Setup Relationship 是 指 分 析 建 立 关 系 的 过 程... 结 果 很 明 显 : 1. 这 个 10ns Setup Relationship 2. 这 个 10ns 是 一 个 理 想 值 而 已 3. 这 个 10ns 理 想 值, 在 Setup Relaionship 过 程 是 建 立 余 量 的 最 好 结 果! 虽 说, 上 述 的 内 容 仅 是 笔 者 的 想 法 而 已, 但 是 笔 者 始 终 认 为, 建 立 关 系 只 是 一 个 过 程, 建 立 关 系 值 是 一 个 有 用 的 理 想 值, 而 这 个 理 想 值 是 建 立 余 量 最 理 想 的 结 果 13
15 黑 金 动 力 社 区 1.5 建 立 余 量 建 立 余 量 英 文 是 setup slack, 它 是 TimeQuest 模 型 中 重 要 的 结 果 之 一, 正 值 的 建 立 余 量 使 得 两 个 寄 存 器 有 合 格 的 建 立 关 系 建 立 余 量 实 际 上 一 点 也 不 难 理 解, 让 笔 者 慢 慢 解 释 吧 : 图 理 想 时 序 图 图 有 一 对 节 点 和 和 理 想 的 建 立 关 系 过 程, 寄 存 器 1 和 寄 存 器 2 各 自 都 是 用 相 同 的 源 时 钟, 无 论 Clock1 还 是 Clock2 的 时 钟 周 期 都 是 10ns 在 图 中,Clock1 和 Clock2 之 前 的 建 立 关 系 值 是 10ns 图 物 理 的 时 序 图
16 图 是 物 理 的 建 立 关 系 过 程, 寄 存 器 1 和 寄 存 器 2 也 使 用 拥 有 相 同 属 性 的 时 钟 源 而 图 和 图 之 间 的 区 别 是, 图 有 一 大 堆 的 延 迟 我 们 接 下 来 的 工 作 就 是 要 取 得 建 立 余 量 首 先 要 取 得 Clock1 的 启 动 沿 受 延 迟 的 影 响, 而 TimeQuest 模 型 用 了 一 条 公 式 评 估 启 动 沿 受 Tclk1 + Tco + Tdata 的 影 响 : 数 据 抵 达 时 间 Time Arrival Time = 启 动 沿 时 间 + Tclk1 + Tco + Tdata = 0ns + 3.2ns + 0.2ns + 0.6ns = 4ns 接 下 来 我 们 要 取 得 Clock2 的 锁 存 沿 受 延 迟 的 影 响 同 样 TimeQuest 模 型 也 使 用 了 一 条 公 式 评 估 锁 存 沿 受 Tclk2 + Tsu 的 影 响 : 数 据 锁 存 ( 获 取 读 取 ) 时 间 Time Required Time = 锁 存 沿 时 间 + Tclk2 - Tsu = 10ns + 2ns - 1.4ns = 10.6ns 最 后 我 们 要 用 数 据 抵 达 时 间 和 数 据 锁 存 时 间 取 得 建 立 余 量 : 建 立 余 量 = 数 据 锁 存 时 间 - 数 据 抵 达 ( 获 取 读 取 ) 时 间 Setup Slack = Time Required Time - Time Arrival Time = 10.6ns - 4ns = 6.6ns 其 中 建 立 余 量 6.6ns 是 在 图 的 蓝 色 框 图 的 部 分 在 这 里, 建 立 余 量 是 正 值, 亦 即 reg1 和 reg2 之 间 的 建 立 关 系 是 合 格 可 能 读 者 会 觉 得 纳 闷 : 建 立 余 量 正 值 和 reg1 与 reg2 之 间 的 建 立 关 系 合 不 合 格 到 底 有 什 么 关 系? 呵 呵, 这 真 是 一 个 好 问 题... 就 让 笔 者 慢 慢 解 释 : 图 一 个 例 子 图 是 一 个 典 型 的 例 子, 就 是 reg1 向 reg2 发 送 数 据,reg2 从 reg1 锁 存 数 据 我 们 先 假 设 reg1 和 reg2 拥 有 相 同 性 质 的 时 钟 源, 然 后 reg2 包 含 一 个 可 以 随 意 调 整 的 Tsu 15
17 黑 金 动 力 社 区 图 加 上 Tsu 延 迟 因 素 Tsu 表 示 了 锁 存 方 的 寄 存 器 在 读 取 数 据 之 前 所 需 要 的 最 小 准 备 时 间, 图 中 的 理 建 立 关 系 值 是 10ns, 假 设 为 2ns... 锁 存 沿 从 原 本 10ns 的 位 置 返 回 8ns 的 位 置, 那 么 建 立 余 量 从 10ns 慢 慢 减 至 8ns 结 果 建 立 余 量 还 是 正 值, 而 锁 存 沿 还 顶 着 数 据 图 延 迟 因 素 Tsu 调 大 一 点 如 图 所 示, 假 设 在 把 Tsu 调 大 至 3ns, 锁 存 沿 从 原 本 10ns 的 位 置 返 回 7ns 的 位 置, 那 么 建 立 余 量 也 从 原 本 的 8ns 的 再 降 至 7ns, 不 过 建 立 余 量 还 是 正 值 换 言 之, 只 要 建 立 余 量 还 是 正 值, 寄 存 器 2 读 取 Reg1-Q 的 数 据 也 是 没 有 问 题 的
18 图 还 是 把 Tsu 调 大 一 点 图 中 的 Tsu 再 再 假 设 调 大 至 4ns, 锁 存 沿 从 原 本 10ns 的 位 置 返 回 6ns 的 位 置, 那 么 建 立 余 量 也 从 原 本 的 7ns 降 至 6ns 不 过 建 立 余 量 的 结 果 还 是 正 值, 如 果 寄 存 器 2 锁 存 数 据, 也 是 没 问 题 的 说... 总 结 说, 只 要 建 立 余 量 大 于 0, 那 么 两 个 寄 存 器 之 间 的 建 立 关 系 就 没 有 问 题 =================================================================== 经 过 几 番 理 解, 读 者 是 不 是 对 建 立 关 系 值 有 一 点 头 绪 了? 在 理 想 的 情 况 下, 建 立 余 量 一 定 是 理 想 的 建 立 关 系 值 此 外, 这 个 理 想 的 建 立 关 系 值 还 有 简 化 公 式 的 作 用 : 在 前 面, 我 们 知 道 为 了 计 算 建 立 余 的 公 式 是 : 建 立 余 量 = 数 据 锁 存 ( 获 取 读 取 )- 数 据 抵 达 时 间 其 中 数 据 锁 存 ( 获 取 读 取 ) 时 间 的 公 式 是 : 数 据 锁 存 ( 获 取 读 取 ) 时 间 = 锁 存 沿 时 间 + Tclk2 - Tsu 读 者 知 道 吗? 锁 存 沿 时 间 基 本 上 就 是 理 想 的 建 立 关 系 值 同 学 们 可 能 会 觉 得 笔 者 在 胡 扯, 很 好! 就 让 笔 者 尝 试 用 几 个 例 子 来 解 释 这 一 点 17
19 黑 金 动 力 社 区 图 Clock2 位 移 -36 度 图 中 的 Clock1 没 有 变 化, 换 之 Clock2 位 移 -36 度, 亦 即 Clock2 比 起 Clock1 提 早 1ns Clock2 移 位 -36 度 又 意 味 着 什 么 呢? 它 意 味 着 Clock1 和 Clock2 的 理 想 建 立 关 系 值 已 经 改 变 了, 结 果 为 9ns 图 Cock2 经 过 -36 度 位 移 的 物 理 时 序 图 图 是 图 物 理 的 建 立 关 系 过 程, 在 前 面 我 们 知 道 Clock1 和 Clock2 之 间 的 理 想 建 立 关 系 值 是 9ns...
20 数 据 抵 达 时 间 Time Arrival Time = 启 动 沿 时 间 + Tclk1 + Tco + Tdata = 0ns + 3.2ns + 0.2ns + 0.6ns = 4ns 数 据 锁 存 ( 获 取 读 取 ) 时 间 Time Required Time = 锁 存 沿 时 间 + Tclk2 - Tsu = 9ns + 2ns - 1.4ns = 9.6ns 建 立 余 量 = 数 据 锁 存 时 间 - 数 据 抵 达 ( 获 取 读 取 ) 时 间 Setup Slack = Time Required Time - Time Arrival Time = 9.6ns - 4ns = 5.6ns 我 们 取 得 5.6ns 的 建 立 余 量, 亦 即 建 立 关 系 合 格 在 这 里 稍 微 注 意 一 下 锁 存 沿 时 间 的 9ns, 结 果 是 不 是 和 理 想 建 立 关 系 值 的 9ns 一 模 一 样 呢? 读 者 : 慢 着 慢 着... 我 差 点 就 要 被 笔 者 忽 悠 了... 笔 者 这 样 说 是 不 是 太 扯 了!? 还 是 不 相 信 吗? 那 好, 笔 者 再 举 另 一 个 例 子, 这 回 请 看 好 呀 =================================================================== 图 Clock2 位 移 +36 度 图 是 Clock2 位 移 +36, 也 就 是 延 迟 了 1ns, 这 也 使 得 Clock1 对 应 Clock2 的 理 想 建 立 关 系 值 是 11ns 19
21 黑 金 动 力 社 区 图 Cock2 经 过 +36 度 位 移 的 物 理 时 序 图 图 是 Clock2 经 过 +36 度 位 移 后 的 物 理 建 立 关 系 过 程, 然 而 理 想 的 建 立 关 系 值 是 11ns 在 这 里, 我 们 计 算 建 立 余 量 之 余, 也 看 看 理 想 建 立 关 系 值 是 不 是 和 锁 存 沿 时 间 等 价? 数 据 抵 达 时 间 Time Arrival Time = 启 动 沿 时 间 + Tclk1 + Tco + Tdata = 0ns + 3.2ns + 0.2ns + 0.6ns = 4ns 数 据 锁 存 ( 获 取 读 取 ) 时 间 Time Required Time = 锁 存 沿 时 间 + Tclk2 - Tsu = 11ns + 2ns - 1.4ns = 11.6ns 建 立 余 量 = 数 据 锁 存 时 间 - 数 据 抵 达 ( 获 取 读 取 ) 时 间 Setup Slack = Time Required Time - Time Arrival Time = 11.6ns - 4ns = 7.6ns 有 没 有 看 到? 理 想 建 立 关 系 值 和 锁 存 沿 时 间 在 评 估 数 据 锁 存 时 间 是 等 价 的 关 系... 当 然 理 想 建 立 关 系 值 的 作 用 不 仅 而 已, 它 作 用 还 偶 用 来 评 估 建 立 余 量 在 原 理 上 建 立 余 量 是 不 可 能 超 过 理 想 建 立 关 系 值, 如 果 超 过 了, 那 么 两 个 节 点 ( 寄 存 器 ) 之 间 的 建 立 关 系 就 违 规, 或 者 不 合 格 化 了
22 1.6 保 持 余 量 保 持 时 间 在 寄 存 器 的 概 念 中 是 表 示 : 寄 存 器 在 读 取 某 个 数 据 以 后, 需 用 一 段 最 小 时 间 来 确 保 数 据 锁 存 的 稳 定 然 而 保 持 余 量 的 定 义 是 指 : 在 两 个 节 点 ( 寄 存 器 ) 之 间, 在 分 析 保 持 关 系 的 过 程 中 到 底 有 多 少 剩 时 间 可 以 提 供 给 寄 存 器 用 来 确 保 已 存 数 据 的 稳 定 嗯... 同 学 们 是 不 是 开 始 抓 狂 了? 那 么 我 们 来 看 一 副 图... 图 不 同 的 理 想 保 持 关 系 值 让 我 们 先 回 忆 一 下, 如 何 取 得 理 想 保 持 关 系 值... 亦 即 下 一 个 启 动 沿 和 当 前 锁 存 沿 之 间 的 距 离 图 中 呈 现 不 同 的 理 想 保 持 关 系 值, 笔 者 曾 说 过... 只 有 当 Clock1 和 Clock2 使 用 相 同 性 质 的 时 钟 的 时 候, 理 想 的 保 持 关 系 值 才 是 0ns 当 Clock2 有 -36 度 的 位 移, 亦 即 Clock2 比 起 Clock1 提 早 1ns, 那 么 理 想 保 持 关 系 值 是 -1ns 又 当 CLock2 有 +36 度 的 位 移, 亦 即 Clock2 比 起 Clock1 延 迟 1ns, 那 么 理 想 保 持 关 系 值 是 1ns 其 中 这 个 0ns,-1ns,+1ns 理 想 保 持 关 系 值 到 底 对 取 得 保 持 余 量 有 什 么 作 用 呢? 在 这 里 笔 者 需 要 强 调 一 下! 保 持 余 量 在 英 文 中 Hold Slack, 然 而 保 持 关 系 Hold 21
23 黑 金 动 力 社 区 Relationship 是 求 出 两 个 寄 存 器 ( 节 点 ) 之 间 的 保 持 余 量 的 过 程 1. 这 个 0ns,-1ns,1ns Hold Relationship 2. 这 个 0ns,-1ns,1ns 是 一 个 理 想 值 而 已 3. 这 个 0ns,-1ns,1ns 理 想 值, 在 Hold Relaionship 的 过 程 中 保 持 余 量 的 参 考 值 而 已! 图 在 物 理 保 持 关 系 中 出 现 的 延 迟 因 数 笔 者 也 在 前 面 好 像 说 过 : 保 持 关 系 是 指 寄 存 器 1 在 还 没 有 更 新 输 出 之 前, 寄 存 器 2 用 最 快 速 的 速 度 读 取 从 寄 存 器 1 发 送 过 来 的 数 据 在 理 想 的 时 序 图 中 理 想 的 保 存 时 间 都 是 0ns, 然 而 理 想 保 持 关 系 值 却 不 是 理 想 的 保 存 时 间 理 想 保 持 关 系 值 是 指, 在 理 想 状 态 下, 在 两 个 寄 存 器 之 间 得 到 的 一 个 可 以 参 考 的 值 而 已 图 是 物 理 建 立 关 系 过 程, 在 两 个 寄 存 器 ( 节 点 ) 之 间 的 保 持 关 系 中 有 许 多 延 迟 因 数 Tclk1 是 寄 存 器 1 时 钟 源 的 路 径 延 迟,Tco 是 寄 存 器 1 更 新 数 据 的 时 候, 最 小 的 消 耗 时 间,Tdata 是 寄 存 器 1 向 寄 存 器 2 发 送 数 据 时 最 小 的 数 据 路 劲 延 迟,Tclk2 是 寄 存 器 2 时 钟 源 的 路 径 延 迟, 最 后 的 Th 是 寄 存 器 2 用 来 确 保 已 存 数 据 的 最 小 时 间 TimeQuest 模 型 也 用 了 一 条 公 式 评 估 启 动 沿 受 Tclk1 + Tco + Tdata 延 迟 因 数 的 影 响 : 数 据 保 持 时 间 Data Hold Time = 启 动 沿 + Tclk1 + Tco + Tdata + 数 据 周 期 时 间 再 来 TimeQuest 模 型 同 样 也 用 一 条 公 式 评 估 锁 存 沿 受 Tclk2 + Th 延 迟 因 素 的 影 响 : 数 据 锁 存 ( 读 取 获 取 ) 时 间 Data Required Time = 锁 存 沿 + Tclk2 + Th 不 知 同 学 们 有 没 有 注 意 到, 图 中 的 Th 出 现 微 妙 的 箭 头 方 向? 在 前 面 的 内 容 中, 如 果 箭 头 是 会 使 得 锁 存 沿 向 左 位 移, 如 果 箭 头 是, 是 不 是 会 使 得 锁 存 沿 向 右 位 移 呢? 呵 呵... 接 下 来 我 们 来 看 物 理 时 序 图 :
24 图 存 在 延 迟 因 素 的 保 持 关 系 过 程 图 是 物 理 的 保 持 关 系 过 程 和 相 关 的 时 序 图, 红 色 一 方 是 启 动 沿 受 延 迟 以 后 的 结 果, 绿 色 一 方 是 锁 存 沿 受 延 迟 因 数 的 影 响, 浅 蓝 色 一 方 是 保 持 余 量 那 么 求 得 保 持 余 量 的 公 式 是 : 保 持 余 量 = 数 据 保 持 时 间 - 数 据 锁 存 ( 获 取 读 取 ) 时 间 感 觉 这 样 说 太 抽 象 了, 笔 者 还 是 给 图 填 上 数 字 来 得 更 形 象 23
25 黑 金 动 力 社 区 图 物 理 时 序 与 建 立 余 量 数 据 保 持 时 间 Data Hold Time = 启 动 沿 + Tclk1 + Tco+ Tdata + 数 据 周 期 时 间 = 0ns + 3.2ns + 0.2ns + 0.6ns + 10ns = 14ns 数 据 锁 存 ( 读 取 获 取 ) 时 间 Data Required Time = 锁 存 沿 + Tclk2 + Th = 10ns + 2ns + 1.4ns = 13.4ns 保 持 余 量 Hold Slack = 数 据 保 持 时 间 - 数 据 锁 存 ( 获 取 读 取 ) 时 间 = 14ns ns = 0.6ns 最 后 取 得 的 保 持 余 量 是 0.6ns... 这 也 意 味 着 保 持 余 量 是 正 值, 所 以 寄 存 器 1 和 寄 存 器 2 之 间 的 保 持 关 系 是 合 格 的 在 这 里, 读 者 可 能 会 觉 得 纳 闷 : 寄 存 器 之 间 的 保 持 关 系 合 格 化, 到 底 和 保 持 余 量 有 什 么 关 系? 呵 呵 呵! 我 们 先 假 设 寄 存 器 2 的 Th 延 迟 因 素 可 以 调 制 的 话...
26 图 不 同 的 Th 和 不 同 的 建 立 余 量 图 表 示 了 不 同 的 Th 和 不 同 的 建 立 余 量 同 学 们 还 记 得 建 立 关 系 的 定 义 吗? 就 是 寄 存 器 1 发 送 的 数 据 在 更 新 ( 更 换 ) 之 前, 寄 存 器 2 可 用 最 短 的 时 间 去 锁 存 数 据 在 此, 保 持 余 量 除 是 提 供 给 Th 有 余 时 间 以 外, 它 还 也 表 示 只 要 保 持 余 量 一 天 还 是 正 值, 那 么 寄 存 器 2 在 寄 存 器 更 换 数 据 之 前, 寄 存 器 2 就 有 多 少 可 以 优 哉 读 取 数 据 的 时 间 保 持 余 量 的 故 事 就 先 告 一 个 段 落.. 注 意, 到 目 前 为 止 理 想 保 持 关 系 值 还 没 有 出 场 到 =================================================================== 在 这 里, 笔 者 要 告 诉 告 诉 读 者 们 一 个 非 常 坏 的 消 息... 一 些 顽 皮 的 读 者 估 计 已 经 发 现 到, 前 面 的 内 容 视 乎 和 TimeQuest 的 手 册, 或 者 官 方 相 关 内 容 是 大 为 不 同? 甚 至 怀 疑 笔 者 是 不 是 搞 错 了? 然 后 借 机 寻 找 笔 者 的 痛 脚... 嘛, 这 一 切 的 一 切 都 有 深 长 的 因 缘... 接 下 来 慢 慢 听 笔 者 解 释! 早 期 在 TimeQuest 将 近 完 成 之 际, 有 一 位 师 兄 说 道 : 师 兄 : 没 日 没 夜 的 项 目 终 于 要 搞 一 个 段 落 了, 非 常 期 待 这 款 软 件 发 出 后, 会 不 会 给 fpga 界 一 个 大 惊 喜 呢? 那 些 第 二 第 三 的 工 程 师 们, 一 定 要 把 我 当 神 拜 忽 然 间, 一 位 师 弟 插 嘴 道 师 弟 : 老 大, 你 过 来 看 一 下... 求 出 建 立 余 量 和 保 持 余 量 的 公 式 是 不 是 不 够 和 谐? 师 兄 : 怎 么 不 和 谐 呢? 我 的 设 计 是 接 近 神 级 的... 师 弟 : 有 没 有 办 法 把 求 出 建 立 余 量 和 保 持 余 量 的 公 式 凑 合 凑 合, 两 者 可 以 共 用 同 一 个 公 式? 那 么 你 的 设 计 可 以 更 神 一 层 楼 师 兄 : 对 呀, 你 怎 么 不 早 说, 我 的 世 界 是 没 有 最 完 美, 只 有 更 完 美... 就 这 样, 建 立 余 量 和 保 持 余 量 的 共 用 公 式 就 次 诞 生 了 在 前 面 笔 者 说 过 无 论 是 理 想 的 建 立 关 系 值 或 者 理 想 的 保 持 关 系 值 它 们 的 作 用 出 了 供 参 考 以 外, 还 有 简 化 TimeQuest 模 型 这 一 句 是 千 真 万 确 的, 因 为 保 持 余 量 的 求 出 过 程 实 在 太 猥 琐 了, 在 此 为 了 简 化 求 出 保 持 余 量 的 过 程, 保 持 余 量 和 建 立 余 量 共 享 同 一 个 公 式, 那 么 这 个 理 想 保 持 关 系 值 是 必 须 的 25
27 黑 金 动 力 社 区 好 了, 笔 者 继 续 以 上 述 的 例 子 为 例 子 : 图 理 想 保 持 关 系 图 是 理 想 的 保 持 关 系 过 程, 而 理 想 的 保 持 关 系 值 既 是 0ns 图 求 出 保 持 余 量 的 物 理 时 序 图 接 下 来, 让 我 们 来 看 看 看 建 立 余 量 和 保 持 余 量 如 何 共 享 一 个 公 式? TimeQuest 用 了 一 条 公 式 评 估 启 动 沿 受 Tclk1 + Tco + Tdata 延 迟 因 数 的 影 响 : 数 据 抵 达 时 间 Data Arrival Time = 启 动 沿 + Tclk1 + Tco + Tdata ( 注 意 : 此 时 不 是 数 据 保 持 时 间 Data Hold Time, 所 以 也 没 有 加 入 数 据 周 期 时 间 )
28 TimeQuest 也 用 了 一 个 条 式 评 估 锁 存 沿 受 Tclk2 + Th 延 迟 因 数 的 影 响 : 数 据 锁 存 ( 获 取 读 取 ) 时 间 Data Required Time = 锁 存 沿 + Tclk2 + Th = 理 想 保 持 关 系 值 + Tclk2 + Th ( 注 意 : 这 个 评 估 锁 存 沿 受 延 迟 因 素 影 响 的 公 式 和 求 得 建 立 余 量 时 数 据 锁 存 时 间 的 公 式 非 常 类 似 ) 那 么 求 得 的 保 持 余 量 是 : 保 持 余 量 = 数 据 抵 达 时 间 - 数 据 锁 存 ( 获 取 读 取 ) 时 间 好 了, 现 在 我 们 套 用 这 个 公 式 求 出 图 中 的 保 持 余 量 数 据 抵 达 时 间 Data Arrival Time = 启 动 沿 + Tclk1 + Tco + Tdata = = 4ns 数 据 锁 存 ( 获 取 读 取 ) 时 间 Data Required Time = 锁 存 沿 + Tclk2 + Th = 理 想 保 持 关 系 值 + Tclk2 + Th = 0ns + 2ns + 1.4ns = 3.4ns 保 持 余 量 = 数 据 抵 达 时 间 - 数 据 锁 存 ( 获 取 读 取 ) 时 间 = 4ns - 3.4ns = 0.6ns 咦 咦 咦? 求 出 的 结 果 确 实 是 一 样 哦? 难 道 是 TimeQuest 在 变 魔 术? 还 是 自 己 眼 花 了? 同 学 们 我 们 都 没 有 看 错... 不 错! 那 是 TimeQuest 模 型 的 公 式 戏 法 事 实 上 不 是 TimeQuest 在 变 魔 术, 而 是 TimeQuest 模 型 懒 得 用 头 脑 求 得 保 持 余 量, 随 之 就 用 屁 股 求 得 保 持 余 量, 这 话 何 解 呢? 27
29 黑 金 动 力 社 区 图 用 头 脑 求 得 保 持 余 量 图 是 用 头 脑 求 得 保 持 余 量 的 方 法, 也 就 是 说 红 色 部 分 的 长 度 - 绿 色 部 分 的 长 度, 亦 即 用 数 据 保 持 时 间 减 掉 数 据 抵 达 时 间 用 傻 瓜 的 话 来 讲, 求 得 保 持 余 量 必 须 从 0ns 开 始 算 起 图 用 屁 股 求 得 保 持 余 量 图 是 用 屁 股 求 得 保 持 余 量 的 方 法, 换 句 话 说 就 是 用 下 一 个 启 动 沿 的 红 色 部 分 减 掉 当 前 锁 存 沿 绿 色 的 部 分, 其 中 就 要 用 到 理 想 保 持 关 系 值 如 果 继 续 用 屁 股 来 解 释 的 话, 那 么 将 启 动 沿 的 总 和 延 迟 时 间 减 掉 锁 存 沿 的 总 和 延 迟 时 间, 然 后 顺 便 参 考 一 下 理 想 保 持 关 系 值 啊... 同 学 们 别 那 么 惊 讶, 笔 者 也 只 是 把 事 实 说 出 来 而 已, 师 兄 确 实 为 了 使 建 立 余 量 和 保 持 余 量 可 以 共 用 一 个 公 式, 才 会 开 始 用 屁 股 想 东 西 如 果 同 学 们 还 是 不 相 信 的 话, 我 们 可 以 用 几 个 例 子 来 实 验 看 看 :
30 图 Clock2 位 移 -36 度 图 是 理 想 的 保 持 关 系 过 程, 其 中 Clock1 对 应 Clock2 的 理 想 保 持 关 系 值 是 -1ns 而 图 是 物 理 的 保 持 关 系 过 程 图 Clock2 位 移 -36 度 的 物 理 时 序 图 好 了 笔 者 先 用 头 脑 求 得 保 持 余 量 : 保 持 余 量 = 数 据 保 持 时 间 - 数 据 锁 存 ( 获 取 读 取 ) 时 间 = ( 启 动 沿 + Tclk1 + Tco + Tdata + 数 据 时 间 周 期 )-( 锁 存 沿 + Tclk2 + Th) =( )ns -( )ns = 14ns ns 29
31 黑 金 动 力 社 区 = 1.6ns 如 果 用 屁 股 求 得 保 持 余 量 : 保 持 余 量 = 数 据 抵 达 时 间 - 数 据 锁 存 ( 获 取 读 取 ) 时 间 =( 启 动 沿 + Tclk1 + Tco + Tdata)-( 锁 存 沿 + Tclk2 + Th) =( 启 动 沿 + Tclk1 + Tco + Tdata)-( 理 想 保 持 关 系 值 + Tclk2 + Th) =( )ns -( )ns = 4ns - 2.4ns = 1.6ns 在 这 里, 可 能 有 同 学 要 问 : 用 屁 股 求 得 余 量 为 什 么 启 动 沿 的 时 间 不 是 10 而 是 0 呢? 很 简 单 呀, 如 果 用 屁 股 来 求 得 保 持 余 量, 那 么 下 一 个 启 动 沿 的 时 间, 被 视 为 重 新 开 始, 亦 即 0ns 而 不 是 10ns 这 一 点 要 好 好 的 记 住
32 总 结 : TimeQuest 说 得 简 单 点 就 是 为 懒 人 准 备 的 物 理 时 序 分 析 工 具, 关 于 物 理 时 序 分 析 " 的 概 念 就 自 己 维 基 百 科 看 看 吧 其 中 TimeQuest 有 自 己 的 一 套 模 型 用 来 分 析 物 理 时 序 从 何 摆 脱 猥 琐 的 时 序 分 析 工 作, 但 是 TimeQuest 的 模 型 使 用 步 骤 还 是 一 样 猥 琐 不 少 在 宏 观 上 TimeQuest 的 模 型 是 基 于 两 个 节 点 和 才 能 成 立 有 关 节 点 在 TimeQuest 模 型 里 的 定 义 有 很 多 很 多, 但 是 为 了 简 化 笔 记 的 内 容 笔 者 就 先 吧 节 点 充 当 寄 存 器, 更 多 有 关 节 点 的 故 事 以 后 再 谈 TimeQuest 模 型 为 了 确 定 两 个 寄 存 器 ( 节 点 ) 之 间 的 时 序 是 合 格 的, 所 以 用 了 建 立 关 系 和 保 持 关 系 的 概 念 在 理 想 的 状 态 下 建 立 关 系 有 一 个 理 想 的 建 立 关 系 值, 反 之 保 持 关 系 有 一 个 理 想 的 保 持 关 系 值, 它 们 的 作 用 出 了 提 供 参 考 以 外, 还 可 以 简 化 TimeQuest 模 型 保 持 关 系 和 建 立 关 系 会 随 着 理 想 时 钟 源 的 状 态 也 会 产 生 不 同 的 理 想 建 立 关 系 值 和 理 想 保 持 关 系 值 那 么 TimeQuest 的 模 型 又 用 什 么 方 法 来 确 定 两 个 寄 存 器 之 间 的 建 立 关 系 和 保 持 关 系 是 合 格 的 呢? 建 立 关 系 确 保 合 格 的 办 法 就 是 取 得 正 值 的 建 立 余 量, 同 样 的 保 持 关 系 确 保 合 格 办 法 就 是 取 得 正 值 的 保 持 余 量 求 得 建 立 余 量 的 公 式 是 : 保 持 余 量 = 数 据 锁 存 时 间 - 数 据 抵 达 时 间 Setup Slack = Data Required Time - Data Arrival Time 数 据 抵 达 时 间 Data Arrival Time = 启 动 沿 + Tclk1 + Tco + Tdata 数 据 获 取 时 间 Data Required Time = 锁 存 沿 + Tclk2 - Tsu = 理 想 建 立 关 系 值 + Tclk2 - Tsu 求 得 保 持 余 量 的 公 式 是 :( 用 头 脑 的 话 ) 保 持 余 量 = 数 据 保 持 时 间 - 数 据 获 取 时 间 Hold Slack = Data Hold Time - Data Required TIme 数 据 保 持 时 间 Data Hold Time = 启 动 沿 + Tclk1 + Tco + Tdata + 数 据 周 期 时 间 数 据 获 取 时 间 Data Required Time = 锁 存 沿 + Tclk2 + Th ( 不 要 问 我 数 据 周 期 时 间 如 何 得 到, 如 果 稍 微 有 Verilog HDL 语 言 的 时 序 概 念 的 话, 都 31
33 黑 金 动 力 社 区 会 知 道 如 何 取 得 一 般 上 数 据 周 期 时 间 等 价 于 该 时 钟 源 的 周 期 时 间 ) 求 得 保 持 余 量 的 公 式 是 :( 用 屁 股 的 话 ) 保 持 余 量 = 数 据 抵 达 时 间 - 数 据 获 取 时 间 Hold Slack = Data Arrival Time - Data Required Time 数 据 抵 达 时 间 Data Arrival Time = 启 动 沿 + Tclk1 + Tco + Tdata 数 据 获 取 时 间 Data Required Time = 锁 存 沿 + Tclk2 + Th = 理 想 保 持 关 系 值 + Tclk2 + Th =================================================================== 好 了, 笔 者 差 不 多 要 结 束 这 一 章 节 的 笔 记 了 这 一 章, 笔 者 只 是 单 纯 又 简 单 的 讲 解 : 学 习 TimeQuest 模 型 的 概 念 时 容 易 陷 入 的 几 个 灰 区 而 已 此 外, 笔 者 也 大 概 的 讲 解 TimeQuest 模 型 中 用 到 的 公 式 和 物 理 时 序 中 出 现 的 东 东 如 果 按 照 一 般 方 法 去 学 习 TimeQuest 的 话, 很 容 易 撞 墙 而 已, 又 或 者 会 被 训 练 成 为 纯 公 式 的 使 用 者 TimeQuest 模 型 是 一 个 很 有 趣 的 东 西, 如 果 用 纯 公 式 的 方 法 去 使 用 的 话, 就 无 法 体 验 到 TimeQuest 的 有 趣 之 处 以 外, 也 不 能 享 受 学 习 的 乐 趣
34 第 二 章 : 模 型 角 色, 网 表 概 念, 时 序 报 告 2.1 TimeQuest 模 型 的 努 力 我 们 知 道 TimeQuest 的 存 在 是 某 师 兄 所 追 求 的 神 器, 目 的 是 要 给 懒 人 们 一 个 解 决 物 理 时 序 的 福 利, 其 中 最 耀 眼 的 就 是 TimeQuest 模 型 在 前 面 笔 者 也 曾 介 绍 过 TimeQuest 模 型 它 是 什 么? 它 基 于 什 么? 它 有 什 么 误 点? 然 在 这 一 章 节 当 中, 笔 者 将 会 讨 论 它 是 用 来 干 什 么? TimeQuest 模 型 是 用 来 解 决 两 个 点 寄 存 器 ( 节 点 ) 之 间 的 建 立 关 系 和 保 持 关 系 问 题 但 是 在 一 个 最 简 单 的 HDL 设 计, 不 可 能 仅 是 由 两 个 寄 存 器 就 组 成, 里 边 可 能 会 有 很 多 很 多 很 多 对 寄 存 器 结 果 TimeQuest 就 会 用 自 己 的 时 序 分 析 模 型, 逐 个 检 查 很 多 很 多 很 多 对 寄 存 器 之 间 的 建 立 关 系 和 保 持 关 系 是 否 合 格 化 试 想 看 看, 举 例 最 简 单 的 计 数 器 设 计, 里 边 就 有 多 少 对 寄 存 器? 而 且 TimeQuest 这 个 机 器 将 会 逐 个 去 分 析 保 持 关 系 和 建 立 关 系,TimeQuest 的 行 为 和 努 力 真 是 让 笔 者 感 动 到 全 身 扑 地 好 了 不 多 废 话 了, 进 入 主 题 吧 33
35 黑 金 动 力 社 区 2.2 SDC 的 网 表 (Net Lists) 基 本 单 位 网 表 Net Lists 是 什 么? 嗯... 笔 者 真 的 不 想 用 太 多 专 业 的 话 来 讲 因 为 太 无 趣 了, 因 此 我 们 从 另 一 个 角 度 去 看 网 表 笔 者 喜 欢 把 FPGA 看 成 一 座 巨 大 的 逻 辑 资 源 库, 如 果 读 者 喜 欢 玩 具 的 话, 也 可 以 把 它 看 成 乐 高 积 木 库, 那 么 HDL 就 是 这 个 逻 辑 资 源 库 的 建 模 工 具 但 是 有 一 点 比 较 不 同 的 是,HDL 是 一 个 理 想 的 工 具,HDL 的 建 模 是 软 模 型, 然 而 网 表 就 是 硬 模 型 FPGA 综 合 的 过 程 就 像 我 们 日 常 建 立 机 械 模 型 那 样, 我 们 必 须 先 在 电 脑 上 建 立 一 个 软 模 型 当 软 模 型 的 经 过 电 脑 模 拟 和 测 试 以 后, 那 么 它 会 成 为 硬 模 型 的 理 想 参 考 物, 最 后 模 型 设 备 会 根 据 这 个 软 模 型, 把 金 属 生 肉 加 工 成 为 实 物 在 FPGA 综 合 的 过 程 中, 逻 辑 资 源 之 间 会 开 始 布 线, 把 相 关 的 单 位 连 线 起 来 设 计 有 多 大, 那 么 连 线 的 数 量 就 越 多, 最 终 这 庞 大 的 连 线 就 成 为 网 表 图 布 线 过 程 连 线 网 表 的 概 念 图 图 是 布 线 过 程 的 概 念 图... 布 线 过 程 就 是 按 软 模 型, 在 FPGA 巨 大 的 资 源 库 里 建 立 硬 模 型, 逻 辑 资 源 之 间 的 链 接 称 为 连 线, 所 有 连 线 的 总 和 称 为 网 表 明 白 了 吗? 对 于 不 同 的 性 质 的 网 表 都 有 不 同 的 基 本 单 位, 对 于 TimeQuest 来 说 它 是 使 用 SDC 网 表 有 关 SDC 的 背 景 请 维 基 百 科 一 下... 它 不 在 讨 论 范 围 之 内 SDC 网 表 有 它 自 己 的 基 本 单 位, 至 于 是 那 些 基 本 单 位 呢? 基 本 单 位 说 明 Cell SDC 网 表 中 最 普 遍 的 个 体 FPGA 中 可 以 找 到 的 寄 存 器 呀, 片 上 RAM 呀,PLL 资 源 呀, 硬 件 乘 法 器 等 逻 辑 资 源 Pin Cell 进 出 口 Net Pins 之 间 的 连 线 Port 顶 层 模 块 的 顶 层 输 入 输 出 口
36 Cell 从 另 一 个 角 度 来 看, 任 何 FPGA 的 逻 辑 资 源 都 可 以 看 成 Cell Pin 是 每 一 个 Cell 的 进 出 口 ( 软 引 脚 ) Net 就 是 连 线 了, 最 后 的 Port 就 是 顶 层 模 块 的 输 入 输 出 口 ( 硬 引 脚 ) 好 了, 笔 者 就 以 一 个 或 模 块 or_module.v 来 解 释 图 或 模 块 的 建 模 图 图 是 一 个 软 模 块, 亦 即 或 模 块 的 建 模 图, 它 有 A_Sig,B_Sig 和 CLK_Sig 输 入, 金 额 Q_Sig 输 出 当 这 个 或 模 块 经 过 综 合 和 布 线 以 后, 它 会 成 为... 图 布 线 过 后 的 或 模 块 图 是 经 过 布 线 过 后 的 或 模 块, 每 一 个 绿 色 框 框 都 是 Cell, 每 一 个 红 色 箭 头 都 是 Pin 每 一 个 连 线 都 是 Net 但 是 有 一 点 比 较 暧 昧 的 就 是 输 入 输 出 口, 它 既 是 Cell 也 是 Port, 这 到 底 是 什 么 一 回 事 呢? 35
37 黑 金 动 力 社 区 图 配 置 引 脚 后 就 成 为 Port 图 是 从 图 的 基 础 上, 将 CLk_Sig 和 Q_Sig 配 上 引 脚, 最 终 造 就 它 们 都 变 身 为 Port SDC 网 表 的 基 本 单 位 看 看 就 好 了, 不 要 太 计 较 它 们 是 什 么, 因 为 它 们 的 作 用 不 大, 不 过 它 们 又 有 什 么 作 用 呢? 图 某 个 约 束 命 令, 基 本 单 位 的 作 用 如 图 所 示, 笔 者 简 单 举 例 一 个 约 束 命 令, 其 功 能 先 不 管 基 本 上, 基 本 单 位 的 作 用 就 是 为 约 束 命 令 设 置 源 对 象 (Source) 或 者 目 标 对 象 (Targets) 而 已, 如 图 所 示... 有 一 个 名 为 create_generated_clock 的 约 束 命 令, 它 约 束 的 源 对 象 是 pll 的 输 出 pin, 亦 即 clk1, 而 约 束 的 目 前 对 象 就 是 名 为 SDRAM_CLK 的 输 出 port
38 2.3 TimeQuest 模 型 的 简 单 实 例 实 验 一 : 入 门 实 验 想 了 想, 笔 者 还 是 用 一 个 简 单 的 实 例 来 搞 清 楚, 大 体 上 TimeQuest 模 型 是 如 何 工 作... 这 样 的 话, 笔 者 也 可 以 省 下 许 多 口 水, 读 者 认 识 也 可 以 得 更 具 体 图 分 频 模 块 的 建 模 图 图 是 久 违 的 建 模 图, 它 是 名 为 divide_module.v 的 分 频 模 型, 而 主 要 功 能 是 把 CLK_Sig 实 现 4 分 频, 然 后 输 出 至 Q_Sig 1. module C1_module 2. ( 3. input CLK_Sig, 4. output Q_Sig 5. ); /*********************/ reg [2:0]C1; ( posedge CLK_Sig ) C1 <= C1 + 1'b1; /***********************/ assign Q_Sig = C1[2]; /***********************/ endmodule 代 码 很 简 单 而 已, 连 小 孩 子 都 看 懂 了, 读 者 不 可 能 看 不 懂 吧? 看 不 懂 的 朋 友 自 己 仿 真 看 看 就 好 了 这 个 分 频 模 块 的 内 容 也 超 级 简 单, 就 是 把 C1[3] 驱 动 Q_Sig( 第 15 行 ) 37
39 黑 金 动 力 社 区 图 TMV 视 图 图 是 分 频 模 块 的 Technology Mapping Viewer, 关 于 这 种 视 图 还 真 的 是 不 常 用, 它 不 过 是 用 来 分 析 物 理 时 序 才 用 得 到 的 理 想 概 念 视 图 而 已 接 下 来 我 们 来 看 看, 分 配 模 块 的 里 边 到 底 有 多 少 对 寄 存 器 ( 节 点 ) 需 要 TimeQuest 去 分 析 他 们 之 间 的 建 立 关 系 和 保 持 关 系 图 六 对 寄 存 器 的 建 立 关 系 需 要 分 析 图 六 对 寄 存 器 的 保 持 关 系 需 要 分 析 同 学 们 千 万 不 要 慌 图 2.3.3~4 的 结 果 是 如 何 得 到 的.. 在 这 里, 笔 者 只 是 要 读 者 弄 明 白 TimeQuest 模 型 分 析 物 理 路 径 的 大 概 经 过 而 已, 同 学 乖... 暂 时 先 忍 耐 图 第 三 对 C1[0]~C1[0] 寄 存 器 让 我 们 先 看 第 第 3 对, 亦 即 C1[0] ~ C1[0] 的 分 析 经 过 在 此 读 者 可 能 会 觉 得 疑 惑, 同 样 都 是 C1[0] 节 点, 为 何 建 立 关 系 和 保 持 关 系 的 分 析 过 程 会 成 立 呢? 读 者 稍 微 注 意 一 下,
40 图 的 C1[0] 的 输 出 方 向, 除 了 reg2-q 以 外, 它 还 反 馈 给 自 己 的 reg1-q, 节 点 C1[0]~C1[0] 也 因 此 成 立 图 把 C1[0] 拆 开 的 概 念 图 图 是 比 较 人 性 化 的 概 念 图, 只 要 有 两 个 寄 存 器 ( 节 点 ) 那 么 TimeQuest 模 型 就 可 以 开 始 分 析 它 们 之 间 的 建 立 关 系 和 保 持 关 系 了 图 第 一 ( 六 ) 对 C1[1]~C1[2] 寄 存 器 相 比 之 下, 节 点 C1[1]~C1[2] 比 起 节 点 C1[0]~C[0] 更 容 易 理 解 C1[1] 是 寄 存 器 1 的 第 1 位, 而 C1[2] 则 是 寄 存 器 2 的 第 2 位,LOGIC_CELL_COMB 是 Tdata 延 迟 然 而 其 他 节 点 也 有 大 同 小 异 的 情 形, 笔 者 就 不 一 一 解 释 了, 自 己 看 着 办 吧 就 这 样 TimeQuest 模 型 会 一 对 一 对 的 分 析 节 点 之 间 的 建 立 关 系 和 保 持 关 系, 一 个 设 计 里 边 有 多 少 对 节 点,TimeQuest 就 分 析 多 少 对 只 要 所 有 节 点 没 有 发 生 违 规 时 序 ( 建 立 关 系 和 保 持 关 系 合 格, 亦 即 建 立 余 量 和 保 持 余 量 都 为 正 值 化 ), 那 么 这 个 设 计 就 okay 了 39
41 黑 金 动 力 社 区 换 句 话 说, 这 个 分 频 模 块 的 物 理 时 序 是 合 格 的, 因 为 图 2.3.3~4 正 好 反 馈 所 有 节 点 的 建 立 余 量 和 保 持 余 量 都 是 正 直 在 此 有 些 朋 友 可 能 着 急 了, 问 道 : 图 2.3.3~4 是 如 何 得 到 的? 安 啦 ~ 朋 友, 前 面 的 故 事 还 没 有 说 完, 你 这 只 太 监 怎 么 先 着 急 了? 不 想 当 太 监 就 要 慢 慢 来... 在 这 个 章 节 当 中, 笔 者 只 是 想 帮 读 者 们 大 概 搞 个 明 白... TimeQuest 到 底 是 如 何 使 用 自 身 的 模 型 来 进 行 时 序 分 析, 这 些 概 念 绝 对 是 一 个 基 础 有 些 玩 TimeQuest 的 朋 友, 根 本 就 没 有 任 何 概 念 可 言, 有 的 只 是 纯 公 式 而 已, 当 然 笔 者 并 不 反 对 纯 公 式 的 使 用, 只 是 纯 公 式 它 太 无 趣 了, 根 本 上 也 称 不 上 学 习 不 过 在 这 章 节 中, 笔 者 太 感 动 了,TimeQuest 真 的 是 努 力 的 孩 子, 如 一 个 简 单 的 分 频 模 块, 就 有 6 对 节 点 的 时 序 需 要 分 析, 亦 即 C1[0]~C1[0],C1[0]~C1[1],C1[0]~C1[2], C1[1]~C1[1],C1[1]~C1[2] 还 有 C1[2]~C1[2] TimeQuest 它 都 会 一 一 去 分 析 没 对 节 点 之 间 的 时 序 同 样 的, 如 果 一 个 设 计, 里 边 有 100 对 节 点 需 要 分 析 的 话,TimeQuest 也 会 组 个 去 分 析... 读 者 说 TimeQuest 是 不 是 努 力 的 好 孩 子?
42 2.4 进 一 步 看 看 TimeQuest 模 型 如 何 分 析 时 序 笔 者 需 要 先 强 调 一 下, 目 前 笔 者 还 没 有 准 备 玩 弄 TimeQuest 这 个 工 具, 反 之 了 解 TimeQuest 模 型 才 是 学 习 TimeQuest 的 首 要 功 课 笔 者 这 种 醉 翁 之 意 的 心 情, 可 能 会 使 许 多 心 急 的 朋 友 焦 虑 不 安... 不 过 笔 者 劝 告 道 : 要 玩 转 TimeQuest 就 需 要 把 TimeQuest 模 型 每 一 个 重 要 部 分 窥 视 清 楚 才 行 TimeQuest 模 型, 绝 对 不 是 网 上 所 说 的 那 样, 几 个 公 式, 几 个 图 像 就 可 以 解 释 清 楚, 实 际 上 它 更 加 神 秘 许 多... 更 加 好 玩 在 2.3 章 节 中, 我 们 知 道 TimeQuest 模 型 都 会 逐 个 分 析 分 频 模 块 的 所 有 节 点 之 间 的 建 立 关 系 和 保 持 关 系 在 这 个 章 节 当 中, 我 们 以 实 际 延 迟 来 实 验 看 看 TimeQuest 如 何 使 用 模 型 来 工 作 因 此 故 事 的 主 角 继 续 以 2.3 章 节 分 频 模 块 为 例 图 节 点 C[0]~C[0] 的 物 理 状 况 ( 建 立 过 程 ) 图 C1[0]~C1[0] 建 立 关 系 的 分 析 过 程 图 是 节 点 C1[0]~C1[0] 的 物 理 状 况, 而 图 是 该 节 点 的 建 立 关 系 过 程 读 者 暂 时 把 焦 点 放 在 Data Arrival Path 那 边... Clock 路 径 亦 即 Tclk1 它 有 2.883ns 延 迟 41
43 黑 金 动 力 社 区 (TimeQuest 都 是 以 ns 为 计 算 单 位 ),Data 路 径 亦 即 Tco + Tdata 它 有 0.805ns 延 迟 按 照 公 式 计 算 的 话 : 数 据 抵 达 时 间 Data Arrival Time = 启 动 沿 + Tclk1 + Tco + Tdata = (Tco + Tdata) = 3.688ns 现 在 又 把 焦 点 放 在 Data Required Path 的 身 上, 亦 即 数 据 获 取 时 间 锁 存 时 间 是 10ns ( 和 理 想 建 立 关 系 值 等 价 ),Clock 路 径 亦 即 Tclk2 它 有 2.883ns 的 延 迟,uTsu 就 是 Tsu 寄 存 器 特 性, 延 迟 结 果 是 0.040ns 继 续 按 照 公 式 来 计 算 的 话 : 数 据 获 取 时 间 Data Required Time = 锁 存 沿 ( 理 想 建 立 关 系 值 )+ Tclk2 - Tsu = 10ns ns = ns erh... 怎 么 数 据 获 取 时 间 Data Required Time 的 结 果 是 ns 而 不 是 ns, 这 显 得 TimeQuest 把 Tsu 加 上 而 不 是 减 掉? 这 其 中 发 生 什 么 事 情 了? 是 不 是 TimeQuest 搞 错 了, 还 是 笔 者 搞 错 了? 不 不 不, 谁 都 没 有 错, 这 个 问 题 有 许 多 因 缘... 用 傻 瓜 的 话 来 讲,Tsu 这 个 延 迟 可 有 可 无, 实 际 情 况 上 它 非 常 接 近 0ns, 因 此 Tsu 可 以 小 到 忽 略 笔 者 稍 微 更 动 一 下 上 面 的 计 算 结 果 : 数 据 获 取 时 间 Data Required Time = 锁 存 沿 ( 理 想 建 立 关 系 值 )+ Tclk2 - Tsu = 10ns ns = ns 图 节 点 c[0]~c[0] 波 形 图
44 图 是 TimeQuest 为 节 点 c[0]~c[0] 提 供 的 波 形 图, 它 有 非 常 直 观 的 效 果, 比 笔 者 涂 鸦 更 规 格, 真 的 很 惭 愧 这 张 图 很 容 易 看 懂 而 已, 读 者 就 自 己 看 着 办 吧 ( 注 意 不 要 过 度 转 牛 角 尖 关 于 右 下 角 的 ~ 无 视 无 视 ) 最 后 再 计 算 建 立 余 量 的 结 果 : 建 立 余 量 Setup Slack = 数 据 获 取 时 间 - 数 据 抵 达 时 间 = ns ns = 9.235ns =================================================================== 图 节 点 C[0]~C[0] 的 物 理 状 况 ( 保 持 过 程 ) 图 节 点 C[0]~C[0] 保 持 关 系 的 的 分 析 过 程 在 前 面 笔 者 曾 说 过 TimeQuest 模 型 中 求 出 保 持 余 量 的 有 两 种 方 法 : 一 种 是 用 头 脑 ; 另 一 种 是 用 屁 股 很 不 巧 TimeQuest 确 实 是 使 用 屁 股 来 计 算, 图 右 边 的 波 形 图 就 是 最 好 的 证 明 嗯... 读 者 是 不 是 觉 得 很 郁 闷, 无 论 怎 么 左 看 由 看, 感 觉 难 看 不 明 白? 好 吧, 笔 者 再 干 一 次 善 行... 43
45 黑 金 动 力 社 区 图 节 点 C[0]~C[0] 保 持 关 系 的 的 分 析 过 程 的 波 形 图 图 笔 者 为 图 加 笔 的 时 序 图 从 图 与 图 的 比 较 中, 读 者 是 否 可 以 看 出 其 中 的 跷 蹊? 关 于 这 点 笔 者 就 不 再 解 释 了, 自 己 看 着 办 吧 好 了, 现 在 我 们 知 道 及 节 点 C[0]~C[0] 之 间 的 理 想 保 持 关 系 值 是 0ns, 那 么 保 持 余 量 是 : 数 据 抵 达 时 间 Data Arrival Time 数 据 获 取 时 间 Data Required Time = 启 动 沿 + Tclk1 + Tco + Tdata = 0ns ns ns = 3.688ns = 锁 存 沿 + Tclk2 + Th = 理 想 保 持 关 系 值 + Tclk2 + Th = 0ns ns ns
46 = 3.189ns 保 持 余 量 Hold Slack = 数 据 抵 达 时 间 - 数 据 获 取 时 间 = 3.688ns ns = 0.499ns 除 节 点 C[0]~C[0] 以 外, 其 他 5 对 节 点 的 分 析 过 程 也 是 大 同 小 异 在 这 里, 可 能 有 些 心 急 的 同 学 已 经 耐 不 了 性 子 了 说, 我 要 用 TimeQuest, 我 要 搞 TimeQuest! 安 啦 安 啦! 下 一 章 节 开 始 就 是 了! 要 玩 TimeQuest 之 前, 理 解 一 切 基 本 的 概 念 是 必 须 的, 读 者 不 要 问 为 什 么 笔 者 如 此 啰 嗦, 因 为 在 接 下 来 的 故 事 当 中, 读 者 自 然 而 然 就 会 明 白 笔 者 的 苦 心 45
47 黑 金 动 力 社 区 2.5 建 立 sdc 文 件 与 网 表 有 关 TimeQuest 工 具 的 使 用 步 骤, 虽 说 网 上 许 多 版 本, 不 过 官 方 的 阵 营 占 大 部 分, 方 法 都 是 见 仁 见 智 的 东 西, 只 要 点 到 重 点, 什 么 方 法 都 不 重 要 使 用 TimeQuest 主 要 有 两 大 步 骤, 一 是 配 置, 二 是 分 析 配 置 是 指 编 译 器 的 优 化 配 置, 因 为 不 同 的 配 置 选 项 都 会 产 生 不 同 的 时 序 结 果 而 TimeQuest 分 析, 顾 名 思 义 就 是 使 用 TimeQuest 分 析 某 个 设 计 好 了! 废 话 还 是 少 说, 让 我 们 开 始 期 待 已 久 的 TimeQuest 初 次 之 旅 图 打 开 实 验 一 项 目 首 先 先 打 开 divider_module 实 验 一 的 工 程, 如 图 该 设 计 笔 者 已 经 编 译 过 了, 为 了 安 全 起 见, 笔 者 建 议 再 编 译 一 次 图 建 立 同 名 sdc 文 件
48 然 后 新 建 一 个 同 名 的 SDC 文 件 在 实 验 一 的 目 录 下, 该 文 件 取 名 和 实 验 一 的 项 目 名 一 样, 亦 即 divider_module.sdc, 如 图 所 示 估 计 实 验 一 的 目 录 下 已 经 有 笔 者 原 先 建 立 好 的.sdc 文 件, 读 者 们 可 以 删 掉 再 建 立, 还 是 直 接 覆 盖 都 行 接 下 来 将 divider_module.sdc 文 件 设 置 为 该 实 验 的 默 认 sdc 文 件, 过 程 如 图 所 示 : 打 开 设 定 选 择 TimeQuest Timing Analyzer, 然 后 点 击... 将 divider_module.sdc 托 载 进 来 47
49 黑 金 动 力 社 区 点 击 Add 把 它 添 加 进 来 图 设 置 实 验 的 默 认 sdc 文 件 在 这 里, 读 者 稍 微 注 意 一 下... Quartus II 版 本 10 之 前,Classic Timing Analyzer 会 作 为 默 认 的 静 态 时 序 分 析 工 具 反 之 10 和 以 后 的 版 本,TimeQuest 作 为 默 认 时 序 分 析 工 具 所 以 呀, 不 同 的 版 本 之 间 可 能 会 有 所 出 入, 如 果 读 者 使 用 的 Quartus II 的 版 本 是 10 之 前 的 话 必 须 将 静 态 时 序 分 析 设 置 为 TimeQuest 当 读 者 把 divider_module.sdc 文 件 添 加 进 来 以 后, 为 以 防 万 一 再 编 译 一 次 图 打 开 TimeQuest 当 编 译 完 成 以 后, 点 击 图 显 示 的 图 标, 然 后 就 会 正 式 进 入 TimeQuest 图 TimeQuest 界 面 图 是 TimeQuest 的 界 面, 注 意 左 边 的 红 色 框 图 吗? 它 是 这 一 章 节 的 主 角 了 ( 一 )Create Timing Netlist 说 简 单 点 就 是 建 立 网 表, 如 果 用 笔 者 的 话 来 说, 就 是 软 模 型 divider_module.v 开 始 布 线, 然 后 建 立 硬 模 型 ( 二 )Read SDC File 就 是 读 取 该 项 目 中.sdc 文 件 中 约 束 配 置 ( 三 )Update Timing Netlist 就 是 更 新 网 表 每 当 我 们 更 动 过 旧 网 表 的 约 束 配 置, 然 后 我 们 必 须 再 一 次 更 新 它 关 于 约 束 这 一 词 英 文 是 Constraint, 从 字 面 它 是 什 么 被 什 么 强 迫 或 者 限 制 的 意 思 事 实 上 Constraint 这 一 词 用 在 TimeQuest 上, 没 有 那 么 黄 和 暴 力, 而 且 范 围 也 很
50 广 TimeQuest 是 一 个 工 具 也 是 一 个 笨 蛋, 宏 观 上 Constraint 的 用 意 就 是 告 诉 TimeQuest 要 怎 么 怎 么 干, 要 注 意 什 么 什 么 图 自 动 建 立 网 表 好 了, 我 们 要 正 式 开 始 建 立 网 表 了 如 图 所 示, 只 要 我 们 双 击 Crete Timing Netlist, 那 么 TimeQuest 就 会 自 动 建 立 默 认 网 表 但 是 不 是 所 有 同 学 都 那 么 懒 惰 的... 除 了 自 动 建 立 以 外, 我 们 也 可 以 手 动 建 立 网 表 图 手 动 建 立 网 表 图 是 手 动 建 立 网 表 的 经 过, 先 是 从 Netlist 菜 单 下 点 击 点 击 Create Timing Netlist,, 如 图 左 图 所 示, 然 后 就 会 自 动 弹 出 右 图 右 图 的 Input Netlist 有 Post-fit 和 Post-map 选 项, 而 且 Delay model 又 有 Slow-corner,Speed grade,fast-corner 和 Zero IC delays 等 选 项 那 么 多 选 项, 想 必 读 者 又 要 抓 狂 了, 呜 哇 哇! 同 学 们 千 万 不 要 慌, 右 图 的 各 种 选 项 设 置 会 造 就 不 同 质 量 的 网 表, 我 们 先 粗 略 了 解 下 各 种 选 项 字 面 上 的 意 思... Input netlist 字 面 上 的 意 思 是 输 入 网 表 Post-fit 官 方 的 定 义 是 : The TimeQuest analyzer performs timing analysis on a timing netlist that contains physical synthesis optimizations and fitting 用 傻 瓜 的 话 来 讲,Post-fit 网 表 会 在 建 立 之 际 会 参 考 编 译 器 的 优 化 设 置 结 果 ( 亦 即 使 用 TimeQuest 的 第 一 步 ) Post-map 官 方 的 定 义 是 : 49
51 黑 金 动 力 社 区 The TimeQuest analyzer performs timing analysis on a timing netlist that contains complete synthesis information 用 傻 瓜 的 话 来 讲,Post-map 网 表 会 参 照 综 合 结 果 而 建 立 结 果 来 说,Post-map 网 表 更 接 近 原 型 ( 没 有 优 化 ), 但 是 post-fit 更 接 近 物 理 结 果 ( 有 优 化 ) =================================================================== Delay model 的 意 思 如 同 字 面 上 所 示, 亦 即 网 表 的 延 迟 模 型, 用 傻 瓜 的 话 来 讲 就 是 网 表 的 环 境 笔 者 你 在 说 什 么, 网 表 的 延 迟 模 型 和 网 表 的 环 境 到 底 有 什 么 关 系? 汗! 真 是 一 群 心 急 的 孩 子... Slow-corner 的 官 方 定 义 是 : Uses the worst-case (slowest) timing model to compute delays depending on the speed grade of the device specified in the Speed grade list. worst-case 字 面 上 是 指 最 差 环 境, 也 指 极 端 情 况 Fast-corner 的 官 方 定 义 是 : Uses the best-case (fastest) timing model to compute delays. Best-case 字 面 上 是 指 最 好 环 境, 也 指 舒 适 情 况 根 据 worst-case 与 best-case 的 选 择 也 会 造 就 不 同 的 质 量 的 硬 模 型 ( 网 表 ), 在 此 读 者 只 要 简 单 记 住,worst-case 硬 模 型 有 高 保 险 余 量 高 性 能 限 制, 而 best-case 硬 模 型 有 第 保 险 余 量 低 性 能 限 制 即 可 如 果 用 傻 瓜 的 话 来 讲,best-case 比 worst-case 的 硬 模 型 更 接 近 实 际 的 网 表 所 谓 的 zero_ic_delay 就 是 会 无 视 一 些 网 表 基 本 单 位 的 延 迟 根 据 上 述 各 种 设 置 以 后, 我 们 会 得 到 不 同 质 量 的 网 表... 而 不 同 质 量 的 网 表 到 底 是 什 么 一 会 事 呢? 笔 者 以 数 学 的 π 为 例, 它 的 常 量 是 3.142, 但 是 随 着 精 度 的 不 同, 它 的 常 量 可 以 是 , 也 可 以 是 不 过 网 表 质 量 的 具 体 用 意 到 底 是 什 么 呢? 尝 试 想 象 看 看 的 π, 它 可 以 是 , 它 也 可 以 是 ; 换 之 的 π, 它 不 可 以 是 也 不 可 以 这 就 是 保 险 余 量 的 用 意 嘛... 有 关 网 表 质 量 就 先 解 释 道 这 里 吧, 往 后 读 者 有 一 定 的 基 础 以 后 笔 者 会 再 详 细 讨 论 ===================================================================
52 笔 者 再 次 强 调 一 下, 以 上 的 内 容 纯 属 笔 者 自 己 的 看 法 而 已, 至 于 读 者 信 不 信, 就 自 己 看 着 办 吧 最 后, 至 于 什 么 样 配 置 的 网 表 才 是 最 正 规 呢? 这 个 是 没 有 答 案 的 问 题! 什 么 样 的 设 计, 就 需 要 什 么 样 的 网 表 不 过 对 于 一 般 实 验 而 言, 它 就 足 够 的 说 : 图 够 用 的 网 表 质 量 图 是 够 用 的 网 表 质 量, 这 种 Create Timing Netlist 的 选 项 也 是 最 接 近 fpga 的 性 能 图 默 认 的 网 表 质 量 然 而 TimeQuest 在 默 认 下, 亦 即 快 捷 双 击 Create Timing Netlist, TimeQuest 会 产 生 如 图 所 示 的 网 表 质 量, 又 称 默 认 网 表 好 了, 我 们 先 闲 聊 一 会 儿 让 大 脑 放 松 放 松... 在 此 有 读 者 可 能 会 问 : 笔 者 对 TimeQuest 正 体 的 约 束 过 程, 有 什 么 样 的 概 念 呢? 嗯, 虽 然 这 是 一 个 好 问 题... 让 笔 者 慢 慢 解 释 吧 51
53 黑 金 动 力 社 区 图 TimeQuest 正 体 的 约 束 过 程 从 图 中 我 们 可 以 知 道, 当 我 们 要 为 某 一 个 模 块 ( 实 验 ) 执 行 静 态 时 序 分 析 ( 物 理 时 序 分 析 ) 的 时 候, 我 们 必 须 先 建 立 网 表 然 而 在 建 立 网 表 的 过 程,TimeQuest 必 须 参 考 软 模 型, 亦 即 divider_module.v 但 是 网 表 的 质 量 可 以 根 据 需 要 自 行 调 整 接 下 来 TimeQuest 必 须 从 divider_module.sdc 中 读 取 任 何 的 约 束 配 置, 而 更 新 网 表 是 把 任 何 的 约 束 配 置 在 网 表 生 效 在 TimeQuest 的 一 系 列 执 行 活 动 中, 如 建 立 网 表, 读 取 约 束 配 置, 更 新 网 表... 等 等 这 一 切 都 是 TimeQuest 的 活 动, 所 谓 TimeQuest 的 活 动, 它 需 要 从 项 目 中 参 考 相 关 的 内 容, 如 图 所 示 假 设 实 验 一 通 过 时 序 分 析, 然 后 我 们 要 把 实 验 一 的 内 容 下 载 到 开 发 板 中... 这 个 时 候 我 们 所 需 要 的 东 西 也 只 有.v 文 件 生 成 的 硬 模 型 而 已 用 简 单 的 话 来 说, 当 某 个 实 验 下 载 到 开 发 板 的 时 候, 它 有 属 于 自 己 的 物 理 网 表 ( 硬 模 型 ) 为 了 测 试 这 个 物 理 网 表 到 底 合 不 合 格, 所 以 我 们 需 要 用 TimeQuest 这 个 工 具 仿 真 这 个 物 理 网 表, 而 TimeQuest 不 会 直 接 仿 真 物 理 网 表, 而 是 仿 真 不 同 质 量 的 网 表, 又 或 者 仿 真 不 同 质 量 的 硬 模 型 假 设 这 个 设 计 是 发 生 在 极 端 的 环 境 里, 这 时 候 我 们 就 要 选 择 worst-case 质 量 的 网 表, 然 后 透 过 约 束 命 令 将 各 种 延 迟 信 息, 时 钟 信 息 告 诉 TimeQuest 接 着 TimeQuest 就 会 在 这 个 模 拟 的 环 境 中 测 试 该 硬 模 型, 如 果 时 序 合 格 的 话, 那 么 该 设 计 即 使 在 极 端 的 环 境 里 也 能 正 常 发 挥
54 图 笔 者 眼 中 的 TimeQuest 概 念 图 是 笔 者 眼 中 的 概 念 图, 硬 模 型 也 就 是 某 个.v 文 件 经 过 编 译 和 综 合 的 结 果 然 而 一 个 硬 模 型 可 以 分 成 软 模 型 和 网 表 软 模 型 可 以 用 Modelsim 仿 真 模 块 的 功 能 ( 行 为 ), 其 中 需 要.vt 文 件 作 为 激 励 过 程 ; 网 表 建 立 的 过 程 中 需 要 参 考 软 模 型 ; 网 表 可 以 经 TimeQuest 计 算 时 序, 看 是 否 合 格? 其 中 可 以 用.sdc 文 件 来 约 束 网 表 在 早 期 的 实 验 当 中, 笔 者 通 通 都 无 视 物 理 时 序, 换 句 话 说 就 不 把.sdc 文 件 看 在 眼 里 当 Quartus II 发 现 某 个 设 计 如 果 没 有 被 指 定.sdc 文 件, 那 么 Quartus II 就 会 用 默 认 的 Classic Timing Analysis 去 分 析 网 表 了 (Classic Timing Analysis 似 乎 只 是 在 早 期 的 Quartus II 出 现 -- 版 本 10.0 以 前 ) 如 果 时 钟 频 率 不 高 的 话, 以 黑 金 开 发 板 为 例 -- 20Mhz, 50ns 的 周 期 时 间, 不 管 有 没 有 静 态 时 序 工 具 分 析 网 表, 硬 模 型 产 生 的 结 果 都 够 用 了 那 些 熟 读 过 笔 者 笔 记 的 家 伙, 间 接 上 会 明 白 笔 者 的 思 维 和 思 路 是 非 常 逻 辑, 所 使 用 的 办 法 当 然 也 是 非 常 逻 辑 在 这 里 笔 者 所 要 强 调 的 是, 既 然 笔 者 是 如 此 逻 辑 那 么 执 行 TimeQuest 的 步 骤 ( 过 程 ) 也 要 逻 辑 读 者 竟 可 以 的 话, 把.sdc 文 件 看 成 是 硬 模 型 的 激 励 文 本, 或 者 TimeQuest 的 参 考 物 53
55 黑 金 动 力 社 区 2.6 约 束 时 钟 对 TimeQuest 而 言, 约 束 的 大 概 意 思 是 注 意 什 么, 或 者 干 什 么, 接 近 的 意 思 是 利 用 命 令 再 现 分 析 环 境 有 关 这 一 点 它 与 Modelsim 非 常 类 似, 因 为 Modelsim 是 利 用 描 述 语 言 ( 其 中 包 括 验 证 与 综 合 ) 再 现 仿 真 环 境 所 谓 约 束 时 钟 就 是 告 诉 TimeQuest, 某 个 设 计 到 底 有 什 么 样 的 时 钟? 好 了, 让 我 们 开 始 2.5 章 节 的 实 验 一 吧 实 验 一 的 网 表 配 置 如 下 所 示, 这 种 作 为 没 有 什 么 特 殊 的 意 思 create_timing_netlist -post_map -model slow -zero_ic_delays 实 验 一 所 使 用 的 CLK_Sig 是 100Mhz,50% 占 空 比 的 典 型 时 钟, 我 们 有 责 任 把 这 个 信 息 告 诉 TimeQuest, 该 过 程 就 是 俗 称 的 约 束 时 钟 图 打 开 同 名 sdc 文 件 首 先 先 确 定 在 实 验 一 的 项 目 中 TimeQuest 已 经 被 打 开, 然 后 在 QuartusII 中 打 开 和 实 验 一 同 名 的.sdc 文 件, 如 图 所 示 图 调 出 create clock 界 面
56 接 着 点 击 Edit => Insert Constraint => Create Clock... 如 图 所 示 图 Create Clock 界 面 ( 时 钟 声 明 ) 然 后 会 弹 出 一 个 Create Clock 的 窗 口, 在 Clock name 随 便 输 入 一 个 名 字, 在 这 里 笔 者 就 输 入 CLK_Sig, 然 后 Period 是 10.00ns 亦 即 100Mhz 频 率 的 意 思 至 于 Rising 和 Falling 是 设 置 占 空 比, 放 空 下 是 50% 的 占 空 比 完 后 点 击 <... > 取 得 CLK_Sig 对 应 的 输 入 口 图 寻 找 对 应 的 基 本 单 位 图 是 经 图 点 击 <... > 以 后 弹 出 的 窗 口 接 下 来 我 们 要 干 的 工 作 就 是 告 诉 TimeQuest, 我 们 这 个 CLK_Sig 的 目 标 对 象 是 哪 一 个 基 本 单 位? Collection 方 面 设 置 get_ports 亦 即 选 择 port 基 本 单 位 Filter < * > 表 示 没 有 过 滤, 然 后 点 击 < List > 就 会 列 出 频 模 块 的 所 有 port 基 本 单 位 选 择 CLK_Sig 然 后, 再 点 击 " > " 把 CLK_Sig 从 左 边 加 入 右 边, 最 后 点 击 < OK > 就 行 了 55
57 黑 金 动 力 社 区 图 对 应 目 标 为 port 基 本 单 位 的 CLK_Sig 图 生 成 约 束 时 钟 的 约 束 命 令 ( 约 束 代 码 ) 图 变 成 图 以 后, 再 最 后 点 击 < Insert >, 然 后 create_clock -name CLK_Sig -period [get_ports{clk_sig}] 这 条 SDC 命 令 会 自 动 添 加 并 且 显 示 在 Quartus II 中 的.sdc 文 件 里, 结 果 如 图 所 示 图 在 TimeQuest 中 约 束 时 钟 图 2.6.1~6 是 笔 者 常 用 的 方 法, 不 过 笔 者 也 喜 欢 直 接 在 TimeQuest 中 添 加 时 钟 约 束, 如 图 所 示 那 样, 基 本 上 过 程 都 是 一 致 的 图 在 TimeQuest 中 保 存 sdc 文 件 最 后 点 击 保 存, 这 样.sdc 文 件 就 更 新 完 毕, 如 图 所 示
58 图 读 取 sdc 文 件 接 下 来 我 们 把 换 面 切 换 到 TimeQuest, 然 后 双 击 Tasks 任 务 窗 口 中 的 Read SDC File, 那 么 TimeQuest 就 会 从 实 验 一 中 的 divider_module.sdc 文 件 中 读 取 约 束 配 置 到 目 前 为 止 我 们 的 divider_module.sdc 仅 包 含 如 下 这 一 个 命 令 而 已 create_clock -name CLK_Sig -period [ get_ports {CLK_Sig} ] 图 更 新 网 表 当 双 点 击 Read SDC File 以 后, 那 么 TimeQuest 就 会 知 道 分 频 模 块 所 使 用 的 时 钟 信 号 名 为 CLK_Sig 周 期 是 10.00ns, 而 且 目 标 对 象 是 CLK_Sig 这 个 port 基 本 单 位 最 后 双 击 Update Timing Netlist 如 图 所 示, 那 么 约 束 时 钟 的 动 作 就 会 更 新 完 毕 57
59 黑 金 动 力 社 区 2.7 时 序 报 告 在 前 一 章 节 当 中 笔 者 为 实 验 一 约 束 了 100Mhz- 10ns 50% 的 CLK_Sig 用 另 一 句 话 来 说, 笔 者 恐 吓 TimeQuest 说 道 : 喂! 实 验 一 的 分 频 模 块 是 用 10ns 50% 的 CLK_Sig, 而 且 CLK_Sig 的 输 入 经 由 CLK_Sig 输 入 端 口 在 2.6 章 节 的 最 后, 我 们 双 点 击 Update Timing Netlist 过 后 就 进 入 闲 聊 了... 在 这 一 章 节 当 中, 我 们 的 工 作 是 要 列 出 时 序 分 析 的 结 果, 亦 即 时 序 报 告 关 于 时 须 报 告 的 列 出 过 程 都 是 因 人 而 异 的, 这 现 象 也 常 常 让 许 多 同 学 法 问 : 有 没 有 固 定 的 步 骤? 好 了, 在 这 里 就 按 照 笔 者 的 习 惯 来 列 出 时 序 报 告 图 列 出 时 序 简 报 首 先 需 要 列 出 所 有 的 时 序 简 介, 在 Task 界 面 里 双 点 击 < Report All Summaries >, 如 图 所 示,Report All Summaries 会 列 出 所 有 简 单 的 约 束 报 告 图 时 钟 信 号 信 息 到 目 前 为 止, 我 们 只 是 约 束 一 个 CLK_Sig 而 已, 如 图 所 示 我 们 所 约 束 的 CLK_Sig 是 10ns 周 期,50% 的 占 空 比 ( Rise Fall ) 因 此 TimeQuest 已 经 知 道 该 实 验 有 一 个 名 为 CLK_Sig 周 期 是 10ns 的 时 钟 信 号
60 图 调 出 Report Timing 界 面 接 下 来 我 们 要 报 告 出, 在 实 验 一 的 网 表 中, 所 有 和 CLK_Sig 有 关 的 网 表 基 本 单 位 如 图 所 示, 在 CLK_Sig 的 简 介 中, 右 键 点 击 然 后 会 弹 出 一 个 窗 口, 最 后 点 击 < Report Timing... > 就 可 以 了 图 Report Timing 的 基 本 界 面 图 是 Report Timing 的 基 本 界 面, 对 于 第 一 次 遇 见 它 的 朋 友 来 说, 可 能 会 吓 了 一 跳... Report Timing 几 乎 是 最 常 用 的 工 具 之 一, 它 主 要 分 析 setup, hold,recovery 还 有 removal 等 时 序 结 果 ( 暂 时 先 不 管 recovery 和 removal) 59
61 黑 金 动 力 社 区 图 From 和 To 与 基 本 单 位 我 们 知 道 TimeQuest 的 模 型 只 有 在 一 对 节 点 的 情 况 下 才 能 工 作 From Clock 在 某 种 意 义 上 是 指 reg1 的 提 供 时 钟, 亦 即 源 时 钟 ; 反 之 To Clock 在 某 种 意 义 上 是 指 reg2 的 提 供 时 钟, 亦 即 目 的 时 钟, 如 图 所 示 图 节 点 C1[0]~C1[1] 的 from clock 与 to clock 如 果 以 实 验 1 为 例, 在 TMV 视 图 当 中, 矩 形 中 有 一 对 节 点, 亦 即 C1[0]~C1[1]( 图 2.7.6) 其 中 C1[0] 是 Reg1, 反 之 C1[1] 是 Reg2,Reg1 和 Reg2 它 们 同 是 使 用 CLK_Sig 在 这 里 我 们 需 要 知 道 一 个 TimeQuest 的 硬 道 理 TimeQuest 模 型 需 要 一 对 节 点 才 能 成 立 假 设 笔 者 在 From Clocks 中 输 入 CLK_Sig, 那 么 这 一 对 节 点 C1[0]~C1[1] 就 会 被 牵 扯 进 来, 同 样 的 道 理, 当 笔 者 在 To Clock 中 输 入 CLK_Sig, 那 么 C1[0]~C1[1] 也 会 被 牵 扯 进 来 图 target 的 对 应 选 项 图 中 的 Targets 有 3 个 选 项, 亦 即 From,Through 和 To, 选 项 的 功 能 如 字 面 上 的 意 思 Targets 是 某 个 节 点 的 基 本 单 位, 以 实 验 一 为 例, 如 果 笔 者 在 From 中 输 入 C1[0] 如 图 所 示, 该 动 作 就 是 把 C1[0] 有 关 联 的 节 点 都 列 出 来 ( 也 可 以 看 成 是 把 Reg1 有 关 的 节 点 都 关 联 进 来 )
62 图 实 验 的 所 有 节 点 图 实 验 一 部 分 节 点 (from 对 应 c1[0]) 我 们 知 道 实 验 一 中 的 分 频 模 块, 主 要 由 6 对 节 点 组 成, 如 图 所 示 那 么 和 C1[0] 有 关 联 的 节 点 如 图 所 示 图 Through 的 对 应 选 线 其 外,Through 的 意 思 如 字 面 上 一 般 经 由, 简 单 说 就 是 经 过 什 么 如 图 所 示,C1[0]~C1[1] 节 点 之 间 就 有 C1[1]~1 这 个 组 合 逻 辑 假 设 笔 者 在 Through 中 输 入 C1[1]~1 combout,c1[1]~1 datac,c1[1]~1 datad, 救 过 就 是 把 C1[1]~1 组 合 逻 辑 有 关 的 节 点 关 联 进 来 图 与 C1[1]~1 combout,c1[1]~1 datac,c1[1]~1 datad 有 关 的 节 点 结 果 会 如 图 所 示, 与 C1[1]~1 组 合 逻 辑 有 关 联 的 节 点 只 有 C1[0]~C1[1] 和 C1[1]~C1[1] 而 已 至 于 To 是 From 的 反 面 的 意 思, 笔 者 就 不 详 细 介 绍 了, 读 者 可 以 把 61
63 黑 金 动 力 社 区 它 看 成 把 Reg2 有 关 的 节 点 都 关 联 进 来 图 时 序 分 析 选 项 图 是 Analysis type 的 界 面 TimeQuest 的 模 型 除 了 用 来 分 析 Setup 建 立 关 系, Hold 保 持 关 系 以 外, 还 有 Recovery 和 Removal Recovery /Removal 和 Setup /Hold 的 差 别 就 在 于 异 步 与 同 步 之 分, 我 们 暂 时 不 谈 它 们 假 设 笔 者 要 列 出 (Setup) 建 立 关 系 的 分 析 结 果, 那 么 只 要 使 能 Setup 就 行 图 output 选 项 图 是 Output 的 界 面, 基 本 上 没 有 好 介 绍 的, 默 认 下 就 足 够 了 最 下 面 的 是 Tcl command 命 令, 看 看 就 好 了 不 要 太 认 真
64 图 Report Timing 界 面 再 一 次, 笔 者 简 单 介 绍 一 下 图 当 前 的 配 置 : 在 Clocks 界 面 中,To Clock 输 入 了 CLK_Sig, 根 据 实 分 频 模 块, 其 中 的 6 对 节 点 都 是 使 用 同 样 的 To Clock, 换 句 话 说 就 是 把 实 验 一 的 全 部 6 对 节 点 都 关 联 进 来 ; 而 Targets 空 空 如 也, 默 认 下 这 也 表 示 把 所 有 节 点 都 关 联 进 来 的 意 思 : 在 Analysis type 中,Setup 被 使 能, 换 句 话 说 就 是 分 析 建 立 关 系 好 了, 关 于 Report Timing 的 界 面, 笔 者 介 绍 得 差 不 多 了, 笔 者 是 时 候 点 击 <Report Timing> 图 详 细 的 setup 时 序 报 告 63
65 黑 金 动 力 社 区 最 后 就 会 出 现 如 图 所 示 的 详 细 setup 时 序 报 告 =================================================================== 好 了, 先 给 自 己 一 段 消 化 的 小 时 间 吧... 基 本 上 要 列 出 时 序 报 告 是 没 有 什 么 固 定 的 步 骤, 但 是 对 于 一 些 懒 人 来 说 ( 笔 者 ) 最 喜 欢 就 是 先 列 出 全 部 约 束 Report All Summary, 然 后 再 Report Timing 直 接 把 CLK_Sig 有 关 的 节 点 都 列 出 来 就 这 样, 要 报 告 出 建 立 关 系 的 结 果, 就 在 Analysis Types 中 使 能 setup: 反 之, 要 报 告 出 保 持 关 系 的 结 果, 就 在 Analysis Types 中 使 能 hold 即 可 图 详 细 的 setup 时 序 报 告
66 图 详 细 的 hold 时 序 报 告 最 后 我 们 来 看 看 实 验 一 中 的 分 频 模 块 的 建 立 关 系 和 保 持 关 系 的 时 序 报 告, 如 图 ~18 所 示, 建 立 余 量 和 保 持 余 量 均 为 正 值, 换 句 话 说 实 验 一 的 时 序 已 经 合 格 65
67 黑 金 动 力 社 区 总 结 : 在 这 一 章 节 当 中 笔 者 简 单 并 且 详 细 的 讨 论 关 于 TimeQuest 如 何 使 用 自 身 的 模 型 去 分 析 时 序 是 否 合 格, 网 表, 约 束, TimeQuest 的 使 用 步 骤 和 时 序 报 告 等 概 念 第 二 章 的 一 切 一 切, 笔 者 还 是 在 讨 论 一 些 基 本 的 概 念 而 已 在 笔 者 的 眼 中, 要 入 门 TimeQuest 明 白 一 些 最 基 本 的 内 容 是 关 键 的 部 分 TimeQuest 虽 说 它 是 一 个 笨 蛋 的 工 具, 但 是 设 计 者 是 用 什 么 思 维 去 设 计 它, 这 是 学 习 TimeQuest, 也 是 掌 握 TimeQuest 的 重 点 以 前, 笔 者 初 次 接 触 TimeQuest 的 时 候, 一 直 在 如 何 使 用 TimeQuest 这 个 大 门 外 打 转, 结 果 笔 者 打 圈 圈 3/4 年 那 时 候 的 笔 者 虽 然 知 道 保 持 余 量 的 概 念, 但 是 却 对 求 出 保 持 余 量 的 公 式 充 满 着 问 题... 因 为 笔 者 还 不 知 道 如 何 使 用 屁 股 去 分 析 保 持 余 量 的 公 式 此 外, 笔 者 也 对 TimeQuest 如 何 用 自 身 的 模 型 去 分 析 一 个 设 计, 充 满 着 许 多 问 号 最 后 还 有 一 个 难 题 就 是 笔 者 没 有 网 表 的 大 致 定 义... 网 表 的 定 义 是 把 所 有 概 念 联 系 起 来 的 重 要 中 间 人, 只 有 知 道 网 表 的 位 置 和 定 义, 那 么 所 有 东 西 都 可 以 串 联 起 来 了, 这 种 感 觉 如 同 工 藤 新 一 的 头 部 穿 过 电 流 那 样 好 了, 笔 者 不 废 话 了, 最 后 来 个 简 单 的 总 结 吧 : 1. 一 个 硬 模 型 基 本 上 是 由 网 表 和 软 模 型 经 过 编 译 组 成 的 2. TimeQuest 是 一 个 分 析 网 表 是 否 合 格 的 工 具 ( 读 者 可 以 看 成 是 网 表 的 仿 真 工 具 ) 3. 其 中 网 表 的 生 成 需 要 参 考 软 模 型 4. 网 表 有 质 量 之 分 5. 约 束 的 定 义, 在 这 个 章 节 当 中 是 告 诉 TimeQuest 干 什 么, 或 者 注 意 什 么 6. TimeQuest 是 用 模 型 逐 个 去 分 析 所 有 节 点 之 间 的 保 持 建 立 关 系 7. Technology Map Viewer 和 TimeQuest 有 关 系 8. 可 以 把 sdc 看 成 是 硬 模 型 的 激 励 文 本 9. TimeQuest 没 有 固 定 的 使 用 步 骤 10. Report Timing 是 一 个 很 好 用 的 工 具 嗯, 就 是 这 些 而 已 更 多 有 趣 的 内 容 和 学 习, 我 们 下 一 章 再 见
68 第 三 章 :TimeQuest 扫 盲 文 3.1 余 量 的 概 念 笔 者 常 常 在 思 考, 虽 说 TimeQuest 是 一 个 分 析 物 理 时 序 是 否 合 格 的 数 学 工 具, 但 是 TimeQuest 真 正 意 义 上 是 在 针 对 什 么? 这 是 一 个 很 有 趣 的 问 题, 而 TimeQuest 有 一 个 关 键 字, 就 是 约 束 英 文 是 Constraint 约 束 如 果 用 傻 瓜 的 话 来 解 释, 就 是 告 诉 TimeQuest 应 该 干 甚 么 或 者 注 意 甚 么, 然 而 其 中 的 甚 么 又 是 甚 么? 这 绝 不 是 在 鸡 蛋 里 挑 骨 头 的 问 题 如 果 不 把 这 个 什 么 搞 清 楚, 我 们 就 不 能 完 全 理 解 TimeQuest 到 底 为 了 什 么 目 的 而 问 世? 根 据 笔 者 的 理 解 这 个 什 么 就 是 延 迟 因 数, 亦 即 TimeQuest 是 一 个 针 对 各 种 延 迟 因 数 作 出 约 束 的 静 态 时 序 分 析 工 具 有 一 个 问 题 笔 者 一 直 无 法 释 怀, 当 Modelsim 仿 真 HDL 模 块 之 际, 如 果 考 虑 延 迟 信 息, 时 序 就 会 出 现 物 理 延 迟, 换 之 在 Modelsim 界 面 上 出 现 的 波 形, 事 实 上 也 是 静 态 时 序 的 一 种, 不 过 Modelsim 只 能 看 个 大 概 而 已, 而 不 能 做 出 实 际 的 分 析 所 以 笔 者 一 直 认 为, Modelsim 既 然 要 仿 真 就 仿 真 理 想 时 序 而 不 是 物 理 时 序 所 以 说, 物 理 时 序 分 析 的 工 作 我 们 就 交 给 TimeQuest 去 干 理 想 时 序 是 不 存 在 延 迟 因 数 的 时 序, 而 物 理 时 序 是 充 满 延 迟 因 数 的 时 序 ; 理 想 时 序 是 HDL 产 生 的 行 为, 而 物 理 时 序 硬 模 型 产 生 的 行 为 理 想 时 序 可 以 用 Modelsim 来 仿 真, 而 物 理 时 序 可 以 用 TimeQuest 来 分 析 好 了! 终 于 搓 到 重 点 了, 笔 者 曾 讲 过 : Verilog HDL 是 关 心 理 想 时 序, 而 TimeQuest 是 关 心 物 理 时 序 整 合 篇 未 完 成 之 前, 笔 者 认 为 道 : 理 想 时 序 和 物 理 时 序 是 两 个 世 界 的 家 伙 换 之, 整 合 篇 完 成 之 后, 笔 者 认 为 道 : 理 想 时 序 和 物 理 时 序 可 以 用 黏 糊 概 念 联 系 起 来 让 我 们 先 来 聊 聊 黏 糊 概 念 吧 : 67
69 黑 金 动 力 社 区 图 物 理 时 序 的 推 向 概 念 图 所 示 是 物 理 时 序 的 推 向 概 念, 数 据 被 5ns/10ns 延 迟 向 右 推 挤 以 后 就 失 去 对 齐 性, 而 推 向 的 距 离 就 是 延 迟 值 图 理 想 时 序 的 覆 盖 概 念 图 所 示 是 理 想 时 序 的 覆 盖 概 念, 数 据 和 时 间 沿 之 间 没 有 失 去 对 齐 性, 然 而 延 迟 实 数 会 根 据 数 值 覆 盖 数 据 黏 糊 概 念 有 着 一 个 逻 辑, 假 设 同 学 带 足 1 万 块 出 远 门, 只 要 1 万 块 消 费 不 到 零 值, 这 趟 远 门 是 开 心 的 这 种 比 喻 就 好 比 一 块 有 10ns 周 期 的 数 据, 只 要 10ns 的 容 量 不 完 全 被 延 迟 覆 盖, 这 块 数 据 就 不 会 失 去 有 效 性 黏 糊 概 念 和 保 险 余 量, 建 立 余 量 还 有 保 持 余 量 有 许 多 相 似 的 地 方, 不 过 黏 糊 概 念 是 用 图 形 表 达, 而 保 险 余 量, 建 立 余 量 还 有 保 持 余 量 是 用 数 值 来 表 达 笔 者 曾 一 度 认 为,TimeQuest 的 延 迟 取 值 是 按 实 际 的 物 理 延 迟, 不 过 事 实 恰 恰 相 反,TimeQuest 对 延 迟 取 值 是 夸 张 的 表 现, 这 话 何 解 呢? 假 设 有 一 条 路 径 的 物 理 延 迟 是 10ns, 如 果 是 worst-case 网 表 TimeQuest 就 会 报 18ns, 如 果 是 best-case 网 表 TimeQuest 就 会 报 12ns 很 明 显,18ns 还 有 12ns 的 报 值 比 起 实 际 的 10ns 多 出 8ns 还 有 2ns, 其 中 这 8ns 和 2ns 的 差 别 就 是 保 险 余 量
70 图 一 块 数 据 的 有 效 性 假 设 一 块 数 据 有 10ns 的 周 期, 而 锁 存 沿 正 好 在 5ns 的 位 置 锁 存 数 据 根 据 理 论 而 言, 一 块 数 据 的 有 效 性 主 要 分 为 建 立 时 间 与 保 持 时 间 Tsu 是 寄 存 器 在 锁 存 数 据 之 前 需 要 的 最 小 建 立 时 间 ( 热 生 时 间 ), 换 之 Th 是 寄 存 器 在 锁 存 数 据 之 后 需 要 的 最 小 保 持 时 间 ( 确 保 时 间 ) 然 而 建 立 时 间 减 掉 Tsu 就 是 建 立 余 量, 而 保 持 时 间 减 掉 Th 就 是 保 持 余 量 ( 如 图 所 示 ) 建 立 余 量 是 用 来 评 估 数 据 有 效 的 建 立 时 间, 只 要 建 立 余 量 一 天 不 被 吃 光, 这 块 数 据 的 建 立 是 有 效 的 保 持 余 量 是 用 来 评 估 数 据 有 效 的 保 持 时 间, 只 要 保 持 余 量 一 天 不 被 吃 光, 这 块 数 据 的 保 持 是 有 效 的 所 以 说, 保 险 余 量, 建 立 余 量 还 有 保 持 余 量 越 多, 设 计 就 越 安 全 这 感 觉 就 好 比 读 者 出 远 门 有 1 万 块 的 金 钱 余 量 不 过 保 险 余 量 与 建 立 余 量 还 有 保 持 余 量 是 不 同 层 次 的 概 念 余 量 保 险 余 量 的 感 觉 就 好 比 读 者 向 妈 妈 要 钱 买 玩 具 妈 妈 问 : 玩 具 要 多 少 钱?, 假 设 玩 具 的 成 本 是 10 元, 不 过 根 据 不 同 的 卖 家 价 钱 也 有 可 能 是 18 元 或 者 20 元... 于 是, 贪 心 的 读 者 便 狮 子 夸 大 口 说 : 玩 具 要 50 元 只 要 读 者 向 妈 妈 要 钱 越 多, 妈 妈 对 读 者 的 信 任 就 会 越 来 越 少 换 一 个 角 度 来 思 考 的 话,10 元 的 成 本 就 是 实 际 的 延 迟, 不 同 卖 家 的 价 钱 就 是 根 据 环 境 因 数 造 成 的 预 测 延 迟, 而 读 者 开 口 的 50 元 就 是 保 险 余 量, 至 于 妈 妈 对 读 者 的 信 任 就 是 性 能 限 制 50 元 就 像 worst-case 网 表 ( 硬 模 型 ),30 元 就 好 比 best-case 网 表 ( 硬 模 型 ) 有 50 元 虽 然 买 玩 具 更 安 全, 但 是 妈 妈 越 不 信 任 读 者, 换 之 30 元 比 起 50 元 虽 然 损 失 一 些 安 全 性, 但 是 妈 妈 更 加 信 任 读 者 以 此 类 推, 假 设 玩 具 店 A 售 价 是 32 元, 只 有 30 元 保 险 余 量 而 已 的 best-case 当 然 买 不 起 的 玩 具 店 A 的 玩 具 换 之 50 源 的 worst-case 却 买 得 起 再 假 设, 玩 具 店 B 售 价 是 15 元,30 元 的 best-case 网 表 或 者 50 元 的 worst-case 网 表 必 定 买 得 起 玩 具 店 B 的 玩 具 不 过 读 者 千 万 不 要 太 贪 心 骗 妈 妈 成 本 只 有 10 元 的 玩 具 售 价 是 100 元 啊, 不 然 的 话 妈 妈 会 永 远 对 你 失 去 信 心 69
71 黑 金 动 力 社 区 网 表 质 量 中 也 有 一 个 关 键 的 概 念, 亦 即 性 能 限 制... 假 设 路 径 A 有 10ns 的 延 迟, 而 这 个 10ns 的 延 迟 又 叫 成 本 延 迟, 是 实 际 的 路 径 延 迟 取 值 不 过 TimeQuest 声 明 的 网 表 往 往 都 会 高 出 成 本 延 迟, 如 worts-case 网 表 会 使 路 径 A 取 值 为 50ns, 又 或 者 best-case 网 表 会 使 路 径 A 取 值 为 20ns TimeQuest 有 一 个 评 估 值, 称 为 Fmax Fmax 是 用 来 评 估 节 点 的 最 高 频 率 每 当 网 表 质 量 越 低, 节 点 的 延 迟 取 值 就 会 越 高, Fmax 也 随 之 会 越 低 如 果 Fmax 越 低 fpga 就 不 能 发 挥 实 际 的 速 度 和 性 能, 因 此 我 们 可 以 这 样 说 : 网 表 质 量 越 低, 保 险 余 量 越 大,Fmax 评 估 越 低, 性 能 限 制 也 越 高
72 3.2 延 迟 因 数 : 内 部 延 迟 因 数 图 延 迟 因 数 延 迟 因 数 一 般 上 可 以 分 为 两 种, 亦 即 内 部 延 迟 因 数 和 外 部 延 迟 因 数, 如 图 所 示 图 内 部 延 迟 因 素 不 过 TimeQuest 比 较 在 意 的 内 部 延 迟 因 数 有 图 所 示, 其 中 是 pll, 内 部 路 径, 组 合 逻 辑 还 有 寄 存 器 特 性 不 管 哪 一 种 内 部 延 迟 因 数, 它 们 都 有 一 个 共 同 点, 亦 即 TimeQuest 会 自 动 知 晓 它 们 的 延 迟 取 值 此 外, 根 据 不 同 质 量 网 表, 延 迟 取 值 也 会 有 所 不 同 worst-case 网 表 的 延 迟 取 值 比 best-case 网 表 的 延 迟 取 值 当 然 多 出 不 少 PLL 事 实 上 就 是 一 种 不 开 又 不 关 的 内 部 延 迟 因 数, 虽 然 TimeQuest 会 认 识 它, 但 是 TimeQuest 不 会 完 全 公 开 它 ; 内 部 路 径 可 说 是 最 普 遍 的 内 部 延 迟 因 数, 其 中 data path 还 有 clock path 都 会 出 现 它 的 身 影 ; 组 合 逻 辑 可 说 是 内 部 延 迟 因 数 中 最 臃 肿 的 家 伙 ; 寄 存 器 特 性 算 是 不 怎 么 起 眼 的 内 部 延 迟 因 数 图 某 对 节 点 的 内 部 延 迟 71
73 黑 金 动 力 社 区 图 是 某 对 节 点 的 物 理 情 形, 其 中 充 满 许 多 内 部 延 迟 因 数,Tdata 可 以 是 路 径 延 迟 或 者 组 合 逻 辑 ;Tclk1 与 Tclk2 就 是 路 径 延 迟 ; 而 Tco/Tsu/Th 就 是 内 部 延 迟 因 数 的 寄 存 性 特 性 不 过 很 遗 憾 的 是 图 没 有 pll 的 声 影, 没 关 系... 笔 者 会 另 行 举 例 的 图 组 合 逻 辑 加 工 数 据 信 号 要 明 白 pll 之 前, 读 者 必 须 组 合 罗 加 工 数 据 的 基 本 概 念, 如 图 所 示, 有 一 块 数 据 经 过 组 合 逻 辑 以 后 就 变 英 俊 了, 而 数 据 便 英 俊 的 过 程 如 右 图 所 示 在 理 想 时 序 下, 加 工 时 间 以 及 组 合 逻 辑 的 延 迟 会 将 部 分 数 据 覆 盖 掉, 换 之... 物 理 时 序 的 情 况 下, 加 工 时 间 会 向 右 推 挤 数 据 图 PLL 加 工 时 钟 信 号 pll 与 一 般 的 组 合 逻 辑 区 别 的 地 方 就 在 于, 组 合 逻 辑 加 工 数 据 信 号, 而 pll 则 加 工 时 钟 信 号 如 图 所 示,clk 是 加 工 之 前 的 时 钟 信 号, 而 c0 与 c1 是 加 工 之 后 的 时 钟 信 号, 其 中 pll 也 有 加 工 时 间 亦 即 pll 延 迟
74 图 PLL 给 两 个 寄 存 器 各 别 提 供 C0 和 C1 的 时 钟 信 号 我 们 假 设 C0 和 C1 都 有 供 源 对 象, 其 中 时 钟 信 号 C0 和 C1 经 过 的 路 径 多 少 也 有 延 迟, 其 中 又 名 为 Tc0 和 Tc1, 如 图 所 示 图 PLL 的 理 想 时 序 和 物 理 时 序 仿 真 过 pll 的 同 学 当 然 知 道, 如 果 仿 真 没 有 加 入 延 迟 信 息,pll 就 会 产 生 左 图 的 理 想 时 序... 换 之, 如 果 仿 真 加 入 延 迟 因 数 就 会 产 生 右 图 的 物 理 时 序 其 中 Tpll 作 为 时 钟 信 号 c0 和 c1 的 起 跑 线 TimeQuest 在 分 析 pll 的 时 候 会 特 别 关 心 Tc0 和 Tc1 时 钟 路 径 让 笔 者 说 说 一 些 题 外 话, 左 图 的 pll 会 产 生 的 理 想 时 序, 期 间 pll 和 其 他 组 合 逻 辑 一 样, 亦 即 触 发 即 时 事 件 求 得 建 立 余 量 的 公 式 是 : 保 持 余 量 = 数 据 锁 存 时 间 - 数 据 抵 达 时 间 Setup Slack = Data Required Time - Data Arrival Time 数 据 抵 达 时 间 Data Arrival Time = 启 动 沿 + Tclk1 + Tco + Tdata 数 据 获 取 时 间 Data Required Time = 锁 存 沿 + Tclk2 - Tsu = 理 想 建 立 关 系 值 + Tclk2 - Tsu 求 得 保 持 余 量 的 公 式 是 :( 用 头 脑 的 话 ) 73
75 黑 金 动 力 社 区 保 持 余 量 = 数 据 保 持 时 间 - 数 据 获 取 时 间 Hold Slack = Data Hold Time - Data Required TIme 数 据 保 持 时 间 Data Hold Time = 启 动 沿 + Tclk1 + Tco + Tdata + 数 据 周 期 时 间 数 据 获 取 时 间 Data Required Time = 锁 存 沿 + Tclk2 + Th 求 得 保 持 余 量 的 公 式 是 :( 用 屁 股 的 话 ) 保 持 余 量 = 数 据 抵 达 时 间 - 数 据 获 取 时 间 Hold Slack = Data Arrival Time - Data Required Time 数 据 抵 达 时 间 Data Arrival Time = 启 动 沿 + Tclk1 + Tco + Tdata 数 据 获 取 时 间 Data Required Time = 锁 存 沿 + Tclk2 + Th = 理 想 保 持 关 系 值 + Tclk2 + Th 上 面 有 三 段 公 式, 笔 者 想 必 读 者 不 会 觉 得 陌 生 吧? 其 中 在 公 式 出 现 的 Tco/Th/Tsu 就 是 内 部 的 寄 存 器 特 性 嘛... 有 关 内 部 延 迟 因 数, 寄 存 器 特 性 的 作 用 极 微 甚 小, 不 足 影 响 保 持 余 量 和 建 立 余 量, 而 寄 存 器 特 性 在 物 理 时 序 中 它 们 都 会 完 全 忽 略 掉
76 3.3 延 迟 因 数 : 外 部 延 迟 因 数 图 各 种 外 部 延 迟 因 数 图 是 各 外 部 延 迟 因 数, 其 中 引 脚 的 电 容 性 会 引 起 trise 与 tfall 延 迟, 而 外 部 路 径 是 最 妙 的 延 迟 因 数, 最 后 还 有 外 部 IC 的 寄 存 器 特 性 图 理 想 时 序 与 物 理 时 序 器 件 引 脚 存 有 电 容 性 是 小 孩 都 知 道 的 常 识, 而 引 脚 的 电 容 性 必 定 会 产 生 trise 与 tfall 延 迟, 不 过 不 是 每 本 一 本 器 件 手 册 都 会 举 例 trise 与 tfall 的 具 体 时 间 在 器 件 书 册 没 有 举 例 的 情 况 下, 我 们 还 必 须 手 动 将 电 容 性 转 换 trise 还 有 tfall 的 具 体 时 间 如 图 所 示, 在 理 想 时 序 下 是 不 存 在 什 么 trise 或 者 tfall, 反 之 物 理 时 序 就 会 出 现 trise 与 tfall 延 迟 根 据 黏 糊 概 念 而 言,tRise 和 tfall 好 比 寄 生 虫, 寄 生 在 数 据 的 身 体 里 边 同 学 们 很 可 能 觉 得 笔 者 这 样 形 容 trise 和 tfall 有 点 不 正 确... 不 相 信 笔 者 也 不 打 紧, 让 我 们 再 看 其 他 例 子 75
77 黑 金 动 力 社 区 图 黏 糊 概 念 的 理 解 和 一 般 理 解 的 比 较 图 的 上 图 是 黏 糊 概 念 如 何 理 解 trise 与 tfall, 而 下 图 是 一 般 概 念 如 何 理 解 trise 与 tfall 事 实 上, 上 图 和 下 图 有 着 等 价 的 关 系, 不 过 在 理 解 和 编 辑 上... 黏 糊 概 念 比 起 一 般 理 解 有 更 多 优 势 trise 与 tfall, 原 本 不 是 TimeQuest 的 正 规 问 题, 这 不 过 是 笔 者 犯 贱 而 已, 才 会 兴 致 勃 勃 去 研 究 它 事 实 上, 只 要 用 黏 糊 概 念 再 加 上 相 关 的 约 束 命 令,tRise 与 tfall 也 可 以 约 束 的 图 单 位 宽 数 据 的 例 子 图 多 位 宽 宽 数 据 的 例 子
78 外 部 路 径 算 是 学 习 TimeQuest 最 关 键 的 部 分 TimeQuest 在 认 识 外 部 路 径 的 时 候, 会 区 分 数 据 路 径 和 时 钟 路 劲 TimeQuest 在 认 识 数 据 路 径 的 时 候, 又 会 根 据 数 据 的 位 宽 进 一 步 区 分 认 识, 如 图 和 图 所 示 为 什 么 TimeQuest 要 那 么 麻 烦 进 一 步 区 分 数 据 的 单 位 位 宽 和 多 位 宽? 事 实 上 这 是 与 约 束 命 令 的 行 为 有 关 图 时 间 抖 动 产 生 不 同 可 能 性 的 时 序 至 于 外 部 时 钟 路 径 更 妙 了... 根 据 理 论 而 言, 外 部 的 时 钟 源 比 起 内 部 的 时 钟 源 更 容 易 产 生 时 间 抖 动, 而 时 间 抖 动 会 给 外 部 时 钟 路 径 产 生 不 同 延 迟, 也 因 此 产 生 多 可 能 性 的 时 序 图, 如 图 所 示 笔 者 在 研 究 时 钟 抖 动 的 时 候 吃 过 不 少 苦 头, 而 TimeQuest 也 用 了 一 大 半 的 约 束 命 令 针 对 外 部 时 钟 路 径 从 这 观 点 来 看,TimeQuest 有 多 重 视 外 部 时 钟 路 径 此 外, 外 部 路 径 还 有 一 个 非 常 重 要 的 参 数, 亦 即 介 电 参 数... 不 同 原 材 料 的 PCB 版 都 有 不 同 程 度 的 介 电 参 数 介 电 参 数 就 像 是 高 速 公 路 的 原 材 料, 如 黑 油 ( 沥 青 路 ), 沙 地, 石 砖 等 介 电 参 数 越 高 就 表 示 该 高 速 公 路 的 表 面 越 不 平 坦, 信 号 在 上 面 行 走 时, 就 会 产 生 越 多 的 延 迟 而 如 何 将 路 径 的 长 度 乘 上 介 电 参 数 再 换 算 延 迟 时 间, 笔 者 就 不 打 算 介 绍 了... 换 之 有 现 成 的 转 换 软 件 可 以 为 我 们 偷 懒, 呵 呵 呵! 77
79 黑 金 动 力 社 区 assign Q = rq; 上 面 一 段 代 码 是 HDL 经 典 的 描 述 行 为, 亦 即 用 寄 存 器 rq 驱 动 Q 输 出 口 如 果 以 此 类 推, 外 部 IC 的 输 出 口, 或 者 输 入 口 一 定 也 是 由 寄 存 器 驱 动 换 言 之, 外 部 IC 也 定 存 在 寄 存 器 特 性, 不 是 吗?IC 的 寄 存 器 特 性 可 以 在 相 关 的 器 件 手 册 上 查 到
80 3.4 第 一 层 与 第 二 层 时 间 要 求 第 一 层 时 间 要 求 和 第 二 层 时 间 是 整 合 时 序 衍 下 的 概 念, 这 概 念 的 产 生 主 要 是 为 HDL 可 以 照 顾 物 理 时 序, 单 用 文 字 来 描 述 会 非 常 抽 象... 就 让 笔 者 用 例 子 来 讲 解 吧 图 两 个 寄 存 器 夹 着 一 个 组 合 逻 辑 图 是 一 个 典 型 的 TimeQuest 模 型, 亦 即 两 个 寄 存 器 夹 着 一 个 组 合 逻 辑... reg1 和 reg2 同 样 使 用 的 100Mhz 的 时 钟 信 号, 而 它 们 之 间 夹 着 的 组 合 逻 辑, 有 Tdata 别 名 的 延 迟 压 力, 我 们 也 可 以 看 成 数 据 加 工 时 间 首 先 我 们 必 须 知 道, 对 于 100Mhz 的 时 钟 信 号 而 言, 1 个 时 钟 的 周 期 时 间 是 10ns, 如 果 HDL 设 计 基 于 这 个 10ns 周 期 的 时 钟 信 号, 那 么 这 个 10ns 是 HDL 最 小 的 时 间 此 外 我 们 也 必 须 知 道,HDL 只 有 能 力 产 生 理 想 时 序 图 HDL 可 以 照 顾 又 可 以 涉 及 的 第 一 层 时 间 要 求 举 个 例 子, 假 设 读 者 想 要 生 产 面 包, 生 成 一 块 面 包 需 要 的 最 小 时 间 也 称 为 空 时 间 或 者 加 工 时 间 ; 换 之, 制 作 面 包 的 原 材 料 又 称 供 源 这 个 比 喻 好 似 图 的 情 况, 如 图 所 示... 我 们 先 假 设 Tdata 有 10ns 延 迟 压 力, 亦 即 浅 红 色 的 矩 形 而 启 动 沿 的 数 量 就 是 空 时 钟, 在 这 里 有 1 个 启 动 沿, 亦 即 给 足 1 个 空 时 钟 或 者 10ns 的 加 工 时 间 然 而 reg1-q 的 数 据 长 度 就 是 供 源, 亦 即 空 白 矩 形, 换 言 之 reg1-q 给 足 1 个 时 钟, 或 者 79
81 黑 金 动 力 社 区 10ns 的 供 源 好 了, 重 点 来 了... 上 述 说 过 HDL 的 最 小 时 间 是 10ns, 而 Tdata 的 延 迟 压 力 恰 恰 好 是 10ns 简 单 说,reg1 只 要 驱 动 组 合 逻 辑 1 个 时 钟, 期 间 什 么 也 不 做, 而 HDL 可 以 这 样 表 示 : case(i) 0: //r1q 是 驱 动 组 合 逻 辑 的 寄 存 器 begin r1q <= 1'b1; i <= i + 1'b1; end... endcase 为 了 稳 定 驱 动,r1Q 可 以 多 供 源 一 个 时 钟 : case(i) 0,1: // 第 一 层 时 间 要 求 多 供 源 一 个 时 钟 begin r1q <= 1'b1; i <= i + 1'b1; end... endcase 上 述 代 码 中 的 步 骤 0, r1q 赋 值 1'b1 一 个 时 钟 在 此 我 们 可 以 这 样 说,HDL 不 仅 可 以 照 顾 到 Tdata 的 10ns 时 间 要 求, 也 可 以 设 计 到 它 因 此 Tdata 可 以 断 定 为 第 一 层 时 间 要 求 图 HDL 可 以 照 顾 不 过 不 可 以 涉 及 到 的 第 二 层 时 间 要 求 我 们 再 假 设 tdata 有 3ns 的 延 迟 压 力, 根 据 黏 糊 概 念 这 个 3ns 的 延 迟 压 力 会 覆 盖 掉 数 据 的 一 部 分, 如 图 所 示... 启 动 沿 的 数 量 只 有 一 个, 亦 即 给 足 1 个 空 时 钟 或 者 10ns
82 的 加 工 时 间 此 外, 空 白 矩 形 有 10ns 的 长 度 基 本 上,HDL 对 3ns 的 物 理 延 迟 实 在 无 能 为 力, 余 下 HDL 能 尽 力 的 事 情 就 是 确 保 给 足 1 个 空 时 钟, 此 外 reg-q 也 必 须 给 足 供 源 1 个 时 钟,HDL 可 以 这 样 表 示 : case(i) 0: //r1q 是 驱 动 组 合 逻 辑 的 寄 存 器 begin r1q <= 1'b1; i <= i + 1'b1; end... endcase 上 述 代 码 中 的 步 骤 0 给 足 1 个 空 时 钟 至 于,r1Q 赋 值 1'b1 也 长 达 一 个 时 钟 因 此 我 们 可 以 这 样 说,HDL 只 可 以 照 顾 到 Tdata 的 3ns 时 间 要 求, 可 是 却 涉 及 不 了, 因 此 Tdata 可 以 断 定 为 第 二 层 时 间 case(i) 0,1: // 第 二 层 时 间 要 求 多 供 源 一 个 时 钟 begin r1q <= 1'b1; i <= i + 1'b1; end... endcase 虽 然 rq1 多 供 源 一 个 时 钟 可 以 解 决 第 二 层 时 间 要 求, 如 上 所 示 话 虽 那 么 说, 一 般 拥 有 第 二 层 要 求 的 时 序 都 是 条 件 都 非 常 苛 刻, 随 便 多 供 源 一 个 时 间 可 能 会 使 延 迟 传 输, 又 或 者 造 就 信 号 不 同 步 除 此 之 外, 第 二 层 时 间 要 求 往 往 又 多 又 小, 如 果 为 所 有 第 二 层 时 间 多 供 源 一 个 时 钟, 即 不 是 要 耗 费 打 量 宝 贵 的 时 间 与 资 源 呢? 如 果 HDL 遇 到 第 二 层 时 间, 它 该 怎 么 办? 很 简 单,HDL 只 要 尽 量 产 生 理 想 时 序 即 可, 用 黏 糊 概 念 来 说, 只 要 延 迟 压 力 不 要 覆 盖 全 部 数 据 就 行 了 余 下 的 工 作 就 交 给 TimeQuest 等 静 态 时 序 分 析 工 具 分 析 看 看, 第 二 层 时 间 要 求 到 底 会 不 会 破 坏 数 据 的 有 效 性, 又 或 者 检 测 供 源 是 否 足 够? 如 何 明 白 第 一 层 或 者 第 二 层 时 间 要 求 的 关 键 地 方... 读 者 必 需 从 HDL 的 角 度 去 思 考 各 种 时 间 要 求 假 设 我 们 要 用 HDL 产 生 1Mhz 的 SPI 时 序, 这 时 候 如 果 fpga 有 100Mhz 的 时 钟 频 率 Mhz 的 频 率 使 HDL 有 10ns 最 小 时 间, 换 之 要 用 10ns 产 生 1Mhz 的 SPI 时 序 是 非 常 有 余, 许 多 小 地 方 都 可 以 涉 及 到 当 HDL 完 成 软 模 型 的 设 计, 而 且 软 模 型 也 总 和 成 为 硬 模 型, 想 必 硬 模 型 的 内 部 一 定 有 许 多 10ns 最 小 时 间 无 法 涉 及 时 间 要 求, 这 时 候 我 们 就 要 使 用 TimeQuest 等 工 具 去 分 析 他 们 除 了 硬 模 型 里 边 的 时 间 要 求 以 外, 一 些 高 速 器 件 的 驱 动 如 SDRAM, 第 二 层 时 间 要 81
83 黑 金 动 力 社 区 求 也 会 出 现 外 边 图 HDL 可 以 照 顾 又 可 以 涉 及 的 第 一 层 时 间 要 求 ( 多 时 钟 ) 除 了 单 时 钟 的 第 一 层 与 第 二 层 时 间 要 求 以 外, 同 样 也 有 多 时 钟 的 第 一 层 与 第 二 层 时 间 要 求 如 图 所 示, 有 2 个 启 动 沿 亦 即 给 足 2 个 空 时 钟,reg1-Q 的 空 白 矩 形 又 20ns 的 长 度, 亦 即 供 源 有 20ns, 然 而 2 个 空 时 钟 和 20ns 的 供 源 不 仅 照 顾 到 20ns 的 Tdata, 而 且 又 涉 及 其 中, 因 此 我 们 可 以 断 定 20ns 延 迟 的 Tdata 视 为 第 一 层 时 间 HDL 可 以 这 样 表 示 : case(i) 0,1,2: // 第 一 层 时 间 要 求 多 供 源 一 个 时 钟 begin r1q <= 1'b1; i <= i + 1'b1; end... endcase
84 图 HDL 可 以 照 顾 不 过 不 可 以 涉 及 的 第 二 层 时 间 要 求 ( 多 时 钟 ) 图 是 HDL 可 以 照 顾 但 是 却 涉 及 不 了 的 第 二 层 时 间 要 求, 其 中 有 2 个 启 动 沿 亦 即 有 2 个 空 时 钟, 而 reg1-q 也 有 20ns 的 长 度, 不 过 Tdata 却 只 覆 盖 15ns 的 部 分 而 已 这 种 情 况 下 我 们 可 以 说,2 个 空 时 钟 和 20ns 的 供 源 虽 然 已 经 给 足, 但 是 却 涉 及 不 了, 因 此 断 定 15ns 延 迟 的 Tdata 为 第 二 层 时 间 要 求 HDL 可 以 这 样 表 示 : case(i) 0,1: // 第 二 层 时 间 要 求 begin r1q <= 1'b1; i <= i + 1'b1; end... endcase 如 果 多 时 钟 的 第 一 层 或 者 第 二 层 时 间 要 求 发 生 在 时 序 产 生 或 者 驱 动 器 件 的 话, 我 们 可 以 使 用 黏 糊 概 念 将 就 而 过 相 反 的, 如 果 多 时 钟 的 第 二 层 时 间 要 求 发 生 在 硬 模 型 里 边 的 话, 故 事 的 说 法 就 不 一 样 了... 我 们 知 道 TimeQuest 是 一 个 笨 蛋, 在 默 认 的 情 况 下 TimeQuest 模 型 都 是 以 单 时 钟 作 为 基 准 去 分 析 节 点 是 否 合 格 有 时 我 们 会 遇 见 如 图 的 情 形, 这 时 候 我 们 就 要 使 用 相 关 的 约 束 命 令 告 诉 TimeQuest 某 对 节 点 是 用 N 个 时 钟 工 作 如 此 一 来,TimeQuest 就 会 知 道 某 对 节 点 是 使 用 N 个 时 间 工 作 不 过, 到 底 是 什 么 情 形 会 使 第 二 层 时 间 要 求 发 生 在 硬 模 型 的 里 面? 答 案 很 简 单, 那 就 是 组 合 逻 辑 的 应 用 整 合 篇 曾 讨 论 过 即 时 建 模, 那 是 建 立 大 组 合 逻 辑 的 方 法, 大 组 合 逻 辑 所 需 的 加 工 时 间 往 往 超 过 HDL 本 身 的 最 小 时 间 83
85 黑 金 动 力 社 区 最 后 我 们 可 以 这 样 总 结 : HDL 涉 及 不 了 的 时 间 要 求 交 给 TimeQuest 去 做, 不 过 在 此 之 前 HDL 必 须 尽 量 做 好 理 想 时 序 的 部 分, 最 后 物 理 时 序 的 部 分 则 交 给 TimeQuest 去 分 析 和 涉 及
86 3.5 山 寨 TimeQuest 模 型 在 第 一 章 笔 者 曾 说 过,TimeQuest 模 型 的 基 本 结 构 是 由 一 对 节 点 组 成, 不 过 节 点 是 没 有 个 性 的 东 西, 如 果 节 点 放 在 fpga 内 部, 它 就 会 成 为 寄 存 器, 又 称 TimeQuest 内 部 模 型 换 之 如 果 节 点 放 在 fpga 外 部, 它 就 成 为 fpga 和 外 部 器 件 (ic), 又 称 TimeQuest 外 部 模 型 图 TimeQuest 模 型 ( 内 部 模 型 ), 山 寨 TimeQuest 模 型 ( 外 部 模 型 ) 所 谓 山 寨 TimeQuest 模 型 是 指,TimeQuest 模 型 是 否 可 以 在 外 部 成 立 换 句 话 说, 外 部 fpga 和 外 部 器 件 又 如 何 成 立 一 对 寄 存 器, 而 寄 存 器 之 间 的 延 迟 因 数 又 是 什 么? 如 图 所 示, 默 认 的 TimeQuest 又 指 内 部 模 型, 而 山 寨 的 TimeQuest 模 型 又 指 外 部 模 型 内 部 模 型 的 节 点 变 成 源 寄 存 器 和 目 的 寄 存 器, 而 外 部 模 型 的 节 点 变 成 fpga 和 ic 笔 者 曾 思 考 过,TimeQuest 模 型 虽 有 内 外 之 分, 可 是 却 有 相 同 概 念? 原 因 很 简 单, TimeQuest 的 设 计 者 和 笔 者 一 样 都 是 懒 人... 呵 呵! 开 玩 笑 而 已 他 们 这 样 做 的 目 的 是 同 用 思 路, 换 言 之 : 一 套 可 以 应 用 在 内 部 模 型 的 分 析 方 法, 同 样 也 可 以 应 用 在 外 部 模 型 85
87 黑 金 动 力 社 区 图 无 法 山 寨 TimeQuest 模 型 的 情 况 不 过 外 部 模 型 不 一 定 是 山 寨 成 功, 如 图 所 示, 如 果 主 机 fpga 给 从 机 ic 驱 动 时 钟 信 号 和 数 据 结 果 而 言 TimeQuest 模 型 一 定 会 山 寨 失 败, 这 种 情 形 有 spi,iic,ps/2 时 序 等 此 外, 没 有 时 钟 信 号, 而 有 控 制 信 号 或 者 控 制 命 令 之 间 的 数 据 传 输 也 会 让 TimeQuest 模 型 上 寨 失 败, 这 种 情 形 有 静 态 ram, 传 统 lcd 驱 动 等 还 有 一 种 情 形 就 是 单 纯 的 数 据 传 输, 也 会 无 法 山 寨 成 功 TimeQuest 模 型, 这 种 情 形 有 uart 和 vga 时 序 等 读 者 可 能 会 问 : 如 果 外 部 模 型 山 寨 失 败 的 话, 那 么 外 部 延 迟 因 数 又 如 何 约 束 呢? 这 是 一 个 多 疑 的 问 题,TimeQuest 只 是 一 匹 只 懂 在 模 型 里 打 滚 的 笨 蛋 而 已, 如 果 模 型 无 法 成 立 TimeQuest 就 会 无 用 武 之 地 此 时, 我 们 也 只 能 做 好 内 部 模 型 的 分 析 即 可... 外 边 就 交 个 人 品 和 运 气 图 FPGA 和 SDRAM 的 外 部 模 型
88 外 部 模 型 可 以 成 功 山 寨 的 经 典 例 子 就 是 sdram, 如 图 所 示 fpga 与 sdram 之 所 以 可 以 成 功 山 寨 TimeQuest 模 型 是 因 为 fpga 与 sdram 都 独 自 的 时 钟 上 图 的 20Mhz 时 钟 信 号 经 过 fpga 内 部 的 pll 以 后, 成 为 100Mhz 再 供 源 sdram... 这 种 情 形 的 sdram 时 钟 不 是 图 所 示 的 驱 动 时 钟, 而 是 供 源 时 钟 上 图 和 下 图 有 着 等 价 的 关 系 在 实 际 的 环 境 里, 为 了 运 动 sdram 而 外 加 载 100Mhz 的 时 钟 信 号 是 不 环 保 的 行 为, 为 了 地 球 sdram 必 须 向 fpga 借 助 时 钟 信 号, 这 个 借 助 的 时 钟 信 号 也 称 为 供 源 时 钟 对 供 源 时 钟 而 言 TimeQuest 非 常 重 视 它, 此 外 也 有 相 关 的 约 束 命 令 分 别 针 对 供 源 时 钟 供 源 时 钟 有 3 种 种 类, 直 接 供 源, 寄 存 器 供 源, 还 有 pll 供 源, 而 图 的 上 图 就 是 pll 供 源 同 学 们 知 道 内 部 模 型 与 外 部 模 型 的 具 体 区 别 吗? 内 部 模 型 与 外 部 模 型 的 区 别 就 在 于 知 道 与 不 知 道, 自 动 与 手 动 所 谓 知 道 与 不 知 道 是 指, 有 关 内 部 模 型 的 各 种 延 迟 信 息 TimeQuest 可 以 通 过 综 合 器 取 得 换 之, 外 部 模 型 的 延 迟 信 息 必 须 人 为 劳 动, 透 过 相 关 的 约 束 命 令 告 诉 TimeQuest 才 行, 这 就 是 所 谓 的 自 动 和 手 动 87
89 黑 金 动 力 社 区 3.6 约 束 命 令 和 约 束 行 为 学 习 约 束 命 令 是 学 习 TimeQuest 的 关 键, 然 而 如 何 理 解 约 束 命 令 的 约 束 行 为 才 能 掌 握 约 束 命 令 约 束 命 令 顾 名 思 义 就 是 命 令 的 存 在, 主 要 是 人 类 和 TimeQuest 沟 通 的 工 具 而 约 束 行 为 是 约 束 命 令 的 执 行 过 程 笔 者 曾 说 过 TimeQuest 就 好 比 网 表 ( 硬 模 型 ) 的 仿 真 软 件, 约 束 命 令 也 有 各 种 各 样 的 行 为, 如 第 二 章 所 学 过 的 create_clock 就 是 建 立 时 钟 刺 激 的 约 束 命 令 很 遗 憾 的 是, 比 起 约 束 行 为 的 解 释 官 方 更 加 重 视 约 束 命 令 的 使 用 方 法 在 研 究 各 种 命 令 的 约 束 行 为 之 际, 笔 者 可 吃 过 不 少 苦 头, 呵 呵 此 外, 笔 者 也 浏 览 过 许 多 相 关 的 TimeQuest 解 释, 说 实 在 笔 者 只 能 用 一 句 残 念 来 感 叹 先 不 管 约 束 命 令 的 使 用 方 法 对 错 与 否? 说 实 在, 使 用 者 到 底 明 不 明 白 自 己 在 使 用 什 么 才 是 笔 者 最 关 心 的 地 方 这 种 情 形 就 好 比 小 孩 子 玩 枪 械 却 不 懂 枪 械 的 危 险 笔 者 有 一 个 想 法 必 须 交 代 清 楚, 据 笔 者 所 知... 笔 者 认 为 约 束 命 令 的 功 用, 就 是 再 现 分 析 环 境 而 已, 而 不 是 干 扰 硬 模 型 的 实 际 内 容 笔 者 相 信, 支 持 这 种 解 释 和 反 对 这 种 解 释 的 朋 友 有 不 相 参 半... 约 束 命 令 究 竟 能 不 能 干 扰 硬 模 型 的 内 容? 这 种 问 题, 只 能 见 仁 见 智, 因 为 没 有 绝 对 的 答 案 但 是 换 作 笔 者, 笔 者 宁 愿 相 信 TimeQuest 只 是 硬 模 型 的 模 拟 器 而 已, 就 像 Modelsim 角 色 一 样 sdc 文 件 有 如 vt 文 件, 约 束 命 令 好 比 验 证 语 言... 不 过 Modelsim 仿 真 对 象 是 软 模 型, 而 TimeQuest 的 分 析 对 象 是 硬 模 型 Modelsim 只 用 产 生 理 想 时 序, 看 看 模 块 的 行 为 是 否 达 到 预 期 的 效 果 换 之 TimeQuest 只 用 分 析 物 理 时 序, 看 看 综 合 结 果 是 否 造 就 时 序 违 规, 或 者 硬 模 型 能 不 能 在 特 定 的 环 境 下 很 好 运 行 一 言 盖 过, 如 何 使 用 约 束 命 令 不 是 笔 者 在 乎 的 地 方, 而 约 束 命 令 的 行 为 才 是 笔 者 感 兴 趣 的 地 方 因 为 笔 者 相 信, 通 过 了 解 约 束 行 为 更 能 了 解 TimeQuest 和 掌 握 它
90 总 结 : 第 三 章 只 是 扫 盲 文 而 已, 不 过 同 学 们 不 要 小 看 扫 盲 的 作 用... 扫 盲 文 可 以 给 个 大 体 的 概 念, 让 读 者 在 接 下 来 的 学 习 用 不 着 像 无 头 苍 蝇 无 头 乱 飞 之 余 ; 又 可 以 让 读 者 可 以 知 晓 学 习 的 方 向 虽 然 扫 盲 文 的 没 有 仔 细 的 精 度, 不 过 扫 盲 文 的 作 用 几 乎 举 足 轻 重, 至 于 读 者 信 不 信 就 见 仁 见 智 了 从 第 三 章 的 一 开 始 我 们 先 讨 论 各 种 余 量 的 概 念 建 立 余 量 和 保 持 余 量 是 和 TimeQuest 模 型 有 关, 而 保 险 余 量 是 和 网 表 质 量 有 关 不 过, 保 险 余 量 只 是 笔 者 自 取 的 名 字 而 已, 与 官 方 无 关 黏 糊 概 念 是 图 形 表 达 余 量, 而 建 立 余 量 与 保 持 余 量 是 数 值 表 达 余 量, 而 保 险 余 量 只 是 概 念 表 达 余 量 造 成 时 序 违 规 的 凶 手 就 是 延 迟 因 数, 延 迟 因 数 有 可 以 分 为 内 部 延 迟 因 数 愈 外 部 延 迟 因 数 常 见 的 内 部 延 迟 因 数 有 :pll, 路 径 ( 数 据 路 径 与 时 钟 路 径 ), 还 有 寄 存 器 特 性 ; 而 常 见 的 外 部 延 迟 因 数 有 : 引 脚 电 容 性 (trise 与 tfall), 外 部 走 线, 还 有 ic 的 寄 存 器 特 性 内 部 延 迟 因 数 几 乎 可 以 被 TimeQuest 认 知, 所 以 也 没 有 什 么 好 谈 的 ; 换 之, 外 部 延 迟 因 数 TimeQuest 却 完 全 不 认 识 TimeQuest 模 型 也 有 内 部 与 外 部 之 分, 内 部 模 型 充 满 内 部 延 迟 因 数 而 外 部 模 型 充 满 外 部 延 迟 因 数 就 是 因 为 内 部 延 迟 因 数 TimeQuest 它 什 么 都 知 道 的 关 系, 所 以 TimeQuest 会 自 动 认 识, 也 用 不 着 认 为 告 诉 它 相 关 的 延 迟 信 息 反 之 外 部 延 迟 因 数 就 是 因 为 TimeQuest 它 什 么 都 不 知 道, 结 果 我 们 必 须 手 动 透 过 相 关 的 约 束 命 令, 再 告 诉 它 相 关 的 外 部 延 迟 信 息 虽 然 第 三 章 的 内 容 还 插 上 不 相 关 的 第 一 层 和 第 二 层 的 时 间 要 求 概 念, 不 过 笔 者 认 为 有 必 要 认 识 一 下, 如 果 读 者 是 纯 TimeQuest 用 者, 笔 者 就 不 勉 强 明 白 反 之 如 果 想 把 HDL 与 TimeQuest 联 系 起 来, 明 白 它 们 是 关 键 的 地 方 第 一 层 与 第 二 层 时 间 要 求 是 整 合 思 想 下 的 产 物, 它 们 也 是 黏 糊 概 念 的 兄 弟 一 般 上, 如 果 HDL 最 小 时 间 可 以 照 顾 和 涉 及 某 个 时 间 要 求, 称 为 第 一 层 换 之, 如 果 HDL 最 小 时 间 只 能 照 顾 却 无 法 涉 及 那 个 时 间 要 求, 就 称 为 第 二 层 HDL 所 谓 的 照 顾 就 是 产 生 理 想 的 时 序, 而 所 谓 的 涉 及 就 是 空 时 间 和 供 源 完 全 相 符 时 间 要 求 可 以 照 顾 却 涉 及 不 了 的 时 间 要 求, 只 能 交 给 TimeQuest 去 分 析 此 外 时 间 要 求 也 分 为 单 个 时 钟 和 多 个 时 钟 最 后 我 们 也 小 谈 一 下 TimeQuest 模 型 的 山 寨 行 为, 实 际 上 不 是 要 TimeQuest 模 型 去 模 仿 什 么... 而 是 分 析 TimeQuest 模 型 到 底 能 不 能 在 外 部 成 立, 典 型 的 外 部 模 型 就 是 fpga 与 sdram 此 外 我 们 也 谈 到 约 束 命 令 与 约 束 行 为 的 相 关 问 题, 充 其 量 这 也 是 笔 者 的 多 疑 而 已, 谈 不 上 什 么 问 题... 读 者 能 不 能 接 受 就 见 仁 见 智 了 89
91 黑 金 动 力 社 区 第 四 章 : 内 部 延 迟 与 其 他 第 三 章 我 们 知 道 为 何 物 理 时 序 会 发 生 违 规, 原 来 都 是 延 迟 因 数 惹 的 祸 延 迟 因 数 即 有 分 内 外, 在 接 下 来 的 章 节, 我 们 会 逐 步 探 索 那 个 约 束 命 令 针 对 那 个 延 迟 因 数 好! 事 不 宜 迟, 就 先 拿 PLL 来 开 刀 吧 4.1 PLL 与 约 束 命 令 PLL 是 什 么? 专 业 的 全 名 是 很 长 很 臭 的 Phase Lock Loop, 至 于 内 部 的 执 行 原 理 更 长 更 臭 不 过 傻 瓜 点 说,PLL 在 FPGA 里 边 就 是 某 个 针 对 时 钟 信 号 加 工 的 组 合 逻 辑, 负 责 的 工 作 有 : 稳 定, 增 频, 减 频, 位 移 时 钟 信 号 等 虽 说 PLL 类 似 加 工 时 钟 信 号 的 组 合 逻 辑, 不 过 PLL 不 是 由 逻 辑 资 源 东 拼 西 凑 而 成 的 山 寨 版 组 合 逻 辑, 它 是 基 于 硬 件 的 组 合 逻 辑 PLL 的 葫 芦 里 装 有 么 药, 除 了 FPGA 的 厂 商 以 外, 外 人 都 不 由 而 知 此 外 FPGA 厂 商 又 得 想 办 法 约 束 一 下 PLL, 就 是 这 种 半 遮 半 开 的 情 况 下, 唯 有 PLL 拥 有 自 己 专 属 的 约 束 命 令 这 种 矛 盾 的 情 况 不 知 是 祸 是 福? 常 用 的 PLL 约 束 命 令 如 下 : derive_pll_clocks derive_clock_uncertainty derive_pll_clocks 读 者 是 否 还 记 得 曾 在 第 二 章 出 现 的 create_clock 这 个 约 束 命 令 吗? 不 错, 那 是 告 诉 TimeQuest 某 设 计 到 底 使 用 什 么 时 钟, 粗 略 一 点 也 可 看 成 是 仿 真 中 的 时 钟 刺 激 那 么 create_clock 又 和 derive_pll_clocks 有 什 么 关 系? 实 际 上 derive_pll_clocks 是 一 个 偷 懒 用 的 约 束 命 令 一 般 PLL 都 会 声 明 N 个 时 钟, 如 果 换 做 create_clock, 我 们 要 N 个 时 钟 都 添 加 create_clock 命 令 去 约 束 如 果 PLL 声 明 50 个 输 出, 既 不 是 要 断 掉 十 指 逐 个 逐 个 去 约 束 这 50 个 时 钟 信 号 吗? 因 为 如 此, derive_pll_clocks 这 个 约 束 命 令 就 诞 生 了, 明 白 吗 懒 人 们? 一 概 论 过, 无 论 我 们 用 PLL 声 明 多 少 时 钟 输 出, 只 要 填 上 derive_pll_clocks 这 个 犯 懒 的 命 令,TimeQuest 就 会 识 作 了 TimeQuest 会 自 行 建 立 相 关 的 时 钟 约 束, 然 后 做 出 报 告 derive_clock_uncertainty
92 在 这 里, 笔 者 先 简 单 讲 解 一 下 关 于 clock uncertainty,clock uncertainty 是 指 时 钟 信 号 的 不 确 定 因 数 这 个 命 令 用 来 告 诉 TimeQuest 有 关 时 钟 的 不 确 定 性 严 格 来 讲, 这 个 约 束 命 令 不 仅 针 对 pll 更 是 针 对 所 有 与 时 钟 信 号, 不 过 根 据 手 册 规 定, 凡 是 建 造 工 艺 65nm 或 者 以 上 的 FPGA, 都 必 须 加 上 这 条 约 束 命 令 然 而 建 造 工 艺 是 65nm 以 下 的 FPGA 加 上 也 无 妨,TimeQuest 会 自 动 无 视 91
93 黑 金 动 力 社 区 4.2 约 束 PLL 时 钟 在 这 里 笔 者 想 要 讲 解 的 不 是 针 对 单 个 时 钟 信 号 的 约 束, 而 是 静 态 时 序 分 析 的 第 一 步, 亦 即 时 钟 约 束 的 步 骤 图 整 合 篇 实 验 十 引 脚 配 置, 其 中 从 外 部 借 用 一 个 名 为 CLK 的 20Mhz 时 钟 信 号 图 整 合 篇 实 验 十 有 关 PLL 的 声 明, 其 中 c0 是 倍 频 为 40Mhz 的 时 钟 信 号 假 设 笔 者 想 要 分 析 一 下 整 合 篇 实 验 十 的 物 理 时 序 是 否 合 格, 首 先 我 们 知 道 实 验 十 只 向 外 部 借 用 一 个 名 为 CLK 的 20Mhz 时 钟 信 号 ( 图 所 示 ) 然 而 20Mhz 不 足 以 驱 动 vga, 所 以 借 用 PLL 的 力 量 将 原 有 20Mhz 的 CLK 倍 频 两 倍 为 40Mhz 的 时 钟 信 号, 结 果 名 为 c0( 图 所 示 ) 为 此, 这 个 实 验 的 第 一 步 约 束 步 骤 就 是 针 对 以 上 几 个 时 钟 信 号 做 出 约 束 的 动 作 实 验 二 vga 模 块 的 物 理 时 序 分 析 图 整 合 篇 实 验 十 建 模 图 图 是 本 实 验 的 建 模 图, 我 们 不 管 右 边 组 合 模 块 的 内 容 从 图 中 我 们 可 以 知 道 一 个 事 实, 亦 即 CLK/CLK 经 过 PLL 以 后 成 为 CLK_40Mhz/c0, 然 后 CLK_40Mhz/C0 作 为 组 合 模 块 的 主 时 钟 源 简 单 点 说, 我 们 所 要 分 析 的 物 理 时 序 是 与 CLK_40Mhz/c0
94 时 钟 信 号 所 扯 上 的 各 种 资 源 不 多 话, 为 该 实 验 建 立 一 个 名 为 vga_module.sdc 的 文 件, 然 后 将 下 面 的 内 容 拷 贝 进 去 : create_clock -name {CLK} -period waveform { } [get_ports {CLK}] derive_pll_clocks derive_clock_uncertainty 图 设 定 实 验 二 的 sdc 文 件 再 者 将 该 sdc 文 件 设 定 本 实 验 的 约 束 文 本, 如 图 所 示, 忘 记 编 译 的 同 学 先 编 译 一 下 接 下 来 再 按 下 这 个 可 爱 的 图 标 大 约 几 秒 钟 的 功 夫 就 会 跳 出 TimeQuest 的 界 面 这 回 笔 者 彻 底 犯 懒 了, 笔 者 就 用 质 量 最 差 的 网 表 ( 默 认 网 表 ) create_timing_netlist -model slow 图 快 捷 生 成 默 认 网 表 如 果 同 学 们 也 懒 惰 输 入 这 段 tcl 命 令, 可 以 双 击 Create Timing Netlist,TimeQuest 就 会 自 动 生 成, 最 后 顺 便 按 次 序 双 击 Read SDC File 和 Update Timing Netlist( 如 图 所 示 ) 93
95 黑 金 动 力 社 区 我 们 先 暂 停 一 下 吧, 笔 者 怕 有 些 同 学 不 仅 会 更 不 上 也 会 充 满 疑 问 笔 者, 用 那 么 差 质 量 的 网 表 真 的 行 吗? 其 实 这 没 有 什 么 行 不 行 的 问 题, 以 EP2C8Q208C8 的 建 造 工 艺 为 例, 40Mhz 的 时 钟 频 率 用 默 认 网 表 的 质 量 已 经 足 够 了 图 生 成 时 序 的 简 报 图 时 间 ( 时 序 ) 简 报 再 来 双 击 Report All Summaries ( 如 图 所 示 ) 就 会 跳 出 图 的 时 间 ( 时 序 ) 简 报 根 据 图 我 们 可 以 读 取 几 个 信 息... 其 一 CLK 时 钟 信 号 的 频 率 是 20Mhz, 周 期 为 50ns, 半 周 期 25ns, 其 功 用 除 了 PLL 的 输 入 以 外 几 乎 残 废 其 二 CLK_40Mhz 时 钟 周 期 为 40Mhz, 周 期 是 25ns, 半 周 期 是 12.5ns,50% 占 比 率, 输 入 为 CLK 输 出 为...Pll{Clk[0]}, 简 称 为 CLK_40Mhz, 该 时 钟 作 为 本 实 验 的 时 钟 源 图 调 出 CLK_40Mhz 的 Report Timing 界 面 接 下 来 就 要 右 键 CLK_40Mhz 然 后 调 出 Report Timing 的 窗 口, 如 图 所 示
96 图 执 行 CLK_40Mhz 关 联 的 时 序 报 告 ( 建 立 setup 和 保 持 hold) 然 后 相 续 执 行 相 关 的 Setup 和 Hold 时 序 报 告, 如 图 所 示 在 这 里, 笔 者 先 插 上 诺 干 无 关 的 提 示... 有 心 的 同 学 可 能 都 会 觉 疑 From clock 为 什 么 会 留 空? 笔 者 就 好 心 为 失 忆 的 同 学 复 习 一 下 第 二 章 的 内 容! 图 From clock 和 To clock 的 意 思 根 据 Time Quest 的 模 型 From clock 就 是 源 基 础 器 (reg1) 的 时 钟 ;To clock 就 是 目 的 寄 存 器 (reg2) 的 时 钟 不 过 根 据 实 验 二,20Mhz 的 CLK 时 钟 源 除 了 作 为 PLL 的 输 入 以 外, 它 几 乎 接 近 残 废 换 之 40Mhz 的 CLK_40Mhz 作 为 vga_module 的 时 钟 源 95
97 黑 金 动 力 社 区 图 两 种 角 度 观 看 From 和 To Clock 如 果 进 一 步 讲 解 的 话, 可 以 将 From clock 和 To clock 分 为 两 个 角 度 观 点 一 是 从 TimeQuest 的 视 角 来 观 看 From clock 和 To clock,timequest 是 一 个 笨 蛋 它 觉 得 两 个 Clock 理 应 分 开 的 换 之, 观 点 二 是 从 我 们 的 视 角 去 思 考, 我 们 知 道 CLK 时 钟 型 号 已 经 残 废, 换 做 Clk_40Mhz 取 代 它 成 为 实 验 vga_module 的 主 时 钟 源 同 时 我 们 也 知 道, 整 个 模 块 的 寄 存 器 都 使 用 相 同 的 主 时 钟 源 图 三 种 等 价 的 From clock 和 To clock 选 项 结 果 说, 无 论 是 哪 一 种 选 项 对 据 实 验 二 的 vga_module 来 说 都 是 等 价 的 ( 如 图 所 示 ) 换 句 话 说, 只 要 和 CLK_40Mhz 有 关 联 的 寄 存 器 都 会 一 一 列 出 图 path 的 深 度 笔 者... 请 问 那 个 四 条 九 是 什 么 意 思?( 图 ) 呵 呵, 那 是 时 序 报 告 的 深 度 TimeQuest 实 际 上 是 不 择 不 扣 的 笨 蛋 既 懒 惰 虫, 默 认 下 它 只 会 分 析 10 条 和 from clock 或 者 to clock 相 关 的 时 序 报 告 根 据 vga_module 模 块 from clock 或 者 to clock 有 关 的 分 析 节 点 大 约 有 1100 个 左 右, 所 以 将 path 深 度 填 上 9999 为 了 一 举 列 出 所 有 时 序 信 息, 然 后 再 逐 个 击 破 不 合 规 的 时 序 结 果 当 然 9999 不 是 固 定 的 参 数, 随 着 建 模 的 增 加 这 个 参 数 也 会 跟 着 提 升, 同 学 们 应 该 注 意 下
98 图 部 分 setup 时 序 报 告 图 部 分 hold 时 序 报 告 其 他 的 细 节 基 本 不 重 要, 点 击 Report Timing( 图 4.2.9), 相 续 会 出 现 深 度 为 1100 的 setup 和 hold 报 告, 其 下 无 论 哪 个 余 量 slack 都 是 正 直, 结 果 表 示 vga_module 的 时 序 是 合 格 的 如 图 的 部 分 setup 时 序 报 告 和 图 的 部 分 hold 时 序 报 告 ( 由 于 时 序 报 告 的 数 量 实 在 是 太 多 了, 笔 者 仅 载 录 其 中 一 部 分 作 为 演 示 而 已 ) 此 外 还 有 一 个 偷 懒 的 tcl 指 令, 也 可 以 一 句 列 出 所 有 相 关 的 时 序 报 告, 亦 即 : qsta_utility::generate_all_core_timing_reports "Report Timing (Core)" 1000 或 者 双 击 Macros 目 录 下 的 Report All Core Timings( 如 图 所 示 ) 97
99 黑 金 动 力 社 区 图 快 捷 一 举 列 出 相 关 的 时 序 报 告 默 认 下 Report All Core Timings 只 是 列 出 setup 时 序 报 告 1000 分 而 已, 如 果 同 学 们 是 执 行 如 图 所 示 的 动 作, 我 们 是 无 法 扩 大 时 序 分 析 的 深 度 唯 有 手 动 输 入 tcl 命 令 ( 如 上 ), 将 1000 换 为 9999 即 可 取 得 等 价 的 效 果 这 个 tcl 命 令 到 底 有 多 大 的 用 处 就 见 仁 见 智 了, 笔 者 只 是 好 意 提 醒 而 已 根 据 setup 时 序 报 告 ( 图 ) 和 hold 时 序 报 告 ( 图 ) 各 1100, 我 们 没 有 看 见 红 色 的 字 样 出 现, 换 句 话 说 vga_module 这 个 模 块 的 物 理 时 序 是 合 格 的 ( 在 某 种 程 度 上 ), 因 此 我 们 可 以 总 结 说 整 合 篇 实 验 十 的 vga_module 没 问 题! 结 论 : 实 验 二 除 了 举 例 有 关 PLL 的 命 令 以 外, 我 们 也 了 解 静 态 时 序 分 析 的 第 一 步 骤, 亦 即 时 钟 方 面 的 约 束 此 外, 也 稍 微 对 Report Timing 逐 步 深 入 了 解, 何 为 一 举 列 出 多 有 相 关 的 时 序 报 告 等
100 4.3 延 迟 怪 兽 1 师 兄 曾 在 第 三 章 说 过,TimeQuest 是 离 不 开 TimeQuest 模 型 的 数 学 工 具, 一 旦 TimeQuest 模 型 无 法 被 应 用 在 分 析 上,TimeQuest 这 个 工 具 就 会 略 显 残 废 TimeQuest 模 型 最 简 单 的 概 念 就 是 两 个 节 点, 具 体 点 说 就 是 两 个 寄 存 器 夹 着 一 个 组 合 逻 辑, 直 接 点 说 就 是 两 个 寄 存 器 之 间 存 在 延 迟 初 学 TimeQuest 的 时 候, 笔 者 曾 产 生 这 样 的 疑 问 : 无 论 是 什 么 样 的 设 计,Quartus 的 编 译 器 是 不 是 有 足 够 的 智 能 保 证 FPGA 内 部 各 个 节 点 的 时 序 都 处 于 合 格 的 状 态? 之 所 以 会 产 生 这 样 的 想 法, 是 因 为 即 时 建 模 的 出 现 即 时 是 什 么? 根 据 理 想 时 序 的 思 想, 即 时 的 定 义 是 无 视 时 钟 取 得 即 时 结 果, 即 时 建 模 就 基 于 即 时 操 作 的 建 模 技 巧 即 时 建 模 有 一 个 变 态 的 特 性, 无 论 那 个 模 块 有 多 么 长 的 执 行 步 骤, 都 可 以 转 换 为 即 时 操 作, 只 要 一 个 时 钟 就 可 以 取 得 总 结 果 说 简 单 点 即 时 建 模 就 是 将 某 个 模 块 转 换 成 组 合 逻 辑 即 时 建 模 执 行 即 时 操 作, 即 时 操 作 又 是 组 合 逻 辑 的 事 件 触 发, 粗 略 点 说 即 时 建 模 拥 有 组 合 逻 辑 的 特 性, 但 是 即 时 建 模 又 和 组 合 逻 辑 有 明 显 的 区 别 教 科 书 上 所 谓 的 组 合 逻 辑 是 几 个 逻 辑 门 组 合 而 成 的 东 东, 笔 者 称 为 小 组 合 逻 辑 然 而 即 时 建 模 是 大 组 合 逻 辑, 因 为 只 要 条 件 允 许 即 时 建 模 是 没 有 结 局 的, 它 可 以 无 限 扩 展 在 整 合 篇 里 笔 者 也 说 过... 组 合 逻 辑 都 带 有 延 迟, 延 迟 的 真 凶 有 如 第 三 章 讨 论 过 的 各 种 延 迟 因 数 即 时 建 模 不 停 扩 展, 亦 即 组 合 逻 辑 的 延 迟 压 力 也 会 不 停 增 加 所 以 说 即 时 建 模 有 个 一 致 命 的 缺 点, 亦 即 庞 大 的 延 迟 压 力 会 随 着 不 断 扩 展 而 提 升 最 终, 这 种 延 迟 压 力 一 定 会 超 过 FPGA 可 承 受 的 极 限, 成 为 巨 大 的 延 迟 怪 兽 笔 者 的 问 题 很 简 单 :Quartus 的 编 译 器 是 不 是 智 能 到 会 自 动 优 化 这 头 怪 兽 呢? 如 果 是 又 如 何 优 化? 如 果 不 是 TimeQuest 又 如 何 约 束? 用 什 么 命 令 约 束? 顺 便 补 上, 所 谓 的 极 限 是 指 FPGA 的 制 作 工 艺, 还 有 时 钟 周 期... 越 精 致 的 制 作 工 艺 (65nm,45nm 等 ) 内 部 的 各 种 延 迟 因 数 也 会 随 之 缩 小 ; 越 长 的 时 钟 周 期, 组 合 逻 辑 既 有 更 多 足 够 的 时 间 加 工 数 据 99
101 黑 金 动 力 社 区 图 假 设 图 因 此, 我 们 可 以 为 上 述 的 种 种 内 容 绘 出 一 个 假 设 图, 如 图 所 示 它 是 一 个 最 基 本 的 TimeQuest 模 型, 亦 即 两 个 寄 存 器 夹 着 一 个 组 合 逻 辑 CLK1 是 源 寄 存 器 的 时 钟 信 号, CLK2 是 目 的 寄 存 器 的 时 钟 信 号, 假 设 它 们 同 为 一 个 时 钟 此 外, 被 夹 在 中 间 的 组 合 逻 辑 是 由 即 时 模 块 建 立 而 成 的 左 边 的 信 号 表 示, 数 据 从 reg1 移 向 reg2 然 后 经 过 即 时 模 块 图 时 钟 周 期 加 长 对 延 迟 压 力 的 影 响 图 是 加 长 时 钟 对 延 迟 压 力 影 响 的 假 想 图, 左 边 是 理 想 时 序 另 一 边 则 是 物 理 时 序 理 想 时 序 图 与 物 理 时 序 图 之 间 的 差 别 就 是 不 存 在 任 何 物 理 特 性, 不 过 时 钟 周 期 的 加 长 对 延 迟 压 力 的 影 响 却 有 相 同 的 结 果 如 左 图 所 示, 增 长 时 钟 周 期 则 表 示 组 合 逻 辑 拥 有 更 多 的 时 间 加 工 数 据, 也 亦 即 延 迟 压 力 的 覆 盖 率 会 跟 着 减 少 右 图 的 变 化 上 虽 然 没 有 左 图 明 显, 但 是 却 可 以 看 到 CLK2 的 锁 存 沿 向 右 偏 移 些 许, 不 管 怎 么 说 CLK2 锁 存 沿 越 是 接 近 数 据 的 中 心, 时 序 就 会 越 稳 定 加 大 时 钟 周 期 的 方 法 有 许 多 种, 不 过 最 为 常 见 如 图 所 示, 亦 即 减 慢 时 钟 频 率
102 图 制 作 工 艺 精 密 对 延 迟 压 力 的 影 响 FPGA 的 制 作 工 艺 是 老 百 姓 无 法 控 制 的 参 数, 这 要 根 据 FPGA 厂 商 的 天 气 和 心 情 2012 年 的 今 天,45nm 几 乎 成 为 主 流 了, 随 着 科 技 的 发 展 比 45nm 更 精 致 的 制 作 工 艺 也 会 随 之 问 世 不 过 我 们 还 是 稍 微 了 解 一 下 吧 FPGA 的 制 作 工 艺 会 直 接 影 响 FPGA 的 体 积, 内 部 的 各 种 延 迟 因 数, 无 论 是 路 径 还 是 逻 辑 门 也 会 缩 小 如 图 所 示, 随 着 制 作 工 艺 的 提 升 tpath 和 延 迟 压 力 也 会 跟 着 缩 小, 而 tpath 的 延 迟 因 数 是 路 径 好 了, 问 题 开 始 扯 远 了, 接 下 来 笔 者 用 实 验 来 验 证 一 下 笔 者 问 题 :Quartus 的 编 译 器 有 没 有 足 够 的 智 能 保 证 各 个 节 点 的 时 序 合 格 呢? 哪 怕 是 巨 无 霸 的 延 迟 怪 兽? 实 验 三 延 迟 怪 兽 的 暴 动 101
103 黑 金 动 力 社 区 图 即 时 式 Booth 乘 法 器 的 建 模 图 实 验 三 的 测 试 对 象 是 抽 取 整 合 篇 实 验 二 十 六 的 即 时 式 booth 乘 法 器, 图 则 是 建 模 图 哇! 那 是 什 么, 好 可 怕 啊... 这 是 整 合 篇 中 提 及 的 即 时 建 模, 想 了 解 的 朋 友 可 以 复 习 整 合 篇, 不 想 了 解 的 朋 友 就 无 视 吧... 懂 不 懂 原 理 对 实 验 三 来 说 都 不 重 要, 同 学 们 仅 有 把 它 看 成 拥 有 乘 法 功 能 的 组 合 逻 辑 即 可 图 组 合 逻 辑 的 即 时 模 块 实 际 上, 即 时 式 Booth 乘 法 器 目 前 只 是 组 合 罗 而 已, 它 的 前 后 没 有 被 寄 存 器 夹 着, 我 们 知 道 TimeQuest 模 型 要 是 山 寨 失 败,TimeQuest 就 无 法 进 行 物 理 时 序 的 分 析 结 果 说, 我 们 需 要 帮 忙 为 该 乘 法 器 的 前 后 加 上 寄 存 器 Delay_monster.v 1. module Delay_monster 2. ( 3. input CLK, 4. input RSTn, 5. input [7:0]A, 6. input [7:0]B, 7. output [15:0]Result 8. ); /****************************/ wire [15:0]Result_U1; 13. immediate_booth_multiplier_module U1( ra, rb, Result_U1 ); /****************************/ reg [7:0]rA,rB; 18. reg [15:0]rProduct; 19. reg [3:0]i; ( posedge CLK or negedge RSTn ) 22. if(!rstn )
104 23. begin 24. ra <= 8'd0; 25. rb <= 8'd0; 26. i <= 4'd0; 27. rproduct <= 16'd0; 28. end 29. else 30. case( i ) : 33. begin ra <= A; rb <= B; rproduct <= 16'd0; i <= i + 1'b1; end : 36. begin rproduct <= Result_U1; i <= 4'd0; end endcase /*****************************/ assign Result = rproduct; /*****************************/ endmodule 上 面 一 段 非 常 简 单 的 代 码, 第 1~8 行 声 明 该 模 块 的 出 入 口 ; 第 13 行 是 即 时 式 Booth 乘 法 器 的 实 例 化 名 为 U1, 它 分 别 由 ra 和 rb 驱 动, 输 出 致 连 线 Result_U1 第 21~38 是 核 心 功 能, 第 17~19 行 声 明 相 关 的 寄 存 器, 亦 即 ra,rb 和 rproduct; 第 24~27 行 是 复 位 操 作 第 32~33 的 步 骤 0 先 将 A 和 B 的 值 暂 存 在 ra 和 rb, 随 之 rproduct 清 零, 然 后 步 骤 i 递 增 以 示 下 一 个 步 骤 在 步 骤 i 进 入 下 一 个 步 骤 之 际,U1 立 刻 触 发 即 时 事 件 结 果 第 35~36 行,U1 会 输 出 结 果 Result_U1, 然 后 将 其 暂 存 在 rproduct 寄 存 器 最 后 再 由 rproduct 驱 动 Result ( 第 43 行 ) 103
105 黑 金 动 力 社 区 图 即 时 模 块 U1 Make Up 完 毕 如 果 不 管 核 心 功 能 等 细 节 问 题, 粗 略 点 Delay_monster 模 块 的 模 样 如 图 所 示 分 别 ra 和 rb 驱 动 即 时 式 Booth 乘 法 器 的 输 入, 输 入 则 由 rproduct 寄 存 器 暂 存 这 样 一 来,U1 就 是 上 寨 成 功, 结 果 U1 可 以 用 TimeQuest 来 分 析 图 成 功 上 寨 2 两 个 TimeQuest 模 型 同 样, 如 果 不 计 较 一 些 细 节 问 题 的 话... 结 果 如 图 所 示, 我 们 已 经 成 功 上 寨 2 个 TimeQuest 模 型 在 U1 的 身 上, 一 个 是 ra 经 U1 到 rproduct; 另 一 个 则 是 rb 经 U2 到 rproduct 如 果 同 学 蛋 疼 的 话, 笔 者 不 介 意 打 开 Technology Map 视 图 来 看 看, 同 学 一 定 会 被 细 节 打 败, 咔 咔 咔! 笔 者 用 狗 头 保 证! 先 编 译 一 下 模 块 Delay_monster, 然 后 建 立 一 个 名 为 Delay_monster.sdc 的 文 件, 随 之 填 下 : create_clock -period 50 -name CLK [get_ports {CLK}] 保 存 以 后 就 完 工 了, 执 行 的 次 序 和 实 验 二 一 样 打 开 TimeQuest, 建 立 默 认 网 表 ( 双 击 Create Timing Netlist) create_timing_netlist -model slow
106 然 后 双 击 Read SDC File 和 Update Timing Netlist, 载 入 Delay_monster.sdc 之 余 顺 便 更 新 网 表 接 下 来 双 击 Report All Summaries, 最 终 会 出 现 如 图 的 时 间 简 报 笔 者 稍 微 罗 嗦 一 下, 这 个 实 验 的 时 钟 信 号 只 有 CLK 而 已, 因 此 时 间 简 报 只 会 呈 现 CLK 而 不 是 其 他 也 就 说 CLK 信 号 贯 穿 整 个 Delay_monster 模 块 图 时 钟 简 报 好 的, 关 键 的 时 刻 到 了! 事 实 上 Delay_monster 拥 有 9999 以 上 的 节 点 也 分 析, 如 果 我 们 像 实 验 二 那 样 一 举 全 部 和 CLK 有 关 的 路 径 或 者 节 点 的 话, 那 是 一 场 等 待 的 恶 梦 ( 不 过 同 学 们 可 以 试 试, 不 过 搞 当 电 脑 后 果 要 自 负 呀 ) 不 过, 懒 惰 的 同 学 就 会 问 : 有 没 有 快 捷 的 方 法 一 举 列 出 违 规 的 节 点? 图 一 举 列 出 所 有 违 规 的 节 点 如 下 的 tcl 命 令 就 是 一 举 列 出 所 有 违 规 的 节 点 ( 路 径 ), 其 中 参 数 200 是 默 认 节 点 数 量, 参 数 可 以 自 由 修 改 同 样 也 可 以 双 击 Report Top Failing Paths 如 图 所 示, 不 过 无 法 修 改 参 数 qsta_utility::generate_top_failures_per_clock "Top Failing Paths" 200 双 击 Report Top Failing Paths 看 看... 会 发 生 什 么?TimeQuest 反 馈 如 下 信 息... 呵 呵! 没 有 任 何 违 规 的 节 点 No failing paths found. 嘛, 笔 者 还 是 简 单 举 例 10 个 路 径 ( 节 点 ), 看 看 延 迟 怪 兽 如 何 影 响 各 个 节 点 的 时 序 合 格 化 ; 又 或 者 看 看 延 迟 怪 兽 如 何 影 响 Setup 和 Hold 时 序 分 析 图 快 捷 调 出 Report Timing 界 面 双 击 Report Timing 快 捷 调 出 Report Timing 界 面 ( 如 图 所 示 ), 105
107 黑 金 动 力 社 区 图 随 便 列 举 10 个 节 点, 读 出 setup 报 告 根 据 Delay_monster 模 块,From clock 或 者 To clock 任 何 选 项 都 会 得 到 等 价 的 结 果 分 析 属 性 为 Setup 路 径 深 度 ( 节 点 数 量 )10, 报 告 纤 细 Path only, 选 项 准 备 完 毕 以 后 点 击 Report Timing 就 会 跳 出 右 图 随 便 列 举 10 个 节 点 有 关 Setup 的 余 量 分 析 咋 看... Data Delay 比 往 常 几 个 实 验 来 得 还 要 凶, 可 是 却 没 有 造 成 时 序 违 规... 为 什 么? 图 节 点 1 的 细 节 打 开 节 点 1 的 细 节 观 察, 如 图 所 示... 会 造 成 data delay 那 么 凶 的 原 因 是 Data Arrival Path( 数 据 抵 达 路 径 ) 的 Data path 出 现 怪 兽, 啊... 我 的 菩 萨! 这 只 怪 兽 就 是 在 Delay_monster 模 块 中 饲 养 的 即 时 式 Booth 乘 法 器, 只 要 同 学 将 其 列 出... 就 会 看 到 怪 兽 的 五 脏 六 腑, 亦 即 各 种 和 即 时 式 Booth 乘 法 器 有 关 的 组 合 逻 辑
108 幸 好 怪 兽 没 有 造 成 时 序 违 规... 不 过 奇 怪 的 是, 怪 兽 只 是 骚 扰 Data Arrival Path 大 道 而 已, 又 不 见 怪 兽 骚 扰 Data Required Path 大 道 ( 数 据 读 取 / 锁 存 路 径 ) 不 过, 不 知 道 怪 兽 是 否 也 会 捣 乱 Hold 分 析? 事 不 宜 迟, 让 我 们 来 瞧 瞧 图 随 便 列 举 10 个 节 点, 读 出 hold 报 告 setup 余 量 有 关 公 式 : 数 据 抵 达 时 间 Time Arrival Time = 启 动 沿 时 间 + Tclk1 + Tco + Tdata hold 余 量 有 关 公 式 : 数 据 保 持 时 间 Data Hold Time = 启 动 沿 + Tclk1 + Tco+ Tdata + 数 据 周 期 时 间 根 据 Setup 余 量 和 Hold 余 量 的 求 得 公 式 Tdata 就 是 组 合 逻 辑 的 象 征, 亦 即 组 合 逻 辑 越 肥 大,Tdata 也 会 一 直 线 上 升 结 果 而 言, 我 们 可 以 肯 定 延 迟 怪 兽 也 会 捣 蛋 Hold 时 序 的 分 析 如 图 所 示, 笔 者 随 便 列 举 10 个 节 点 ( 路 径 ) 然 后 列 出 时 序 结 果, 奇 怪 的 事 情 发 生 了! 注 意 最 右 边 Data Delay 的 数 值, 既 然 那 么 渺 小... 有 没 有 搞 错? 107
109 黑 金 动 力 社 区 图 节 点 6 的 细 节 绝 对 没 有 搞 错, 注 意 Data Path 的 展 开 信 息, 那 是 延 迟 怪 兽 的 五 脏 六 腑, 无 疑 延 迟 怪 兽 确 确 实 实 已 经 影 响 Hold 时 序 分 析, 不 过 效 果 不 像 setup 分 析 那 么 强 烈 而 已 =================================================================== 笔 者 曾 说 过, 时 钟 周 期 也 是 其 中 一 个 影 响 组 合 逻 辑 的 因 数, 为 了 让 延 迟 怪 兽 的 骚 动 更 加 疯 狂, 我 们 尝 试 缩 短 时 间 周 期 从 20Mhz(50ns) 至 100Mhz(10ns), 亦 即 更 改 CLK 的 约 束 参 数... 如 下 所 示 : create_clock -period 10 -name CLK [get_ports {CLK}] 然 后 重 复 上 述 动 作 直 到 双 击 Report All Summaries 为 止 图 亮 红 灯 的 Setup 报 告 结 果 如 图 所 示,setup 报 告 既 然 量 红 灯 了... 我 们 得 赶 紧 一 举 列 出 违 规 的 节 点 ( 双 击 Report Top Failing Paths)
110 图 亮 红 灯 的 setup 时 序 结 果 红 啊! 满 江 红 啊! 怪 兽 开 始 杀 人 啦! 同 学 不 要 忘 了, 默 认 下 Report Top Failing Paths 只 是 随 意 举 列 200 个 有 问 题 的 节 点 而 已, 实 际 上 有 问 题 的 节 点 大 概 是 超 过 个 以 上, 到 底 有 多 少 人 已 经 遭 殃? 完 了... 彻 底 玩 完 了, 终 于 玩 火 自 焚 刺 激 怪 兽 了... 延 迟 怪 兽 已 经 造 成 一 发 不 可 收 拾 的 后 果 我 们 该 怎 么 办... 唔 呜 呜... ( To be continue ) 109
111 黑 金 动 力 社 区 4.4 延 迟 怪 兽 2 前 情 提 要 : 一 只 名 为 即 时 式 booth 乘 法 器 的 延 迟 怪 兽 养 活 在 Delay_monster.v 的 体 内, 当 时 钟 频 率 为 20Mhz 的 时 候, 怪 兽 虽 然 有 对 Setup 和 Hold 时 序 结 果 造 成 影 响, 不 过 不 至 于 使 结 果 违 规 可 是 一 个 好 玩, 将 时 钟 周 期 从 50ns 缩 短 至 10ns, 最 终 造 成 怪 兽 暴 动, 疯 狂 杀 人... Setup 时 序 报 告 出 现 血 粼 粼 的 满 江 红! 要 解 决 这 个 难 题, 我 们 有 几 个 选 择 : ( 一 ) 消 灭 怪 兽 ( 放 弃 使 用 即 时 式 Booth 乘 法 器 ) ( 二 ) 增 宽 时 钟 周 期 ( 三 ) 使 用 约 束 命 令 选 择 一 是 最 直 接 的 方 法, 亦 即 消 灭 怪 兽 放 弃 使 用 该 乘 法 器, 说 白 点 那 只 是 潇 洒 不 潇 洒 的 问 题 而 已 选 择 二 是 温 柔 的 方 法, 亦 即 加 宽 时 钟 周 期 以 致 抚 摸 怪 兽 的 情 绪, 让 它 不 在 杀 人,setup 时 序 报 告 也 不 会 满 江 红 选 择 三 是 最 最 无 情 的 方 法, 既 利 用 怪 兽 也 无 视 怪 兽 的 情 绪, 然 而 使 用 强 制 的 约 束 手 段 驾 驭 怪 兽... 好 啦... 别 把 话 说 到 那 么 难 听 啦! 选 择 三 本 来 就 是 学 习 TimeQuest 的 目 的... 章 节 4.3 笔 者 曾 提 问 过 Quartus 的 编 译 器 有 没 有 足 够 的 智 能 保 证, 内 部 的 物 理 时 序 不 会 出 现 违 规 呢? 如 果 是 Quartus 如 何 优 化? 如 果 不 是 TimeQuest 如 何 约 束? 用 什 么 命 令, 然 而 答 案 也 非 常 明 显 的 接 下 来 我 们 又 该 用 什 么 约 束 命 令 来 确 保 适 时 序 合 格 呢? 在 此 之 前, 同 学 们 需 要 回 忆 一 下 第 三 章 中 曾 出 现 的 约 束 行 为 在 约 束 行 为 中 加 的 概 念 比 起 减 的 概 念 更 为 重 要, 也 就 是 说 在 接 下 会 使 用 的 约 束 命 令, 将 演 示 如 何 实 现 加 的 概 念 实 验 四 约 束 延 迟 怪 兽 实 验 四 和 实 验 三 的 内 容 基 本 上 不 变, 除 了 时 钟 约 束 从 20Mhz 变 成 100Mhz, 亦 即 : create_clock -name {CLK} -period waveform { } [get_ports {CLK}] 之 所 以 延 迟 怪 兽 会 到 处 杀 人, 是 因 为 我 们 没 有 给 足 组 合 逻 辑 加 工 数 据 的 时 间, 会 有 同 学 突 发 奇 想 道 : 能 不 能 设 法 减 少 硬 件 上 给 组 合 逻 辑 带 来 的 延 迟?, 这 位 同 学 非 常 遗 憾, 除 了 减 少 即 时 建 模 的 即 时 层, 或 者 提 高 FPGA 的 制 作 工 艺 以 外, 余 下 就 只 有 提 高 网 表 的 质 量 而 已, 不 过 目 前 还 不 是 时 候 谈 论 网 表 在 此 我 们 需 要 用 到 set_multicycle_path 约 束 命 令
112 严 格 来 说 set_multicycle_path 的 约 束 行 为 是 告 诉 TimeQuest 更 动 某 对 节 点 的 启 动 沿 和 锁 存 沿... 想 必 读 者 听 不 明 白 是 吧? 说 傻 瓜 点 就 是, 告 诉 TimeQuest 某 对 节 点 很 可 能 不 是 用 1 个 时 钟 周 期 工 作 图 随 意 举 例 10 个 节 点 的 setup 报 告 ( 约 束 之 前 频 率 100Mhz 时 钟 周 期 10ns) 图 随 意 举 例 10 个 节 点 的 hold 报 告 ( 约 束 之 前 频 率 100Mhz 时 钟 周 期 10ns) 图 是 随 意 举 例 10 个 节 点 的 setup 报 告, 则 图 则 是 hold 报 告... 继 续 看 图 由 于 时 钟 周 期 不 足 的 关 系 导 致 setup 时 序 报 告 跟 着 亮 红 灯 因 为 100Mhz 仅 有 的 10ns 时 钟 周 期 不 足 以 给 足 31ns 左 右 的 薪 水 (Data Delay) 为 此 我 们 需 要 将 时 钟 周 期 加 宽 到 40ns 左 右 图 打 开 Set Multicycle Path 界 面 我 们 先 打 开 Set Multicycle Path, 如 图 所 示, 该 界 面 在 Constraints 菜 单 下 调 出 111
113 黑 金 动 力 社 区 图 全 局 节 点 的 节 点 减 频 4 倍 接 下 来 我 们 要 将 From 和 To 均 设 为 主 时 钟 -CLK, 然 后 双 双 为 setup 和 hold 的 Value 填 入 4 与 3,Refrence clock 皆 为 End, 然 后 点 击 Run( 如 图 所 示 ) set_multicycle_path -from [get_clocks {CLK}] -to [get_clocks {CLK}] -setup -end 4 set_multicycle_path -from [get_clocks {CLK}] -to [get_clocks {CLK}] -hold -end 3 然 后 两 条 约 束 命 令 会 自 动 添 加 到 sdc 文 件 下 以 上 的 设 置 是 告 诉 TimeQuest 所 有 与 CLK 有 关 的 节 点 都 是 用 4 个 时 钟 周 期 干 活 再 双 击 Update Timing 该 约 束 命 令 就 会 生 效 图 随 意 举 例 10 个 节 点 的 setup 报 告 ( 约 束 之 后 频 率 100Mhz 时 钟 周 期 10ns) 图 随 意 举 例 10 个 节 点 的 hold 报 告 ( 约 束 之 后 频 率 100Mhz 时 钟 周 期 10ns) 然 后 再 随 意 举 例 10 个 节 点 的 Setup 和 hold 报 告 看 看, 不 堪 入 目 的 满 江 红 基 本 上 也 消 失 的 无 影 无 踪 读 者 稍 微 注 意 一 下 图 的 setup relationship, 不 是 原 先 的 10ns 而 是 40ns 接 着 笔 者 再 重 新 打 开 Delay_monster, 然 而 sdc 文 件 中 的 时 钟 约 束 从 100Mhz(10ns)
114 改 为 25Mhz(40ns) 看 看... 代 码 更 动 如 下 所 示 : create_clock -name {CLK} -period waveform { } [get_ports {CLK}] 改 为 create_clock -name {CLK} -period waveform { } [get_ports {CLK}] 然 后 再 随 意 举 例 10 个 setup 和 hold 的 时 序 报 告... 图 随 意 举 例 10 个 节 点 的 setup 报 告 ( 未 约 束 频 率 25Mhz 时 钟 周 期 40ns) 图 随 意 举 例 10 个 节 点 的 end 报 告 ( 未 约 束 频 率 25Mhz 时 钟 周 期 40ns) 同 学 自 己 比 较 一 下 图 4.4.5~6 与 图 4.4.7~8 结 果 是 不 是 一 样 呢? 它 们 之 间 的 区 别 就 在 于 : 一 个 是 频 率 为 100Mhz 加 上 约 束 ; 另 一 个 频 率 为 25Mhz 未 约 束 akuei2 你 到 底 要 讲 什 么, 我 越 来 越 糊 涂 了... 拜 托 了, 别 再 玩 弄 我 的 猪 脑 了! 想 必 有 写 同 学 已 经 不 耐 烦 了 笔 者 不 是 有 意 捣 乱, 在 此 笔 者 只 是 想 证 明 一 个 事 情 而 已,Set Multicycle Path 的 功 是 告 诉 TimeQuest 某 对 节 点 用 N 个 时 钟 工 作 不 过 比 较 特 别 的 是, 它 不 仅 可 以 针 对 所 有 节 点, 同 样 它 也 可 以 针 对 单 对 节 点 此 外, 笔 者 也 想 提 醒 一 件 事... Set Multicycle Path 充 其 量 是 告 诉 某 对 节 点 用 N 个 时 钟 工 作 或 者 告 诉 TimeQuest 某 对 节 点 的 启 动 沿 和 锁 存 沿 有 所 更 动 实 际 上 该 约 束 命 令 没 有 任 何 能 力 干 涉 硬 模 型 的 内 容 好 了! 前 面 只 是 热 身 而 已, 接 下 来 我 们 会 慢 慢 解 剖 Set Multicycle Path 这 个 命 令 113
115 黑 金 动 力 社 区 图 Setup Relationship 和 Hold Relationship 的 理 想 关 系 值 让 我 们 先 回 忆 第 一 章 曾 出 现 过 的 Setup Relationship 和 Hold Relationship 亦 即 建 立 和 保 持 理 想 关 系 值 的 取 值 过 程, 如 图 所 示 在 默 认 即 理 想 的 情 况 下 Setup Relationship 必 定 等 价 与 时 钟 周 期 亦 即 10ns, 然 而 Hold Relationship 必 定 0ns 不 过 对 于 Set Multicycle Path 来 说 还 有 Setup Value 和 Hold Value 之 分, 默 认 情 况 下 Setup Value 为 1,Hold Value 为 0 图 Setup Value = 4,Hold Value = 0 实 际 上, 我 们 知 道 Setup Relationship 仅 有 10ns 是 不 足 以 应 付 延 迟 怪 兽 的 胃 口, 因 此 将 设 置 Set Multicycle Path 中 的 Setup Value 为 4... 如 图 所 示,Setup 的 虚 线 箭 头 向 右 移 至 CLK2 的 第 4 个 时 钟, 亦 即 40ns 处, 因 此 Setup Relationship 增 加 为 40ns 不 过 糟 糕 的 是, 当 Setup Value 更 动 Hold 的 虚 线 箭 头 也 跟 着 移 动, 指 向 30ns 的 地 方 为 什 么 Setup 虚 线 箭 头 移 动,Hold 虚 线 箭 头 也 会 跟 着 移 动 呢? 鬼 晓 得, 这 是 TimeQuest 的 游 戏 规 则, 我 们 也 能 遵 守 而 已 随 着 Setup Value 更 动,Hold 虚 线 箭 头 跟 着 更 动, 结 果 Hold Relationship 也 随 之 增 加 至 30ns 我 们 知 道 0ns 是 Hold Relationship 的 理 想 值, 该 值 增 加 只 会 坏 掉 节 点 的 时 序 而 已... 不 相 信 吗? 我 们 来 计 算 一 下... 求 得 保 持 余 量 的 公 式 是 :( 用 屁 股 的 话 ) 保 持 余 量 = 数 据 抵 达 时 间 - 数 据 获 取 时 间 Hold Slack = Data Arrival Time - Data Required Time 数 据 抵 达 时 间 Data Arrival Time = 启 动 沿 + Tclk1 + Tco + Tdata 数 据 获 取 时 间 Data Required Time = 锁 存 沿 + Tclk2 + Th
116 = 理 想 保 持 关 系 值 + Tclk2 + Th 上 述 是 用 屁 股 求 得 Hold Slack 的 公 式, 其 中 Data Arrived Time 和 Data Required Time 左 右 该 余 量 是 否 违 规 接 下 来 我 们 把 焦 点 转 向 Data Required Time 的 公 式, 一 段 抢 眼 的 红 字, 亦 即 理 想 保 持 关 系 值 就 是 所 谓 的 Hold Relationship, 只 要 该 值 增 加 Data Required Time 也 会 增 加 该 事 实 也 告 诉 我 们, 只 要 Data Required Time 越 接 近 Data Arrived Time,Hold 余 量 就 越 难 合 格 图 Setup Value =4,Hold Value = 3 为 此, 我 们 必 须 设 法 降 低 Hold Relationship 的 值, 如 图 所 示... 原 先 的 Hold Value 从 0 改 为 3, 结 果 Hold 虚 线 箭 头 向 左 移 动 3 个 时 钟, 最 终 落 在 0ns 的 地 方, 因 此 Hold Relationship 也 减 至 0ns 最 后 我 们 得 到 Setup Value 为 4,Hold Value 为 3, 双 双 对 应 Setup Relationship 为 40ns,Hold Relationship 为 0ns 的 结 果 图 Mhz 经 Set Multicycle Path 约 束 与 25Mhz 未 被 约 束, 之 间 的 等 价 关 系 115
117 黑 金 动 力 社 区 我 们 稍 微 换 个 角 度 来 思 考, 如 图 所 示 一 个 是 经 Set Multicycle Path 约 束 的 100Mhz, 另 一 个 则 是 未 经 约 束 的 25Mhz 无 论 是 上 看 还 是 下 看, 它 们 之 间 的 关 系 是 完 全 等 价 的 某 对 节 点 用 N 个 时 钟 工 作 只 是 set multicycle path 比 较 粗 略 的 功 能 说 明 而 已, 实 际 上 Set Multicycle Path 就 是 告 诉 TimeQuest 指 向 Setup/Hold 虚 线 箭 头 有 所 更 动 该 约 束 命 令 不 仅 针 对 所 有 节 点, 而 且 也 可 针 对 以 单 对 局 部, 让 我 们 马 上 试 试 看... 图 随 意 举 例 10 个 节 点 的 setup 报 告 笔 者 重 新 打 开 频 率 为 100Mhz 而 且 还 未 约 束 的 Delay_monster 模 块, 然 后 随 便 举 例 10 个 节 点 的 Setup 报 告, 如 图 所 示... 均 为 满 江 红 在 此, 我 们 只 要 针 对 ra[0] ~ rproduct[15] 进 行 约 束... 图 针 对 节 点 ra[0]~rproduct[15] 执 行 Set Multicycle Path 约 束 如 图 所 示,From 选 项 只 要 针 对 ra[0],to 选 项 则 只 要 针 对 rproduct[15] 然 后 设 置 Setup Value 为 4,Hold Value 为 3 即 可, 然 后 点 击 Run, 下 面 两 段 代 码 就 会 自 动 添 加 在 SDC 文 件 下 set_multicycle_path -from [get_cells {ra[0]}] -to [get_cells {rproduct[15]}] -setup -end 4 set_multicycle_path -from [get_cells {ra[0]}] -to [get_cells {rproduct[15]}] -hold -end 3 接 着 双 击 Update Timing Netlist 更 新 网 表, 然 后 在 随 意 举 例 10 个 节 点 看 看... 不 过 不 同
118 的 是 ra[0]~rproduct[15] 有 关 的 违 规 报 告 已 经 从 此 消 失 在 这 个 世 界 上 117
119 黑 金 动 力 社 区 图 延 迟 怪 兽 有 关 的 节 点 32. 0: 33. begin ra <= A; rb <= B; rproduct <= 16'd0; i <= i + 1'b1; end : 36. begin rproduct <= Result_U1; i <= 4'd0; end 如 果 一 点 一 点 约 束 的 话, 最 终 会 耗 死 自 己 而 已, 所 以 我 们 必 须 寻 找 捷 径... 图 是 由 Delay_monster.v 在 代 码 行 32~36 想 象 出 来 的 关 系 图, 亦 即 ra,rb 经 即 时 式 Booth 乘 法 器, 致 rproduct 有 关 的 所 有 节 点 因 此, 我 们 只 要 按 照 图 的 信 息 来 执 行 约 束 即 可 From 选 项 方 面 选 择 ra[0]~ra[7], rb[0]~rb[7] ( 无 视 feeder ); To 选 线 方 面 选 择 rproduct[0]~[15] 即 可 From: [get_cells {ra[0] ra[1] ra[2] ra[3] ra[4] ra[5] ra[6] ra[7] rb[0] rb[1] rb[2] rb[3] rb[4] rb[5] rb[6] rb[7]}] To: [get_cells {rproduct[0] rproduct[1] rproduct[2] rproduct[3] rproduct[4] rproduct[5] rproduct[6] rproduct[7] rproduct[8] rproduct[9] rproduct[10] rproduct[11] rproduct[12] rproduct[13] rproduct[14] rproduct[15]}] 图 From 选 线 ra[0]~ra[7],rb[0]~rb[7],to 选 线 rproduct[0]~[15] 再 来 重 复 与 图 的 操 作, 结 果 如 图 所 示, 然 后 点 击 Run, 相 关 的 sdc 指 令 就
120 会 添 加 进 入 sdc 文 件 内 ( 这 回 代 码 因 为 太 过 沉 长 所 以 被 阉 掉 了 ) 接 着 双 击 Update Timing Netlist 更 新 网 表, 等 待 一 段 时 间 以 后 双 击 Report Top Failing Path 看 看, 同 学 们 会 发 现 什 么 也 没 有, 亦 即 满 江 红 已 经 消 失 了... 怪 兽 不 再 杀 人 了... 很 好! 我 们 已 经 成 功 使 用 Set Multicycle Path 压 制 怪 兽 暴 动 之 余, 也 不 改 动 100Mhz 主 时 钟 频 率, 真 是 可 喜 可 贺... 不 过 同 学 们 别 天 真 了, 放 心 还 是 太 早, 虽 然 我 们 已 经 解 决 延 迟 怪 兽 的 暴 动 事 件, 但 是 更 可 怕 的 连 锁 反 应 却 已 经 在 后 头 发 生 了... 这 段 话 究 竟 是 怎 么 一 回 事 呢?(To Be Continued...) 119
121 黑 金 动 力 社 区 4.5 Set Multicycle Path 的 噩 梦 严 格 来 说 这 章 节 所 要 讨 论 的 充 其 量 只 是 笔 者 个 人 的 担 忧 和 多 心 而 已, 笔 者 宁 愿 自 己 是 想 多 了, 不 过 执 着 的 念 头 始 终 让 笔 者 方 不 小 心 来, 至 于 为 何 呢? 让 我 们 先 返 回 时 序 篇 的 年 头 开 始 说 起... 笔 者 曾 说 过 每 个 模 块 消 耗 几 个 时 钟 完 成 一 次 性 的 操 作 可 有 不 定 也 有 固 定, 不 过 更 多 时 候 模 块 都 有 固 定 的 时 钟 消 耗 数 来 完 成 一 个 周 期 的 操 作, 为 了 容 易 记 忆 笔 者 称 呼 这 种 操 作 周 期 为 模 块 周 期 一 个 健 全 的 模 块 周 期 不 仅 拥 有 固 定 的 时 钟 消 耗 数, 而 且 什 么 时 候 执 行 甚 麽 这 些 事 实 是 绝 对 不 可 改 变 错 了 会 打 乱 整 个 设 计 的 执 行 节 奏 继 续 使 用 delay_monster.v 作 为 例 子 : 代 码 delay_monster 的 相 关 操 作 32. 0: 33. begin ra <= A; rb <= B; rproduct <= 16'd0; i <= i + 1'b1; end : 36. begin rproduct <= Result_U1; i <= 4'd0; end 上 面 一 段 代 码 告 诉 我 们,T0 的 时 候 将 A 和 B 载 入 相 对 应 的 ra 与 rb 里 在 T1 的 时 候, 即 时 式 Booth 乘 法 器 吐 出 结 果, 然 后 将 其 寄 存 到 rproduct 里, 然 后 操 作 结 束 换 换 言 之,delay_monster 模 块 一 个 模 块 周 期 仅 消 耗 2 个 时 钟 而 已 根 据 理 想 时 序 而 言, 即 时 式 Booth 乘 法 器 是 触 发 即 时 事 件 的 组 合 逻 辑 而 已, 因 此 一 个 时 钟 已 经 足 够 结 果 说, 从 Verilog 的 角 度 上 来 看 delay_monster.v 这 个 软 模 型 是 正 确 无 误 的 不 过, 一 旦 这 个 软 模 型 准 备 转 换 为 硬 模 型, 噩 梦 就 开 始 了 默 认 网 表 下, 即 时 式 Booth 乘 法 器 的 延 迟 压 力 大 约 是 30ns 左 右, 很 明 显 频 率 100Mhz 的 主 时 钟,delay_monster 模 块 仅 用 2 个 时 钟, 亦 即 20ns 是 绝 对 支 付 不 了 该 组 合 逻 辑 的 延 迟 压 力... 换 之 频 率 为 25Mhz 作 为 delay_monster 模 块 的 主 时 钟, 它 就 拥 有 80ns 的 有 余 时 间, 应 付 30ns 的 延 迟 压 力 却 却 有 余 嘛... 这 是 理 所 当 然 的 事 实 吗, 不 过 上 述 的 事 实,Set Multicycle Path 约 束 命 令 和 笔 者 的 忧 虑 又 有 什 么 关 系 呢? 让 笔 者 还 是 用 图 来 说 话 吧...
122 图 建 模 图 图 是 根 据 上 述 代 码 所 创 建 的 建 模 图, 虽 然 与 图 有 点 相 识, 不 过 为 了 更 能 详 细 说 明 一 切, 笔 者 已 经 变 更 一 些 如 果 忽 略 位 宽, 基 本 图 有 两 个 节 点, 亦 即 ra 经 即 时 式 Booth 乘 法 器 致 rproduct; 又 rb 经 即 时 式 Booth 乘 法 器 致 rproduct 然 后, 经 过 默 认 网 表 的 评 估, 即 时 式 Booth 乘 法 器 大 延 迟 压 力 大 约 为 31ns, 为 方 便 绘 图 在 此 取 值 为 30ns 图 代 码 在 频 率 为 100Mhz( 左 图 ) 和 频 率 (25Mhz) 的 理 想 时 序 活 动 记 录 图 是 代 码 在 两 个 不 同 频 率 下, 亦 即 100Mhz 和 25Mhz 的 时 序 活 动 记 录 我 们 先 将 焦 点 转 向 右 图, 右 图 是 时 钟 频 率 为 25Mhz 亦 即 1 个 时 钟 周 期 为 40ns 根 据 代 码 中 的 步 骤 0(32~33 行 )T0 的 时 候 ra 和 rb 被 赋 值, 同 时 间 即 时 式 Booth 乘 法 器 也 开 始 工 作 即 时 式 Booth 乘 法 器 的 加 工 时 间 大 约 是 30ns, 换 之 T1 之 前 亦 即 30ns 的 地 方, 加 工 结 果 Result 就 已 经 被 吐 出, 然 后 在 T1 之 际 rproduct 就 会 轻 松 的 读 入 Result 接 下 来, 我 们 把 焦 点 转 向 图 的 左 图... 那 是 主 时 钟 为 100Mhz 的 情 况 下, 在 T0 的 时 候 ra 和 rb 被 赋 值, 不 过 即 时 式 Booth 乘 法 器 需 要 30ns 加 工 时 间, 因 此 在 T1 之 际 数 据 还 没 加 工 完 成, 结 果 rproduct 读 空 Result 在 T3 的 时 候 才 输 出, 最 快 也 要 在 T4 的 时 候 才 能 读 取 121
123 黑 金 动 力 社 区 在 实 验 四 中, 虽 然 我 们 为 delay_monster 加 入 multicycle path 的 约 束 以 致 时 序 合 格 事 实 上 那 只 是 TimeQuest 这 个 数 学 工 具 在 数 字 上 的 计 算 成 功 而 已, 实 际 中 我 们 还 没 有 配 合 模 块 周 期 来 考 虑 multicycle path 为 模 块 周 期 带 来 的 噩 梦 再 来 我 们 先 用 硬 件 的 角 度 去 观 察 multicycle path 的 行 为... 图 某 节 点 被 multicycle path 约 束 为 Setup Value 1/Hold Value 0 图 是 某 个 节 点 被 multicyle path 约 束 为 Setup Value1/ Hold Value 0,multicycle path 在 假 想 里 就 好 比 在 该 节 点 的 CLK2 路 径 中 添 加 一 个 枷 锁, 不 过 setup value = 1 与 hold value = 0 这 种 取 值 有 约 束 和 没 约 束 没 什 么 两 样, 不 管 怎 么 样 我 们 还 是 来 观 察 它 的 时 序 活 动 ( 读 者 稍 微 注 意 一 下, 这 个 枷 锁 只 是 想 象 上 的 东 西, 实 际 上 不 存 在 硬 模 型 的 身 上 ) 图 某 节 点 Setup Value 1/Hold Value 0 的 时 序 活 动 我 们 假 设 reg1 在 T0 发 送 仅 有 1 个 时 钟 周 期 的 数 据, 在 T1 之 际 reg2 会 轻 松 的 读 取 从 reg1 发 送 过 来 的 数 据, 结 果 如 图 所 示
124 图 某 节 点 被 multicycle path 约 束 为 Setup Value 2/Hold Value 1 图 是 某 节 点 multicycle path 的 约 束 结 果 Setup Value 为 2 和 Hold Value 为 1 如 果 仔 细 观 察, 我 们 会 发 掘 到 图 与 图 有 明 显 的 不 同, 亦 即 reg2 没 有 吐 出 任 何 数 据, 为 什 么 呢? 让 我 们 来 观 察 该 节 点 的 时 序 活 动...( 读 者 再 稍 微 注 意 一 下, 这 个 枷 锁 只 是 TimeQuest 的 想 象 而 已, 实 际 与 HDL 的 理 想 时 序, 或 者 硬 模 型 本 身 无 关 ) 图 某 节 点 Setup Value 2/Hold Value 1 的 时 序 活 动 我 们 依 然 假 设 reg1 在 T0 的 时 候 发 送 仅 有 1 个 时 钟 周 期 的 数 据 给 reg2, 不 过 有 点 遗 憾 的 是... 由 于 该 节 点 受 到 约 束, 亦 即 Setup Value 为 2 和 Hold Value 为 1, 因 此 CLK2 的 锁 存 沿 也 随 着 移 动, 结 果 reg2 在 T1 的 时 候 却 发 呆 ; 在 T2 之 际,reg2 准 备 读 取 数 据 的 时 候, 可 怜 的 它 只 能 读 到 空 气 set multicycle path 该 约 束 命 令 实 际 上 它 会 更 改 启 动 沿 或 者 锁 存 沿 的 触 发 时 候 为 了 让 同 学 们 更 有 感 的 了 解, 我 们 再 来 观 察 图 节 点 的 不 同 时 序 活 动
125 黑 金 动 力 社 区 图 某 节 点 Setup Value 2/Hold Value 另 一 个 时 序 活 动 图 是 某 节 点 的 不 同 时 序 活 动, 在 T0~T2 之 际 reg1 连 续 发 送 数 据 1~3, 至 此 之 后 一 直 保 持 沉 默 reg2 在 T1 的 时 候 由 于 受 约 束 的 影 响 结 果 在 原 地 发 呆 在 T2 之 际, 亦 即 锁 存 沿 1, 对 应 启 动 沿 1, 该 读 的 数 据 也 是 数 据 1 才 对, 可 是 reg2 不 小 心 读 到 数 据 2 在 T3 之 际, 亦 即 锁 存 沿 2, 对 应 启 动 沿 2, 该 读 的 对 象 也 是 数 据 2 才 对, 却 又 不 小 心 读 到 数 据 3 在 T4 之 际, 亦 即 锁 存 沿 3, 正 reg2 要 发 愤 图 强 的 时 候, 才 发 现 头 上 已 经 没 有 数 据 可 读 了 当 同 学 们 看 到 这 里, 隐 约 中 是 否 已 经 察 觉 到 笔 者 的 忧 虑 呢? 笔 者 的 忧 虑 就 是, 当 我 们 用 set multicycle path 告 诉 TimeQuest 某 对 节 点 用 N 个 时 钟 工 作, 可 是 充 其 量 这 也 是 TimeQuest 的 妄 想 而 已, 因 为 实 际 的 HDL 行 为 或 者 硬 模 型 没 有 任 何 改 变 代 码 delay_monster 的 相 关 操 作 32. 0: 33. begin ra <= A; rb <= B; rproduct <= 16'd0; i <= i + 1'b1; end : 36. begin rproduct <= Result_U1; i <= 4'd0; end 让 我 们 再 仔 细 分 析 代 码 的 一 切... 在 步 骤 0 的 时 候 ra 与 rb 以 后, 注 ra 和 rb 自 步 骤 0 之 后 一 直 驱 动 即 时 式 Booth 乘 法 器, 然 后 i 递 增 以 示 下 一 个 步 骤 在 步 骤 1 的 时 候,rProdcut 读 取 该 乘 法 器 的 输 出 亦 即 Result_U1, 此 时 i 不 在 递 增 以 示 永 远 停 留 在 步 骤 1 简 单 说 就 是 在 步 骤 0 给 即 时 式 booth 乘 法 器 给 源, 然 后 在 步 骤 1 读 取 结 果
126 图 代 码 在 频 率 为 100Mhz 加 约 束 Setup Value 4/Hold Value 3 的 详 细 时 序 活 动 图 我 们 可 以 看 到, 经 过 setup value = 4 和 hold value = 3 的 set multicycle path 约 束 以 后 TimeQuest 的 妄 想 是 :T0 之 际 delay monster 模 块 在 步 骤 0 给 即 时 式 booth 乘 法 器 给 袁, 然 后 delay monster 给 空 3 个 时 钟, 亦 即 T1~T3 在 打 盹 (3 个 空 步 骤 ), 然 后 在 T4 的 时 候, 也 是 delay monster 在 步 骤 4 读 取 结 果 笔 者 需 要 强 调, 在 TimeQuest 的 妄 想 中 delay monster 用 5 个 时 钟 工 作, 或 者 说 delay monster 有 5 个 时 钟 的 模 块 周 期 不 过 delay monster 的 实 际 HDL 行 为, 只 用 2 个 时 钟 工 作, 或 者 说 实 际 的 delay monster 有 2 个 时 钟 的 模 块 周 期 很 明 显,delay monster 实 际 的 模 块 周 期 与 TimeQuest 妄 想 中 的 delay monster 模 块 周 期 有 很 大 的 出 入, 前 者 用 2 个 时 钟 工 作, 而 TimeQuest 受 set multicycle path 冲 昏 头 以 后 却 妄 想 delay monster 用 5 个 时 钟 工 作 这 就 是 笔 者 所 谓 的 忧 虑 根 据 代 码 我 们 知 道 该 delay_monster 模 块 周 期 总 共 消 耗 2 个 时 钟, 可 是 根 据 图 的 结 果 TimeQuest 妄 想 该 模 块 一 共 用 了 5 个 时 钟 周 期 这 种 马 头 不 对 狗 嘴 的 情 形 当 然 不 被 我 们 允 许 啦... 在 此 我 们 应 该 更 动 一 下 delay_monster 的 hdl 内 容 才 行 125
127 黑 金 动 力 社 区 4.6 不 可 理 喻 的 Set False Path 笔 者 曾 在 实 验 四 里 做 过 一 个 非 常 有 趣 的 举 动, 亦 即 有 关 delay_monster 模 块 : 其 中 一 种 是 将 100Mhz 的 主 时 钟 都 约 束 为 Multicycle Path (Setup Value =4,Hold Value =3); 另 一 种 则 是 直 接 使 用 25Mhz 的 主 时 钟 然 而 不 同 的 操 作 却 得 出 一 样 的 结 果... 借 此, 奇 怪 的 念 头 在 笔 者 的 猪 脑 袋 里 开 始 萌 生... 造 就 时 序 违 规 的 凶 手 就 是 ra[0]~[7],rb[0]~[7] 和 rproduct[0]~[15] 有 关 的 节 点 而 已, 其 犯 罪 动 机 就 是 在 肚 子 里 养 了 一 只 延 迟 怪 兽, 造 成 时 钟 周 期 不 足 够 喂 养 它 ( 时 钟 周 期 小 于 延 迟 压 力 ) 解 决 的 方 法 也 挺 简 单, 只 要 给 足 怪 兽 食 物 事 情 就 完 事 休 矣 不 过 根 据 实 验 四 的 结 果, 由 于 Multicycle Path 约 束 的 原 因, 却 不 小 心 打 乱 模 块 周 期, 造 成 半 得 倍 失 的 局 面 未 解 决 这 个 问 题, 我 们 必 寻 找 考 其 他 的 出 路... 为 此, 我 们 可 以 接 签 一 下 25Mhz 主 时 钟 的 经 验 默 认 网 表 下, 即 时 式 Booth' 乘 法 器 的 延 迟 压 力 大 约 30ns, 结 果 40ns 的 时 钟 周 期 足 够 应 付 它 如 果 我 们 换 另 一 个 角 度 来 思 考, 只 要 借 助 一 下 黏 糊 关 系 的 力 量, 即 时 是 100Mhz 的 时 钟 周 期, 我 们 只 要 给 足 时 钟 不 是 万 事 Okay 吗? 代 码 黏 糊 概 念 的 给 足 时 钟 32. 0: 33. begin ra <= A; rb <= B; rproduct <= 16'd0; i <= i + 1'b1; end ,2,3: 36. i <= i + 1'b1; : 39. begin rproduct <= Result_U1; i <= 4'd0; end 具 体 一 点 让 我 们 悄 悄 代 码 行 33~34 是 关 键... 章 节 4.5 笔 者 也 举 例 出 实 验 四 的 2 个 关 键 条 件, 其 中 ra 和 rb 供 源 3 个 时 钟 以 上 是 最 重 要 的 换 句 话 说, 即 使 我 们 为 即 时 式 Booth 乘 法 器 提 供 足 够 的 时 钟, 但 是 驱 动 源 ra 和 rb 不 足 也 会 换 取 失 败 的 结 果 第 33 行 代 码 执 行 着 为 ra 和 rb 供 源 的 角 色, 然 而 34~35 行 则 停 留 3 个 时 钟 简 单 点 说,33 行 的 操 作 加 上 35~36 的 3 个 时 钟 给 空, 供 源 一 共 保 持 4 个 时 钟... 如 果 主 时 钟 为 100Mhz,4 个 时 钟 亦 即 40ns 在 此, 延 迟 怪 兽 已 经 有 足 够 的 食 物 和 时 间... 随 之 在 步 骤 4 中 ( 第 38~39 行 )rproduct 就 可 以 轻 松 的 读 取 结 果
128 图 代 码 的 时 序 活 动 图 是 代 码 的 时 序 活 动... 然 而 时 序 活 动 完 全 按 着 步 骤 i 的 指 向 活 动 着, 如 T0~T3 的 时 候 ra 和 rb 持 续 为 即 时 式 Booth 乘 法 器 供 源 之 际, 有 给 足 加 工 时 间 ; 在 T4 的 时 候,rProduct 如 步 骤 i 所 愿 般 读 取 输 出 Result 结 果 而 言,TimeQuest 的 妄 想 中 的 delay monster 就 完 全 符 合 该 模 块 实 际 的 HDL 行 为 了 实 验 五 延 迟 怪 兽 受 死 吧! 图 部 分 与 ra,rb 和 rproduct 有 关 节 点 的 Setup 报 告 双 击 Report Top Failing Path 随 便 举 例 200 个 节 点 的 Setup 报 告, 在 此 我 们 依 然 看 见 一 片 满 江 红... 这 是 什 么 一 回 事? 我 们 不 是 按 照 理 论 给 予 ra,rb 和 rproduct 有 关 节 点 足 够 的 供 源 和 时 间 吗? 为 何 会 这 样? 原 因 很 简 单, 到 目 前 位 置 我 们 还 没 有 告 诉 TimeQuest 节 点 ra~rproduct 或 者 节 点 rb~rproduct 是 用 4 个 时 钟 工 作 不 过, 实 验 五 笔 者 不 像 使 用 set multicycle path 这 个 命 令 而 是 其 他 127
129 黑 金 动 力 社 区 让 我 们 回 忆 第 二 章 的 内 容, 我 们 知 道 TimeQuest 既 是 笨 蛋 又 是 勤 劳 的 数 学 工 具, 它 会 一 点 一 点 检 查 所 有 模 块 的 节 点, 然 而 TimeQuest 只 会 用 1 个 时 钟 的 情 况 去 检 查 节 点 (Set Multicycle Path 约 束 例 外 ) 为 此 HDL 行 为 的 给 足 时 钟 是 人 为, 如 果 不 使 用 类 似 set multicycle path 的 约 束 命 令, TimeQuest 是 不 晓 得 谋 对 节 点 用 N 个 时 钟 工 作, 可 是 实 验 五 笔 者 又 不 想 用 它 首 先, 让 我 们 再 一 次 观 察 图 右 边 的 Data Delay, 平 均 值 为 30ns, 而 delay monster 的 HDL 内 容 已 经 给 足 4 个 时 钟 的 供 源 和 空 时 间 虽 然 我 们 在 心 里 上 十 稳 九 拿 该 模 块 不 会 有 问 题, 不 过 汪 海 一 片 红 始 终 碍 眼 和 碍 事 因 此, 我 们 要 使 用 另 一 个 约 束 命 令, 亦 即 Set False Path 要 TimeQuest 无 视 相 关 的 节 点 分 析 Set False Path 的 用 法 很 简 单, 之 下 输 入 相 关 的 节 点, 无 视 操 作 就 会 被 执 行 图 调 出 Set False Path 界 面 先 从 Constraints 菜 单 中 调 出 Set False Path 界 面, 然 后 将 From 选 项 填 入 ra[0]~[7] 和 rb[0]~[7], 至 于 To 选 项 填 入 rproduct[0]~[15], 接 着 点 击 Run 即 可 set_false_path -from [get_cells {ra[0] ra[1] ra[2] ra[3] ra[4] ra[5] ra[6] ra[7] rb[0] rb[1] rb[2] rb[3] rb[4] rb[5] rb[6] rb[7]}] -to [get_cells {rproduct[0] rproduct[1] rproduct[2] rproduct[3] rproduct[4] rproduct[5] rproduct[6] rproduct[7] rproduct[8] rproduct[9] rproduct[10] rproduct[11] rproduct[12] rproduct[13] rproduct[15]}] 上 述 代 码 就 会 自 动 加 入 sdc 文 件 中, 然 后 双 击 Update Timing Netlist, 最 后 双 击 Report Top Failing Path 同 学 们 会 发 觉 到 TimeQuest 不 再 反 馈 任 何 时 序 的 违 规 信 息 Set False Path 约 束 命 令 式 一 个 不 可 理 喻 的 东 西, 它 会 要 求 TimeQuest 在 分 析 时 无 视 相 关 的 节 点... 同 时 Set False Path 也 是 一 个 危 险 的 约 束 命 令, 如 果 同 学 们 没 有 足 够 的 信 心, 千 万 不 要 随 意 使 用 经 历 许 久 人 与 怪 兽 的 战 斗 终 于 可 以 划 上 句 号, 为 了 解 决 延 迟 怪 事 的 暴 动 事 件, 无 论 遇 上
130 多 少 失 败, 身 为 勇 士 的 同 学 即 屹 立 不 倒, 无 数 次 掉 落 的 圣 剑 也 不 停 举 起... 如 此 坚 持 仅 为 了 我 们 背 后 的 家 园 还 有 家 人... 嘛... 开 个 玩 笑 而 已, 放 松 点 少 年 最 后 让 我 们 来 总 结 一 下 在 实 验 三 提 出 的 问 题, 即 是 : Quartus 的 编 译 器 有 没 有 足 够 的 智 能 保 证 任 何 节 点 都 合 格? 如 果 是 又 如 何 优 化? 如 果 不 是 又 怎 么 约 束? 用 什 么 约 束 命 令? 在 此 我 们 可 以 这 样 总 结... 事 实 上, 编 译 器 它 不 会 聪 明 到 可 以 自 动 优 化 延 迟 怪 兽 给 时 序 带 来 的 违 规, 因 此 我 们 需 要 约 束 相 关 的 节 点 用 到 的 命 令 有 Set Multicycle path, 该 功 能 宛 如 告 诉 TimeQuest 某 对 节 点 用 N 个 时 钟 工 作, 实 际 上 是 告 诉 TimeQuest 某 对 节 点 的 启 动 沿 或 者 锁 存 沿 的 触 发 行 为 有 所 更 改 虽 然 使 用 该 约 束 命 令 可 以 使 得 TimeQuest 在 分 析 上 足 以 解 决 问 题, 可 是 却 导 致 TimeQuest 的 妄 想 和 实 际 的 HDL 行 为 产 生 出 入 所 以 要 小 心 慎 用 此 外,Set False Path 是 不 可 理 喻 的 约 束 命 令, 它 会 要 求 TimeQuest 无 视 相 关 的 节 点 使 用 Set False Path 之 前, 最 好 确 认 自 己 是 否 有 足 够 的 理 论 自 己 的 做 法 是 对 的 如 果 实 验 五 的 delay monster 恰 恰 好 仅 用 2 个 时 钟 工 作, 使 用 该 命 令 反 而 会 弄 巧 成 拙 129
131 黑 金 动 力 社 区 总 结 : 这 一 章 我 们 讨 论 了 有 关 内 部 延 迟 因 数 的 种 种, 借 此 进 一 步 掌 握 TimeQuest 的 各 个 操 作 还 有 各 种 微 妙 的 特 性, 当 然, 重 点 部 分 还 是 约 束 命 令 的 了 解 上 结 束 之 前 让 我 们 简 要 的 回 顾 一 下 各 个 约 束 命 令 的 内 容 : derive_pll_clocks derive_clock_uncertainty 是 pll 专 用 的 约 束 命 令, 其 中 derive_pll_clocks 是 专 门 为 pll 打 造 的 懒 人 版 create clock 约 束 命 令 至 于 后 者 就 意 义 不 明 了... 好 像 是 和 制 作 工 艺 和 时 钟 抖 动 有 关 系, 嗯... 往 后 有 机 会 再 接 触 也 不 迟 set_multicycle_path 这 个 约 束 命 令 粗 略 点 就 是 告 诉 TimeQuest 某 对 节 点 用 N 个 时 钟 工 作, 实 际 上 它 是 告 诉 TimeQuest 某 对 节 点 的 启 动 沿 和 锁 存 沿 的 触 发 行 为 有 所 更 改 笔 者 想 定 读 者 一 定 会 对 reference clock 的 Start 选 项 感 到 好 奇, 因 为 在 实 验 中 笔 者 只 顾 着 用 End, 结 果 没 机 会 讲 解 嘛... 同 学 们 就 暂 时 忘 了 它 吧, 以 目 前 的 实 验 实 在 做 找 不 到 任 何 机 会, 如 果 同 学 们 有 兴 趣 可 以 自 行 查 看 官 方 的 手 册, 好 像 叫 做 multicycle path exception, 里 边 有 介 绍 原 理 和 用 法 笔 者 个 人 更 注 重 实 践, 往 后 有 机 会 再 做 打 算 set_false_path 这 个 无 赖 即 不 可 理 喻 的 约 束 命 令 基 本 上 没 什 么 好 说, 该 功 能 是 命 令 TimeQuest 无 视 某 个 节 点 嘛.. 只 要 用 得 好 它 还 是 大 家 的 好 朋 友, 相 反 的, 如 果 用 不 好 就 要 遭 殃 了 基 本 上 就 是 这 些 而 已, 同 学 们 可 能 会 为 笔 者 没 有 提 及 寄 存 器 相 关 的 延 迟 因 数 而 感 到 窝 囊, 对 吧? 这 个 嘛... 下 一 章 一 定 会 有 啦, 目 前 本 章 的 目 的 是 让 鸭 仔 适 水 和 作 热 身 而 已 学 习 应 该 慢 慢 来, 是 不 是 有 道 理 呢? 最 后 让 我 们 稍 微 反 思 一 下,TimeQuest 如 果 没 有 结 合 Verilog 一 起 探 讨 的 话, 基 本 上 TimeQuest 宛 如 硬 邦 邦 的 数 学 工 具 而 已 相 反, 一 旦 结 合 Verilog 各 种 特 质 来 探 讨, 意 外 的 我 们 会 发 现 许 多 有 趣 的 认 识 果 然 相 交 一 年, 完 成 整 合 篇 之 后 再 看 回 TimeQuest, 让 笔 者 有 全 新 的 认 识, 之 前 的 辛 劳 都 是 有 价 值 的 请 问 同 学 们 是 否 也 有 同 样 的 感 受 呢?
132 第 五 章 : 网 表 质 量 与 外 部 模 型 5.1 网 表 质 量 的 概 念 笔 者 在 第 二 章 稍 微 谈 过 网 表... 不 过 现 在 又 为 何 会 无 缘 无 故 提 及 它 呢? 笔 者 以 前 曾 以 为 TimeQuest 等 静 态 时 序 工 具 是 按 照 实 际 的 物 理 情 况 来 评 估 物 理 时 序, 不 过 事 实 却 不 是 如 此 即 使 静 态 时 序 工 具 再 怎 么 神, 身 为 数 学 工 具 的 它 只 能 模 拟 出 近 似 的 情 况 而 已, 其 中 一 定 留 有 余 量 同 样, 笔 者 也 在 第 四 章 不 停 重 复 默 认 网 表 下... 默 认 网 表 下... 难 道 读 者 不 觉 得 有 伏 笔 吗? 笔 者 不 是 在 卖 关 子, 因 为 根 据 笔 者 的 脚 步 而 言, 要 理 解 接 下 来 的 内 容, 必 须 对 TimeQuest 做 好 足 够 的 认 识 为 此, 笔 者 特 地 绕 了 一 个 大 圈, 为 了 就 是 让 同 学 们 做 好 准 备 TimeQuest 作 为 数 学 工 具 必 须 根 据 各 种 CASE 作 出 分 析,CASE 简 称 点 就 是 环 境 或 者 状 况, 然 而 TimeQuest 却 有 两 种 CASE, 其 一 是 Worst Case, 其 二 是 Best Case, 前 者 对 应 slow model, 后 者 对 应 fast model 表 5.1 Worst Case 和 Best Case 的 对 应 因 数 Case 模 型 环 境 温 度 性 能 限 制 Worst Case slow 极 端 低 温 / 高 温 高 Best Case fast 最 佳 室 温 低 如 表 5.1 所 示, 除 了 slow model 和 fast model 以 外,Worst Case 分 别 对 应 的 其 他 因 数 有, 极 端 环 境, 还 有 低 温 / 高 温 的 影 响 换 之 Best Case 对 应 有 最 佳 环 境 和 室 温 所 谓 Worst Case 是 指 极 端 的 环 境, 也 指 主 供 源 的 电 压 不 稳 定 以 外, 还 有 各 种 内 部 延 迟 因 数 都 推 向 极 端, 结 果 拖 累 整 个 硬 模 型 的 速 度 Fmax, 最 终 成 为 slow model, 如 此 反 思 于 是 越 坏 的 情 况, 衍 生 的 保 险 余 量 就 越 多, 因 此 性 能 限 制 也 很 大 所 谓 Best Case 是 指 最 佳 或 者 理 想 环 境, 也 指 不 仅 足 够 而 且 还 稳 定, 此 外 各 种 内 部 延 迟 因 数 越 近 似 实 际, 也 愈 小, 结 果 而 言 整 个 硬 模 型 的 速 度 Fmax 也 会 跟 着 提 高, 最 终 成 为 fast model 如 此 反 思, 越 是 理 想 的 环 境, 一 旦 遇 上 麻 烦 可 衍 生 的 保 险 余 量 也 有 限, 因 此 性 能 限 制 也 很 小 笔 者 这 样 一 讲, 可 能 会 让 同 学 们 一 时 之 间 不 知 所 措... 不 过 我 们 可 以 这 样 认 为 保 险 余 量 就 好 比 一 位 生 存 者, 常 常 会 思 考 最 坏 的 情 况, 假 设 情 况 A 换 言 之, 只 要 一 天 不 发 生 比 情 况 A 更 糟 的 事 情, 这 位 生 存 者 都 可 以 有 余 过 活 相 反 的, 那 些 乐 天 的 屁 民 们 已 经 习 惯 过 着 舒 适 的 生 活, 假 设 为 情 况 B 换 句 话 说, 只 要 稍 微 发 生 比 情 况 B 哪 怕 糟 一 点 点 的 事 情, 屁 民 们 就 会 被 吓 到 半 死 131
133 黑 金 动 力 社 区 TimeQuest 所 谓 的 默 认 CASE slow model 也 指 最 极 端 的 情 况, 结 果 而 言 Time Quest 就 像 为 世 界 末 日 作 好 准 备 的 生 存 者, 往 往 评 估 和 分 析 极 端 环 境 的 各 种 状 况 粗 略 一 点 说, 凡 是 通 过 slow model 分 析 的 硬 模 型,fast model 理 应 也 合 格 反 过 来 说, 凡 是 在 fast model 合 格 ( 屁 民 ) 的 硬 模 型, 不 一 定 通 过 slow model 的 分 析 继 续 深 入 之 前, 让 我 们 回 顾 一 下 什 么 是 post-fit 什 么 是 post-map 虽 然 官 方 的 手 册 上 有 定 义, 用 俗 话 说 的 话,post-fit 网 表 会 参 考 近 似 物 理 的 参 数 ( 优 化 之 后 ), 而 post-map 只 会 参 考 原 生 的 编 译 结 果 ( 优 化 之 前 ) 论 质 量 而 言,post-fit 比 起 post-map 更 适 合 所 谓 的 默 认 网 表, 是 指 post-fit model -slow, 也 是 双 击 Create Netlist 快 捷 选 项 会 产 生 的 结 果, 对 应 的 tcl 命 令 式 create_timing_netlist -model slow 结 果 而 言 TimeQuest 是 不 择 不 扣 的 生 存 主 义 者, 打 从 一 开 始 就 已 经 评 估 任 何 最 坏 的 情 况 当 然 读 者 也 可 以 回 忆 一 下 在 第 三 章 中 所 描 述 的 玩 具 与 金 钱 还 有 妈 妈 的 比 喻 这 个 章 节 的 重 点, 我 们 仅 要 了 解 各 种 case 对 内 部 延 迟 因 数 造 成 的 影 响, 其 中 也 包 括 寄 存 器 的 特 性, 如 tsu,tco 和 th 等 笔 者 继 续 以 实 验 三 的 delay_monster 为 例 子, 其 中 除 了 100Mhz 的 create clock 声 明 以 外, 一 切 约 束 命 令 通 通 都 拿 掉 图 默 认 网 表 worst case / slow model 首 先 我 们 先 示 范 默 认 网 表, 亦 即 worst case 或 者 slow model, 读 者 可 双 击 create timing netlist 选 项, 也 可 以 调 出 Create Timing Netlist 窗 口, 然 后 手 动 建 立 ( 如 图 所 示 ) 图 随 意 举 例 10 个 节 点 的 setup 报 告 让 后 随 意 列 出 10 个 节 点 的 setup 报 告, 目 前 该 时 序 违 规 与 否, 不 是 我 们 要 关 心 的 问 题 然 而 重 点 就 在 于 slack 和 Data Delay 值, 以 节 点 1 为 例 ns 和 ns
134 图 节 点 1 的 详 细 信 息 (Setup) 然 后 打 开 节 点 1 的 详 细 信 息, 在 此 观 测 clock path 2.813ns 还 有 utco 0.304ns 和 utsu 0.040ns 图 随 意 举 例 10 个 节 点 的 hold 报 告 再 来 随 意 举 例 10 个 节 点 的 hold 报 告, 以 节 点 1 为 例,slack 为 5.952ns, 而 Data Delay 为 6.279ns 图 节 点 1 的 详 细 信 息 (Hold) 再 来 展 开 节 点 1 的 详 细 信 息 和 观 察 uth 0.306ns 图 Fmax 结 果 接 着 双 击 Report Fmax Summary 调 出 Fmax 简 报, 结 果 如 图 所 示 26.75Mhz =================================================================== 133
135 黑 金 动 力 社 区 图 自 定 义 网 表 best case / fast model 在 此 让 我 们 建 立 best case 网 表, 亦 即 fast model 这 个 必 须 手 动 建 立, 如 图 所 示 图 随 意 举 例 10 个 节 点 的 setup 报 告 接 着 随 意 列 举 10 个 节 点 的 setup 报 告, 同 样... 此 时 时 序 违 规 与 否 都 不 是 重 点, 让 我 们 注 意 节 点 1 的 slack 1.194ns 还 有 Data Delay ns 图 节 点 1 的 详 细 信 息 (Setup) 再 来 展 开 节 点 1 的 详 细 信 息, 关 注 clock path 1.469ns,uTco 0.141ns 和 utsu 图 随 意 举 例 10 个 节 点 的 hold 报 告 同 样 随 意 举 例 10 个 节 点 的 hold 时 序 报 告, 关 注 节 点 1 的 slack 1.845ns
136 图 节 点 1 的 详 细 信 息 (Hold) 接 下 来 展 开 节 点 1 的 详 细 信 息, 关 注 uth 0.152ns 图 Fmax 结 果 最 后 取 得 Fmax 简 报 89.33Mhz =================================================================== 根 据 上 述 的 内 容, 笔 者 以 节 点 1 为 例 (Setup 和 Hold 各 不 同 ), 然 后 根 据 不 同 的 网 表 状 况, 再 取 各 种 参 数 做 出 表 5.1 表 5.1 节 点 ra[0]~rproduct[13] 革 命 剧 Worst Case 和 Best Case 的 相 关 参 数 比 较 ra[0]~rproduct[13] worst case/ slow model best case/ fast model Setup Slack ns ns Data Delay ns ns Clock Path 2.813ns 1.469ns utco 0.304ns 0.141ns utsu 0.040ns 0.032ns Hold Slack 5.952ns 1.845ns uth 0.306ns 0.152ns Fmax( 约 束 前 ) 26.75Mhz 89.33Mhz Fmax( 约 束 后 ) MHz MHz 实 际 上 表 5.1 不 用 看 都 知 道 那 是 一 面 倒 的 情 形, 亦 即 节 点 ra[0]~rproduct[13] 的 worst case 相 较 best case 之 下 都 呈 现 各 种 极 端 的 参 数 结 果 由 于 worst case 把 所 有 内 部 延 迟 因 数 都 推 向 极 端, 结 果 导 致 Fmax 的 速 度 下 降 ( 无 论 是 约 束 前 或 者 约 束 后 ) 不 过 表 5.1 还 有 一 个 特 殊 的 情 形 让 同 学 们 在 不 知 觉 中 产 生 疑 问... worst case 的 hold slack 不 应 该 比 best case 的 hold slack 更 小 才 对 吗?, 让 我 们 回 忆 一 下 用 屁 股 求 出 hold 余 量 的 公 式 : 135
137 黑 金 动 力 社 区 保 持 余 量 = 数 据 抵 达 时 间 - 数 据 获 取 时 间 Hold Slack = Data Arrival Time - Data Required Time 数 据 抵 达 时 间 Data Arrival Time = 启 动 沿 + Tclk1 + Tco + Tdata 数 据 获 取 时 间 Data Required Time = 锁 存 沿 + Tclk2 + Th = 理 想 保 持 关 系 值 + Tclk2 + Th Hold Slack 是 Data Arrival Time 相 减 Data Required Time 以 后 的 结 果, 其 中 最 为 关 键 的 是 Tdata(Data Delay), worst case 与 best case 相 比 之 下 worst case 的 Data Delay 还 有 大 过 best case 的 Data Delay 结 果 也 因 此 造 成 worst case 的 hold 余 量 大 于 best case 的 hold 余 量 =================================================================== 笔 者 曾 经 这 样 思 考 过 : 创 建 网 表 会 不 会 也 是 某 种 约 束 呢? 例 如 创 建 默 认 网 表 A,sdc 文 件 下 就 会 添 加 相 关 的 约 束, 然 后 编 译 器 会 依 照 这 个 约 束 命 令 来 创 建 网 表 A 的 硬 模 型 ; 如 果 是 网 表 B, 就 会 创 建 网 表 B 的 硬 模 型 等... 这 是 学 习 TimeQuest 的 思 路 陷 阱 事 实 上, 网 表 的 概 念 非 常 直 接... 首 先 把 TimeQuest 想 象 成 硬 模 型 的 模 拟 器, 我 们 可 以 假 设 best case 硬 模 型 是 最 接 近 物 理 硬 模 型, 不 过 相 较 实 际 的 硬 模 型 best case 的 硬 模 型 还 保 留 10~20% 的 余 量 假 设 物 理 硬 模 型 的 某 个 延 迟 值 是 10ns, 那 么 best case 硬 模 型 对 于 10ns 采 取 保 留 的 12ns 相 反 之 下 worst case 硬 模 型 是 最 保 险 的 硬 模 型, 比 起 best case 硬 模 型 worst case 硬 模 型 相 较 物 理 硬 模 型 有 80~90% 的 余 量 再 假 设 物 理 硬 模 型 的 某 个 延 迟 值 是 10ns, 那 么 worst case 硬 模 型 会 采 取 保 险 的 19ns 这 个 作 法 有 一 个 好 处... 就 算 best case 硬 模 型 遇 见 状 况, 如 果 不 超 过 10~20% 的 余 量 范 围, 结 果 还 是 健 康 相 反 对 于 worst case 硬 模 型 而 言, 余 量 范 围 比 起 best case 硬 模 型 还 要 更 大 举 例 某 个 状 况 是 发 生 35% 的 范 围, 那 么 best case 硬 模 型 就 会 出 现 问 题, 换 之 worst case 硬 模 型 还 是 稳 如 泰 山 让 我 们 继 续 思 考... 有 关 延 迟 怪 兽 实 验 的 重 点 就 是 即 时 式 Booth 乘 法 器 31ns 的 延 迟 压 力 是 不 是 实 值 呢?31ns 延 迟 压 力 是 worst case 硬 模 型 的 保 险 估 算, 最 接 近 是 实 值 是 best case 硬 模 型, 延 迟 压 力 大 约 是 10ns 左 右 即 时 式 Booth 乘 法 器 的 压 力 取 值 实 际 上 比 best case 硬 模 型 还 要 低, 不 过 具 体 的 数 值 是 多 少 呢? 这 点 我 们 就 不 知 道 了 实 验 六 的 delay_master 笔 者 以 worst case 硬 模 型 评 估 即 时 式 booth 乘 法 器 的 延 迟 压 力, 大 约 是 30ns 左 右, 然 后 供 源 和 加 工 时 间 都 给 予 40ns 的 总 体 而 言, 默 认 下 的 TimeQuest 都 是 采 取 保 险 措 施, 亦 即 默 认 下 网 表 是 slow model, 默
138 认 硬 模 型 是 worst case 不 过, 这 不 是 强 制 性 的... 同 学 们 还 有 各 种 选 项 自 由 选 择, 如 post-fit 和 post-map, 或 者 speed grade, 还 是 zero ic delay 等 不 过 根 据 一 般 使 用 习 惯, 有 时 候 需 要 比 worst case 更 极 端 的 环 境... 假 设 同 学 预 测 到 在 环 境 A 会 使 时 钟 频 率 更 动 10%, 除 了 选 择 worst case 硬 模 型 以 外, 同 学 还 可 能 不 放 心, 所 以 在 create clock( 声 明 主 时 钟 ) 的 时 候, 会 故 意 为 主 时 钟 留 下 10~20% 的 余 量... 如 100Mhz 的 频 率, 会 用 80~90Mhz 或 者 100~120 Mhz 的 频 率 分 别 测 试 worst case 硬 模 型 另 外 还 有 一 种 说 法 说,best case 网 表 setup 分 析 不 容 易 合 格,worst case 网 表 hold 分 析 不 容 易 合 格 结 果 会 分 别 用 best case 针 对 setup 分 析, 用 worst case 针 对 hold 分 析, 如 果 best case 下 setup 分 析 有 余 量 & worst case 下 hold 分 析 有 余 量, 那 么 这 个 模 块 就 是 没 问 题 此 外 也 有 这 样 的 说 法, 在 室 温 ( 常 温 ) 以 外 的 极 端 温 度 : 如 在 低 温 状 态, 所 有 资 源 会 有 所 迟 钝 ; 高 温 状 态 会 提 高 资 源 的 阻 值 所 以 worst case 有 时 候 也 用 来 测 试 模 块 在 某 种 恶 劣 的 温 度 下 是 否 能 正 常 工 作 嘛... 网 表 的 故 事 是 千 奇 百 怪 的, 对 于 普 通 的 使 用 而 言 : worst case 最 保 险 但 是 性 能 限 制 大 ;best case 保 险 有 限 但 是 性 能 限 制 小 说 白 一 点, 假 设 FPGA 的 最 高 频 率 是 300Mhz, 如 果 使 用 best case, 最 高 频 率 使 用 允 许 是 280Mhz 左 右 ; 如 果 使 用 worst case, 最 高 频 率 的 使 用 允 许 是 60Mhz 左 右 总 结 说 牛 排 到 底 要 几 成 熟 最 后 还 是 要 根 据 客 官 当 时 的 口 味, 笔 者 是 非 常 怕 死, 所 以 吃 牛 排 都 是 全 熟, 亦 即 worst case 最 适 合 笔 者... 结 果 同 学 又 如 何 呢? 最 后 补 上 不 相 关 的 话 题... 当 TimeQuest 为 某 个 设 计 建 立 网 表 ( 硬 模 型 ) 的 时 候, 而 这 个 网 表 只 是 分 析 对 象 却 没 有 环 境 因 数, 或 者 缺 少 分 析 环 境... 因 为 如 此, 我 们 需 要 透 过 各 种 约 束 命 令 为 分 析 对 象 制 造 刺 激, 以 致 达 到 接 近 的 现 实 的 环 境 因 数, 这 也 是 俗 称 的 网 表 约 束 这 个 环 境 因 数 就 是 所 谓 的 内 部 延 迟 因 数, 还 有 外 部 延 迟 因 数 内 部 延 迟 因 数 TimeQuest 可 以 自 动 晓 得, 反 之 外 部 延 迟 因 数 却 必 须 人 为 告 知 假 设 某 个 设 计 的 硬 模 型, 它 的 外 部 路 径 有 3ns 的 延 迟... 当 我 们 用 TimeQuest 这 个 硬 模 型 的 时 候, 我 们 有 必 要 将 3ns 延 迟 的 外 部 路 径 告 诉 TimeQuest, 好 让 它 可 以 分 析 3ns 的 延 迟 是 否 对 这 个 硬 模 型 的 时 序 作 出 违 规 137
139 黑 金 动 力 社 区 5.2 Fmax 评 估 值 fmax 是 什 么?Fmax 是 一 个 用 处 不 大 的 评 估 值, 亦 即 某 节 点 的 最 高 频 率 ( 也 可 以 理 解 成 是 组 合 逻 辑 的 数 量 ), 同 时 也 是 网 表 性 能 限 制 的 评 估 值 当 我 们 双 击 Report Fmax Summary,TimeQuest 会 将 某 个 节 点 的 Fmax 提 出 ; 如 果 某 个 设 计 有 时 序 违 规, TimeQuest 又 会 将 那 个 有 问 题 的 Fmax 提 出 Fmax 之 所 以 暧 昧 是 因 为 它 仅 评 估 某 个 节 点... 不, 更 贴 切 说 是 部 分 节 点 的 最 高 频 率 在 一 群 小 朋 友 之 中 有 几 位 是 特 别 调 皮, 结 果 我 们 却 不 能 说 所 有 小 朋 友 都 一 样 调 皮,Fmax 的 情 形 就 好 比 这 个 比 喻 在 前 面 我 们 了 解 过 worst case 是 某 个 极 端 的 状 况, 亦 即 余 量 范 围 的 保 留 很 大, 内 部 延 迟 压 力 的 保 险 取 值 也 随 之 很 高, 结 果 却 导 致 Fmax 的 评 估 降 低 换 句 话 说,best case 的 Fmax 评 估 比 起 worst case 有 更 好 的 表 现 ( 也 更 接 近 实 体 的 Fmax 评 估 ) 图 Fmax 评 估 模 型 fmax = 1/(<register to register delay> - <clock skew delay> + <micro setup delay> + <micro clock to output delay>) clock skew delay = <clock to destination register delay> - <clock to source register delay> = Tclk2 - Tclk1 图 是 Fmax 评 估 模 型 ( 基 本 上 也 是 基 于 TimeQuest 分 析 模 型 ) 而 Fmax 求 出 的 公 式 如 上 述 所 示, 包 含 :reg2reg delay 就 是 两 者 寄 存 器 之 间 的 总 和 延 迟, 亦 包 括 组 合 逻 辑 延 迟, 路 径 延 迟 等 ;clock skew delay, 中 文 叫 时 钟 差 也 是 Tclk2 相 减 Tclk1 的 结 果 ; micro setup delay 的 符 号 是 Tsu, 也 是 目 的 寄 存 器 最 小 的 建 立 时 间 ;micro clock to output delay 的 符 号 是 Tco, 也 是 源 寄 存 器 输 出 最 小 延 迟 时 间 从 一 个 简 单 的 公 式 中 我 们 可 以 理 解 到,Fmax 事 实 上 是 单 个 节 点 的 最 高 频 率 评 估 值, 其 中 最 左 右 Fmax 的 凶 手 就 是 reg2reg delay... 粗 略 点 说,Fmax 高 低 是 否, 是 由 寄 存 器 之 间 夹 着 的 组 合 逻 辑 的 延 迟 压 力 来 决 定 Fmax 之 所 以 暧 昧 是 因 为 TimeQuest 每 当 给 出 Fmax, 实 际 上 是 针 对 最 差 劲 节 点 的 评 估 值 换 句 话 说, 如 果 某 个 设 计 出 现 时 序 违 规,TimeQuest 就 会 给 出 那 个 最 差 劲 节 点 的 Fmax, 而 不 是 其 他... 那 怕 其 它 节 点 也 是 违 规, 只 要 不 是 最 差 劲 就 不 会 被 TimeQuest 提 名
140 如 何 提 升 Fmax 算 是 学 习 TimeQuest 的 迷 信 吧... 有 许 多 同 学 认 为 只 要 Fmax 比 系 统 时 钟 ( 主 时 钟 ) 的 频 率 还 要 高 时 序 越 Okay 话 说 这 种 迷 信 也 不 无 道 理, 因 为 Fmax 是 针 对 最 差 劲 节 点... 换 言 之, 如 果 该 最 差 劲 节 点 得 到 好 成 绩, 那 些 不 是 最 差 劲 的 节 点 的 成 绩 当 然 比 最 差 劲 节 点 好 这 回 就 让 笔 者 暂 时 入 乡 随 俗 和 大 伙 一 起 迷 信, 一 同 寻 找 提 升 Fmax 的 升 仙 之 路 Fmax 另 一 种 既 是 组 合 逻 辑 的 数 量, 如 何 减 少 组 合 逻 辑 的 数 量, 直 接 上 与 HDL 的 建 模 有 十 足 的 关 系, 不 过 我 们 先 抛 开 HDL 不 说... 如 此 一 来, 网 表 的 质 量 就 是 下 一 个 因 数, 同 样 我 们 也 抛 开 网 表 不 说... 这 个 抛 开, 那 个 抛 开, 余 下 还 有 什 么 因 素 可 以 影 响 Fmax 呢? 啊... 就 只 剩 下 编 译 器 了 我 们 知 道 软 模 型 要 变 成 硬 模 型 就 需 要 经 过 编 译 器 的 综 合... 话 是 那 么 说, 不 过 我 们 又 要 如 何 设 置 编 译 器 呢? 回 去 Quartus,Assignment 菜 单 进 入 Setting : 图 Physical Synthesis Optimizations 优 化 选 项 如 图 所 示, 我 们 可 以 打 开 相 关 的 选 项 如 Perform register retiming;effort Level - Extra;Perform register duplication 图 Filter Settings 优 化 选 项 或 者 进 入 Filter Setting, 打 开 More Setttings, 然 后 将 Router Effort Multiplier 设 置 3.0 还 有 Router Timing Optimization level 设 置 Maximum 基 本 上 设 置 上 述 优 化 选 项 以 后, Fmax 可 以 提 高 10~15%, 不 过 要 增 加 编 译 的 时 间 ( 至 于 这 些 优 化 选 项 有 什 么 具 体 的 意 139
141 黑 金 动 力 社 区 义? 请 高 抬 贵 手 放 过 笔 者, 自 己 回 去 翻 翻 Quartus 手 册 就 可 以 知 道 了 ) 好 了, 让 我 们 把 主 题 切 回 Verilog... 虽 然 说 减 少 组 合 逻 辑 就 等 于 提 升 Fmax, 不 过 在 建 模 的 时 候, 使 用 组 合 逻 辑 是 不 可 避 免 的, 而 且 组 合 逻 辑 的 使 用 数 量 我 们 也 是 模 糊 举 个 例 子 来 说 : if( C1 == 10 ) begin... end 当 我 们 声 明 if, 不 知 使 用 了 N 个 组 合 逻 辑... 然 后 声 明 == 有 不 知 道 使 用 了 N 个 组 合 逻 辑 说 实 在, 如 果 不 使 用 if 或 者 == 等 这 些 关 键 字 HDL 就 不 是 HDL 了 既 然 如 此... HDL 与 Fmax 之 间 还 存 在 什 么 优 化 空 间 呢? 我 们 又 该 如 何 下 手 呢? 同 学 们 还 记 得 整 合 篇 里 出 现 过 的 操 作 模 式 吗? 事 实 上, 我 们 可 以 从 操 作 模 式 上 下 手, 不 过 这 话 又 如 何 说 呢? 图 笔 者 所 知 的 各 种 操 作 模 式 HDL 有 并 行 操 作 的 本 质, 并 行 操 作 自 然 而 然 也 是 HDL 的 默 认 操 作, 可 是 这 种 默 认 操 作 就 像 没 有 容 器 的 水 源, 不 好 控 制 结 果 笔 者 就 自 定 属 于 自 己 的 义 默 认 操 作, 亦 即 仿 顺 序 操 作 了... 并 行 操 作 如 果 要 模 仿 顺 序 操 作, 根 本 上 就 要 付 出 最 基 本 数 量 的 组 合 逻 辑, 建 立 可 以 支 持 顺 序 操 作 的 结 构 据 笔 者 所 知, 仿 顺 序 操 作 可 以 转 换 成 为 其 他 操 作 模 式... 如 循 环 操 作, 它 本 质 上 还 是 顺 序 性 的 操 作 模 式, 不 过 它 重 复 利 用 同 一 个 资 源, 结 果 而 言 会 比 方 顺 序 操 作 少 用 一 点 资 源 ; 即 时 操 作 就 不 用 说 了, 本 身 就 是 一 个 大 组 合 逻 辑, 也 是 Fmax 最 大 的 敌 人 ; 至 于 流 水 操 作 是 最 接 近 并 行 操 作 的 操 作 模 式, 它 不 像 仿 顺 序 操 作 那 样 用 而 外 的 资 源 建 立 支 持 顺 序 的 结 构, 结 果 而 言 它 拥 有 的 Fmax 比 其 它 操 作 模 式 高
142 图 即 时 操 作 如 果 不 苟 其 他 小 节, 让 笔 者 举 个 简 单 的 例 子, 如 图 所 示, 夹 在 两 个 寄 存 器 之 间 是 即 时 式 Booth 乘 法 器 换 言 之 两 个 寄 存 器 之 前 存 有 一 个 40ns 延 迟 压 力 的 组 合 逻 辑, 不 过 过 大 的 延 迟 压 力 会 降 低 Fmax, 因 此 我 们 必 须 更 改 Booth 乘 法 器 的 操 作 模 式, 其 中 流 水 操 作 是 最 为 理 想 图 流 水 操 作 同 样 继 续 不 苟 其 他 小 节 的 话... 笔 者 将 即 时 式 Booth 乘 法 器 随 便 分 尸 成 8 个 部 分, 因 此 40ns 的 延 迟 压 力 就 会 被 品 均 化 为 5ns, 延 迟 压 力 的 降 低 随 之 也 会 提 升 Fmax 上 述 只 是 粗 略 的 例 子 而 已, 虽 说 流 水 操 作 在 Fmax 的 表 现 上 拥 有 最 好 的 成 绩, 不 过 流 水 操 作 不 是 什 么 场 合 也 适 合, 如 步 骤 性 强 的 操 作 它 就 显 得 英 雄 无 用 武 之 地 了 HDL 除 了 操 作 模 式 以 外, 还 有 HDL 的 使 用 习 惯... 如 : 嵌 套 If 的 层 次 又 或 者 <= 和 = 的 使 用, 让 笔 者 举 个 简 单 的 例 子 if( C1 == 1 ) // 嵌 套 if if( C1 == 2 ) if(c1 == 3) begin ra = 1 + Z; rb <= ra; end // 应 用 即 时 事 件 嵌 套 if 按 原 理 来 说 会 建 立 更 深 的 逻 辑 层 次... 虽 然 这 样 的 做 法 没 有 错, 不 过 从 代 码 的 解 读 来 讲 是 非 常 不 推 荐 应 用 即 时 事 件 是 笔 者 的 坏 习 惯, 好 处 上 可 以 偷 吃 时 钟, 坏 处 上 增 加 该 节 点 的 延 迟 压 力 总 结 来 说... HDL 如 何 优 化 Fmax 归 根 就 底 还 是 需 要 根 据 当 时 的 情 况 而 定, 所 以 是 没 有 绝 对 的 规 则 好 了, 有 关 Fmax 的 故 事 就 讲 到 这 里 吧... 同 学 们 好 好 记 住,Fmax 不 过 是 一 个 用 处 不 大 的 评 估 值 而 已, 虽 说 Fmax 越 高 越 好, 不 过 不 是 每 个 设 计 都 需 要 那 么 高 的 Fmax 此 外 Fmax 也 是 性 能 限 制 的 另 一 种 评 估 值 141
143 黑 金 动 力 社 区 5.3 外 部 模 型 1 如 果 笔 者 说 : 大 部 分 的 约 束 命 令 都 是 为 外 部 延 迟 因 数 而 存 在..., 同 学 们 又 相 信 吗? 事 实 上, 这 句 话 一 点 也 不 夸 张... 在 第 三 章 中 笔 者 曾 解 释 说, 外 部 和 内 部 之 间 的 区 别 就 是 TimeQuest 知 道 与 不 知 道, 自 动 与 手 动 直 接 点 说, 内 部 各 种 延 迟 因 数 就 好 比 TimeQuest 身 上 的 一 块 肉, 它 当 然 知 道 这 块 肉 是 什 么 样 子, 既 然 它 知 道 这 块 肉 是 什 么 样 子,TimeQuest 自 然 会 晓 得 这 块 肉 的 相 关 信 息 这 就 是 所 谓 的 知 道 和 自 动 外 部 延 迟 因 数 就 好 比 别 人 身 上 的 一 块 肉,TimeQuest 自 然 而 然 不 知 道 这 块 肉 的 具 体 形 状, 结 果 那 个 人 就 无 比 告 诉 TimeQuest 自 己 身 上 的 那 块 肉 是 在 哪 里, 是 什 么 形 状 等 相 关 信 息 者 就 是 所 谓 的 不 知 道 与 手 动 因 此 如 此,TimeQuest 有 大 部 分 的 约 束 命 令 就 是 用 来 告 诉 TimeQuest 相 关 的 外 部 信 息 在 此 之 前, 先 让 我 们 回 忆 一 下 之 前 学 过 的 内 容... TimeQuest 事 实 上 只 会 在 模 型 里 打 滚 的 猪 头, 亦 即 只 要 它 离 开 模 型, 它 就 不 晓 得 如 何 打 滚 了, 这 个 模 型 就 是 我 们 熟 悉 的 TimeQuest 模 型 所 以 说,TimeQuest 能 不 能 分 析 外 边 的 时 序 状 况 之 前,TimeQuest 模 型 能 不 能 山 寨? 如 何 山 寨? 才 是 头 号 任 务 图 节 点 概 念 的 TimeQuest 模 型 图 是 最 没 有 个 性 的 TimeQuest 模 型... 换 句 话 说, 节 点 模 型 是 概 念 上 的 TimeQuest 模 型, 不 过 除 了 时 钟 固 定 以 外, 节 点 1, 节 点 2 和 延 迟 都 会 随 着 山 寨 的 目 标 不 同 也 跟 着 改 变 图 内 部 的 TimeQuest 模 型 图 是 大 伙 再 熟 悉 不 过 的 内 部 TimeQuest 模 型, 同 时 间 也 是 默 认 下 的 TimeQuest 模 型, 亦 即 除 了 时 钟 信 号 不 变 以 外, 就 是 两 个 寄 存 器 夹 着 一 个 组 合 逻 辑 根 据 FPGA 的 基
144 本 资 源 而 言, 除 了 寄 存 器 以 外 的 一 切, 如 乘 法 器,PLL 等 都 可 以 看 成 组 合 逻 辑 图 外 部 的 TimeQuest 模 型 图 是 外 部 的 TimeQuest 模 型 ( 简 称 外 部 模 型 ) 也 就 是 接 下 来 我 们 要 学 习 的 内 容 事 实 上 外 部 模 型 是 最 麻 烦, 也 是 上 镜 率 最 低 的 TimeQuest 模 型 它 之 所 以 麻 烦 是 因 为 它 有 fpga2ic 或 者 ic2fpga 之 分,fpga2ic 也 是 fpga 输 出 致 ic, 又 说 ic 读 入 fpga; 换 之 ic2fpga 是 ic 输 出 致 ic, 又 说 fpga 读 入 ic 至 于 外 部 延 迟 有 第 三 章 所 说 的 种 种 之 所 以 说 外 部 模 型 上 镜 率 最 低 是 因 为 外 部 模 型 的 山 寨 成 功 率 是 非 常 低, 除 了 特 定 的 ic 芯 片 如 sdram 或 者 高 速 dac/adc 等 以 外, 外 部 模 型 几 乎 不 能 成 立 话 虽 这 么 说, 不 过 大 部 分 约 束 命 令 却 因 它 而 生, 可 见 它 在 学 习 中 有 多 重 的 分 量 丑 话 说 在 前 头, 在 后 来 的 实 验 里, 笔 者 也 只 能 用 sdram 作 为 学 习 对 象, 那 些 不 熟 悉 的 同 学 应 该 好 好 补 补 一 下 与 sdram 有 关 的 知 识... 老 王 卖 瓜 一 定 会 自 卖 自 夸, 笔 者 建 议 整 合 篇 的 第 三 章, 嘻 嘻 那 么, 让 我 们 开 始 吧 =================================================================== 笔 者 在 前 面 说 过, 外 部 模 型 和 内 部 模 型 之 间 的 区 分 就 在 于 知 道 与 不 知 道, 自 动 与 手 动 至 于 是 什 么 样 的 不 知 道 的 外 部 因 数, 必 须 通 过 手 动 告 诉 TimeQuest 呢? 图 各 种 需 要 告 诉 TimeQuest 的 延 迟 因 数 基 本 上 要 告 诉 TimeQuest 的 外 部 延 迟 因 数 不 算 多, 在 此 有 可 以 划 分 2 个 情 况 : 143
145 黑 金 动 力 社 区 fpga2ic: fpga2ext 是 fpga 致 ic 信 号 的 走 线 延 迟 ; clk2fpga 是 时 钟 信 号 致 fpga 的 走 线 延 迟 ; clk2ext 是 时 钟 信 号 致 fpga 的 走 线 延 迟 ; Tsu/Th 外 部 器 件 的 寄 存 器 特 性 ; (Tsu 信 号 建 立 时 间 ;Th 信 号 保 持 时 间 ) ic2fpga: ext2fpga 是 ic 致 fpga 信 号 的 走 线 延 迟 ; clk2fpga 是 时 钟 信 号 致 fpga 的 走 线 延 迟 ; clk2ext 是 时 钟 信 号 致 fpga 的 走 线 延 迟 ; Tco/minTco 外 部 器 件 的 寄 存 器 特 性 ; (Tco 信 号 输 出 时 间 ;mintco 最 小 信 号 输 出 时 间 ) 图 ( 左 )fpga2ic 简 单 例 子 ( 右 ) 理 想 时 序 图 假 设 有 一 个 简 单 的 fpga2ic 例 子, 如 的 左 图 所 示 fpga 向 ic 发 送 一 个 时 钟 周 期 的 D[0], 如 的 右 图 所 示, 此 时 时 序 图 是 理 想 状 态 图 建 立 时 间 与 建 立 关 系 的 等 价 图 图 左 边 是 信 号 D[0] 有 2ns 的 延 迟, 随 之 导 致 Data 向 右 移 动 2ns, 最 后 Data 的 建 立 时 间 剩 下 8ns 图 右 边 是 等 价 图, 这 个 等 价 图 基 本 上 是 无 视 Data 换 句 话 说,2ns
146 的 延 迟, 让 启 动 沿 向 右 移 动 2ns, 结 果 使 得 建 立 关 系 成 为 8ns 图 有 一 个 重 点, 亦 即 左 图 是 数 据 与 时 钟 相 互 作 用, 取 得 数 据 的 建 立 时 间 ; 相 反, 右 图 里 的 时 钟 和 数 据 相 互 作 用 不 大, 而 是 用 启 动 沿 和 锁 存 沿 取 建 立 关 系 图 保 持 时 间 与 保 持 关 系 的 等 价 图 如 果 建 立 时 间 和 建 立 关 系 有 等 价 图, 同 样 保 持 时 间 与 保 持 关 系 也 有 等 价 图, 如 所 示 左 图 是 D[0] 受 2ns 延 迟, 接 着 数 据 向 右 推 向 2ns, 最 后 取 得 2ns 的 保 持 时 间 换 之, 右 图 是 建 立 时 间 的 等 价 图, 亦 即 2ns 延 迟 影 响 下 一 个 启 动 沿 向 右 移 动 2ns, 结 果 导 致 建 立 关 系 取 得 -2ns 建 立 时 间 或 者 保 持 时 间 是 分 析 一 般 时 序 图 时 用 来 评 价 数 据 的 有 效 性, 换 之 建 立 关 系 和 保 持 关 系 是 TimeQuest 应 用 在 模 型 或 者 公 式 的 参 考 值 不 过 不 管 怎 么 样, 理 想 时 序... 更 贴 切 说 是 在 理 想 状 态 下, 建 立 时 间 或 者 建 立 关 系 相 等 于 时 钟 周 期, 保 持 时 间 或 者 保 持 关 系 相 当 于 零 值 在 此, 我 们 先 理 解 这 些, 接 着 再 继 续 往 后 看... 图 ext_clk 右 移, 建 立 时 间 与 建 立 关 系 的 等 价 图 除 了 数 据 信 号 会 受 延 迟 影 响 以 外, 同 样 时 钟 信 号 也 会 受 延 迟 影 响, 图 是 ext_clk 信 号 受 2ns 延 迟 的 结 果... 左 图 中,ext_clk 受 延 迟 影 响 而 向 右 移 动 2ns, 结 果 建 立 时 间 为 10ns; 换 之, 右 图 是 建 立 关 系 的 等 价 图, 亦 即 由 于 ext_clk 受 2ns 延 迟 的 影 响, 锁 存 沿 也 从 原 本 10ns 的 位 置, 移 至 12ns, 结 果 造 成 建 立 关 系 为 10ns 145
147 黑 金 动 力 社 区 这 种 看 法 是 不 伤 大 雅 的 碎 事, 不 过 对 于 TimeQuest 而 言, 尤 其 是 计 算 上... 我 们 知 道 TimeQuest 是 利 用 Setup Relationship( 建 立 关 系 ) 与 Hold Relationship( 保 持 关 系 ) 作 为 计 算 的 参 考 和 补 助 ( 或 者 简 化 ), 单 是 数 据 信 号 跑 来 跑 去 TimeQuest 已 经 够 烦 了, 如 果 时 钟 再 参 一 脚 也 跑 来 跑 去 的 话, 结 果 会 造 成 TimeQuest 会 抓 狂 的, 为 此... =================================================================== 师 弟 : 我 说, 师 兄 呀... TimeQuest 在 计 算 的 时 候, 有 没 有 利 用 手 段, 不 让 时 钟 跑 来 跑 来 去, 而 只 让 数 据 跑 来 跑 去? 师 兄 : 什 么 跑 来 跑 去? 你 的 意 思 是 不 是 说 让 时 钟 信 号 的 延 迟 变 化 影 响 在 数 据 身 上, 亦 即 TimeQuest 计 算 时, 时 钟 信 号 位 置 基 本 不 变, 不 过 时 钟 信 号 受 延 迟 影 响 的 结 果 直 接 叠 加 在 数 据 信 号 身 上? 师 弟 : 真 不 愧 是 我 的 偶 像, 那 么 快 就 悟 出 本 意... 师 兄 : 少 拍 马 屁 了... 不 过,TimeQuest 确 实 有 用 手 段! 师 弟 : 手 段? 什 么 样 的 手 段? 我 很 好 奇! ( 师 弟 的 眼 睛 睁 得 大 大 的... ) 师 兄 : 在 Fmax 的 章 节 中, 有 没 有 了 解 过 Clock Skew? 师 弟 : 有 是 有... clock skew 就 是 目 的 寄 存 器 clk 相 减 源 寄 存 器 clk 的 时 钟 差, 对 否? 师 兄 : 正 解! 师 弟 : 不 过, 师 兄 啊... 我 虽 然 知 道 clock skew 的 定 义 而 已, 但 不 晓 得 实 际 用 途 却 师 兄 :fmax 与 clock skew 放 在 一 起 谈 的 确 意 义 不 大, 毕 竟 影 响 fmax 的 凶 手 还 是 组 合 逻 辑 的 延 迟 压 力 师 弟 : 那 么,clock skew 的 实 际 用 途 是 甚 麽? 师 兄 : 嘛, 别 急 师 弟, 让 我 们 看 akuei2 如 何 解 释... ( 师 兄 话 玩 用 手 指 着 电 脑 屏 幕... ) =================================================================== clock skew 的 定 义 正 如 师 弟 所 言 的 寄 存 器 clk 相 减 源 寄 存 器 clk 的 时 钟 差, 为 方 便 笔 者 就 称 呼 时 钟 差, 然 而 clock skew 的 公 式 如 下 所 示 clock skew 结 果 最 终 会 直 接 作 用 在 数 据 的 延 迟 上 clock skew = < destination reg clock delay > - < source reg clock delay > 时 钟 差 = < 源 寄 存 器 时 钟 源 延 迟 > - < 目 的 寄 存 器 时 钟 源 延 迟 > 对 fpga2ic 的 外 模 型 而 言,fpga_clk 是 源 寄 存 器 时 钟 然 而 ext_clk 是 目 的 寄 存 器 时 钟 从 图 中 我 们 可 以 知 道 fpga_clk 的 延 迟 是 0ns, 而 ext_clk 的 延 迟 是 2ns,clock skew 取 值 自 然 是 2ns clock skew = < destination reg clock delay > - < source reg clock delay > clock skew = <ext_clk delay> - < fpga_clk delay> = (2-0)ns
148 = 2ns data delay data delay' = 2ns = <data delay> - <clock skew> = 2ns - 2ns = 0ns data delay 数 据 延 迟 data delay' 时 钟 差 作 用 后 的 数 据 延 迟 图 clock skew, 建 立 时 间 与 建 立 关 系 的 等 价 图 图 是 图 受 clock skew 作 用 以 后, 建 立 时 间 与 建 立 关 系 的 等 价 图 从 中 我 们 可 以 知 道 fpga_clk 还 有 ext_clk 不 再 跑 来 跑 去, 换 之 原 本 向 右 移 动 2ns 的 D[0], 受 时 钟 差 2ns 作 用 以 后 的 位 置 是 0ns 结 果 造 成 建 立 时 间 为 10ns, 至 于 右 图 的 启 动 沿 也 受 到 时 钟 差 的 作 用, 从 原 本 的 2ns 返 回 0ns, 最 终 建 立 关 系 取 得 10ns 图 的 建 立 时 间 与 建 立 关 系 结 果, 基 本 上 和 图 的 建 立 时 间 与 建 立 关 系 一 模 一 样 这 下 clock skew 真 的 神 了... 欸, 笔 者!clock skew 真 的 那 么 神 吗? 还 是 你 老 子 在 故 弄 玄 虚? 爷 爷 我 是 不 骗 人 的, 不 信 吗? 好, 让 我 们 再 实 验 看 看.. 图 fpga_clk 与 ext_clk 右 移, 建 立 时 间 与 建 立 关 系 的 等 价 图 147
149 黑 金 动 力 社 区 图 左 图 中 的 fpga_clk 延 迟 1ns;ext_clk 延 迟 2ns;D[0] 的 延 迟 还 是 之 间 的 2ns 结 果 而 言,Data 的 建 立 时 间 是 9ns 然 而 右 图 中, 启 动 沿 不 仅 受 D[0] 的 2ns 延 迟, 也 受 fpga_clk 的 1ns 延 迟 影 响, 结 果 启 动 沿 从 原 本 的 0ns 变 成 3ns 不 过, 锁 存 沿 本 身 也 受 ext_clk 的 2ns 延 迟 影 响, 最 终 取 得 的 建 立 关 系 是 9ns 然 后 让 我 们 来 计 算 一 下 clock skew 与 data delay' clock skew = < destination reg clock delay > - < source reg clock delay > clock skew = <ext_clk delay> - < fpga_clk delay> = (2-1)ns = 1ns data delay data delay' = 2ns = <data delay> - <clock skew> = 2ns - 1ns = 1ns 图 clock skew, 建 立 时 间 与 建 立 关 系 的 等 价 图 图 是 图 受 时 钟 差 作 用 下 的 结 果, 左 图 中 的 Data 从 原 本 的 2ns 延 迟, 由 于 受 到 时 钟 差 影 响, 结 果 延 迟 变 成 1ns, 最 终 建 立 时 间 取 得 9ns 换 之, 右 图 中 的 启 动 沿 原 本 位 置 是 2ns, 不 过 受 到 时 钟 差 的 影 响, 结 果 退 回 1ns, 建 立 关 系 从 而 得 到 9ns 好 了, 让 我 们 在 一 次 比 较 图 和 图 的 建 立 时 间 与 建 立 关 系, 答 案 是 不 是 一 样 呢? 这 回 信 服 了 吧, 哇 咔 咔 咔! 哇 咔 咔 咔! 同 学 们 现 在 还 不 能 放 心, 目 前 我 们 只 是 了 解 到 clock skew 如 何 影 响 数 据 的 延 迟, 从 而 使 得 图 是 图 的 建 立 时 间 和 建 立 关 系 取 得 同 样 结 果... 如 果 换 个 角 度 来 想 clock skew 作 用 现 象 也 是 不 是 会 发 生 在 保 持 时 间 与 保 持 关 系 的 身 上 呢? 本 当 に 興 味 深 い
150 图 ext_clk 右 移, 保 持 时 间 与 保 持 关 系 的 等 价 图 图 左 图 是 ext_clk 同 D[0] 延 迟 2ns, 结 果 造 成 保 持 时 间 为 0ns 然 而 右 图 中 的 下 一 个 时 间 沿 虽 然 受 到 2ns 的 延 迟, 从 原 本 的 10ns 变 成 12ns, 不 过 由 于 ext_clk 也 有 2ns 的 延 迟, 保 持 关 系 最 后 取 得 0ns 接 下 来, 让 我 们 计 算 一 下 时 间 差 和 受 作 用 以 后 的 data delay: clock skew = < destination reg clock delay > - < source reg clock delay > clock skew = <ext_clk delay> - < fpga_clk delay> = (2-0)ns = 2ns data delay data delay' = 2ns = <data delay> - <clock skew> = 2ns - 2ns = 0ns 图 clock skew, 保 持 时 间 与 保 持 关 系 的 等 价 图 图 与 图 的 保 持 时 间 和 保 持 关 系 对 于 之 下, 同 样 的 答 案, 同 样 的 结 果, 不 同 的 只 是 发 生 经 过 图 的 左 图, 数 据 原 本 受 2ns 的 延 迟 以 后 应 该 在 2ns 的 位 置, 可 是 被 2ns 的 时 钟 差 绊 了 一 道 以 后 变 回 到 0ns 的 位 置, 从 而 取 得 0ns 的 保 持 时 间 换 之, 右 图 中 的 下 一 个 启 动 沿 原 本 受 2ns 的 延 迟 以 后, 位 置 应 该 是 12ns 才 是, 可 是 不 小 新 绊 到 149
151 黑 金 动 力 社 区 2ns 的 时 钟 差 便 跌 回 10ns 的 位 置, 结 果 页 造 成 0ns 的 保 持 关 系 图 fpga_clk 和 ext_clk 右 移, 保 持 时 间 与 保 持 关 系 的 等 价 图 图 左 图 中 由 于 fpga_clk 受 延 迟 1ns,ext_clk 受 延 迟 2ns, 结 果 造 成 保 持 时 间 为 1ns 换 之, 由 图 中 的 下 一 个 启 动 沿 由 于 受 到 fpga_clk 的 延 迟, 再 加 上 D[0] 的 延 迟, 最 终 停 留 在 13ns 的 位 置, 不 过 锁 存 沿 也 受 到 ext_clk 延 迟 2ns 的 影 响, 从 而 保 持 关 系 成 为 -1ns 还 是 先 计 算 时 钟 差 和 受 作 用 以 后 的 data_delay'... clock skew = < destination reg clock delay > - < source reg clock delay > clock skew = <ext_clk delay> - < fpga_clk delay> = (2-1)ns = 1ns data delay data delay' = 2ns = <data delay> - <clock skew> = 2ns - 1ns = 1ns 图 clock skew, 保 持 时 间 与 保 持 关 系 的 等 价 图 图 与 图 相 较 之 下, 同 样 的 保 持 时 间, 同 样 的 保 持 关 系, 不 同 的 只 是 发 生 经 过... 左 图 中 的 D[0] 受 2ns 的 延 迟, 原 先 位 置 应 该 在 2ns 才 对, 不 过 由 于 受 到 时 间 差 1ns
152 的 作 用, 结 果 退 回 到 1ns 的 地 方, 最 终 取 得 1ns 的 保 持 时 间 换 之, 右 图 的 下 一 个 启 动 沿, 原 本 受 2ns 的 延 迟, 位 置 应 该 在 12ns 才 是, 不 过 它 不 小 心 撞 到 1ns 的 时 间 差, 就 这 样 跌 在 11ns 的 位 置, 最 后 也 不 小 心 取 得 -1ns 的 保 持 关 系 嘻 嘻, 经 过 那 么 多 实 验... 同 学 们 也 该 相 信 笔 者 不 在 故 弄 玄 虚 吧!? 笔 者 想 必 许 多 同 学 一 定 很 好 奇, 这 章 节 我 们 不 是 应 该 在 谈 有 关 外 部 模 型 和 外 部 延 迟 有 关 的 种 种 吗? 为 什 么 无 缘 无 故 又 扯 上 那 么 多 稀 奇 古 怪 的 内 容? 嘛... 别 着 急, 这 些 都 是 最 基 本 知 识, 习 得 它 以 后 同 学 们 就 可 以 飞 天 遁 地 了 151
153 黑 金 动 力 社 区 5.4 外 部 模 型 2 图 ic2fpga(ext2fpga) 的 外 部 模 型 在 章 节 5.3 的 时 候, 我 们 已 经 谈 过 fpga2ic 的 外 部 模 型, 还 有 建 立 时 间, 建 立 关 系, 保 持 时 间, 保 持 关 系, 或 者 clock skew 作 用 等 内 容 然 而 这 章 节 将 要 讨 论 的 是 ic2fpga 外 部 模 型, 至 于 内 容 基 本 上 与 fpga2ic 大 同 小 异 而 已,fpga2ic 与 ic2pfga 之 间 的 差 别 就 在 fpga 与 ic 的 角 色 扮 演 换 了 位 置 而 已 :fpga2ic 是 fpga 输 出 数 据 ic 读 ;ic2fpga 是 ic 输 出 数 据 fpga 读 图 ext_clk 和 fpga_clk 右 移, 建 立 时 间 与 建 立 关 系 的 等 价 图 图 是 不 是 很 眼 熟? 那 当 然, 笔 者 只 是 替 图 换 张 皮 而 已, 不 过 习 惯 上 还 是 随 便 解 释 一 下 左 图 中 的 ext_clk 受 1ns 延 迟, 而 fpga_clk 受 2ns 延 迟, 再 加 上 D[0] 的 2ns 延 迟, 最 终 导 致 建 立 时 间 为 9ns 换 之 右 图 中 的 启 动 沿, 受 D[0] 延 迟 2ns 再 加 上 ext_clk 延 迟 1ns 的 影 响, 结 果 位 于 3ns... 不 过 fpga_clk 也 受 2ns 的 延 迟, 最 后 建 立 关 系 取 得 9ns 的 成 绩 clock skew = < destination reg clock delay > - < source reg clock delay > clock skew = < fpga_clk delay> - <ext_clk delay> = (2-1)ns = 1ns data delay = 2ns
154 data delay' = <data delay> - <clock skew> = 2ns - 1ns = 1ns 图 clock skew, 建 立 时 间 与 建 立 关 系 的 等 价 图 图 是 图 受 clock skew 影 响 的 时 序 图 ext_clk 与 fpga_clk 时 钟 差 是 1ns, 这 个 时 钟 左 右 了 原 先 位 置 应 该 在 2ns 的 D[0], 不 小 心 倒 回 1ns 的 位 置, 最 后 取 得 9ns 的 建 立 时 间 换 之, 右 图 中 的 启 动 沿 原 先 受 D[0] 的 2ns 延 迟, 位 置 应 该 落 在 2ns 才 是, 不 过 被 1ns 的 时 间 差 绊 了 一 脚, 然 后 跌 在 1ns 的 位 置, 因 此 取 得 9ns 的 建 立 关 系 图 ext_clk 与 fpga_clk 右 移, 保 持 时 间 与 保 持 关 系 的 等 价 图 不 要 怀 疑, 图 同 是 图 的 换 皮 结 果... 左 图 中, 由 于 D[0] 受 到 自 身 2ns 的 延 迟, 还 有 ext_clk 延 迟 的 影 响, 导 致 起 跑 线 在 3ns, 而 fpga_clk 也 受 2ns 的 延 迟, 最 后 导 致 保 持 时 间 为 1ns; 换 之, 右 图 中 的 下 一 个 启 动 沿 由 于 受 到 1ns 的 ext_clk 延 迟, 再 加 上 D[0] 本 身 的 2ns 延 迟, 结 果 下 一 个 启 动 沿 的 位 置 从 13ns 开 始, 不 过 由 于 fpga_clk 也 受 到 2ns 延 迟 的 影 响, 最 终 保 持 关 系 取 得 -1ns clock skew = < destination reg clock delay > - < source reg clock delay > clock skew = < fpga_clk delay> - <ext_clk delay> = (2-1)ns = 1ns 153
155 黑 金 动 力 社 区 data delay data delay' = 2ns = <data delay> - <clock skew> = 2ns - 1ns = 1ns 图 clock skew, 保 持 时 间 与 保 持 关 系 的 等 价 图 图 是 图 受 clock skew 作 用 以 后 的 时 序 图 左 图 中 的 D[0] 原 本 应 该 从 2ns 的 位 置 起 跑, 可 是 不 小 心 踩 到 1ns 的 时 间 差, 然 后 跌 倒 在 1ns 的 位 置, 从 而 造 就 1ns 的 保 持 时 间 换 之, 由 图 中 的 下 一 个 启 动 沿, 原 受 到 2ns 的 延 迟 而 在 12ns 的 位 置, 结 果 还 是 一 样 衰, 不 小 心 踩 到 1ns 的 时 间 差, 然 后 跌 在 11ns 的 位 置, 最 后 导 致 保 持 关 系 为 -1ns 到 目 前 为 止, 我 们 只 是 在 了 解 单 位 宽 信 号 ( 数 据 ) 的 传 输 而 已... 更 多 时 候, 信 号 位 宽 都 是 N* 字 节 为 单 位, 因 此 我 们 有 必 要 好 好 学 习 一 下 TimeQuest 是 如 何 应 付 这 些 多 位 宽 的 数 据 呢? 图 fpga2ic 外 部 模 型 的 多 位 宽 数 据 传 输 图 左 图 相 较 上 一 章 节 的 fpga2ic 的 外 部 模 型 不 是 D[0] 而 是 D[0:2], 也 就 是 多 位 宽 数 据 传 输, 然 而 右 图 是 多 位 宽 传 输 的 理 想 时 序 图 (fpga 向 ic 发 送 3 位 10ns 周 期 的 数 据 / 信
156 号 ) TimeQuest 认 识 单 位 宽 传 输 与 多 位 宽 传 输 的 方 法 基 本 上 是 大 同 小 异, 换 句 话 说... 某 个 单 位 宽 重 复 n 次 后 就 会 成 为 多 位 宽 笔 者 知 道 自 己 在 说 废 话, 不 过 也 就 是 这 句 废 话 让 笔 者 领 悟 到,TimeQuest 不 会 那 么 努 力 一 个 一 个 去 识 别 单 位 宽, 而 且 我 们 也 不 可 能 逐 个 逐 个 将 单 位 宽 告 诉 TimeQuest... 不 然 我 们 和 TimeQuest 都 会 抓 狂 因 此 TimeQuest 在 应 付 多 位 宽 的 时 候 偷 偷 用 手 段? 这 个 手 段 又 是 什 么 呢? 图 均 为 与 不 均 匀 的 延 迟 压 力 假 设 fpga2ext 的 路 上 存 有 延 迟, 结 果 造 成 数 据 D 向 右 移 动, 这 时 候 我 们 会 遇 见 延 迟 压 力 均 匀 与 不 均 匀 的 问 题, 延 迟 压 力 均 匀 如 图 左 图 所 示, 换 之 延 迟 压 力 不 均 匀 如 图 右 图 所 示 延 迟 压 力 如 果 均 匀 的 话, 不 仅 在 审 美 上, 绘 制 时 序 图 上, 还 是 JDL 在 时 序 产 生 上, 都 非 常 便 利 相 反 的, 如 果 延 迟 压 力 不 均 匀 的 话, 在 许 多 方 面 上 会 麻 烦 一 点 笔 者 在 整 合 篇 中 曾 经 举 例 过, 自 定 义 的 乘 法 器 比 起 传 统 的 乘 法 器 更 容 易 控 制 延 迟 压 力 均 匀 与 否 当 然 所 谓 的 延 迟 压 力 均 匀 不 是 图 的 左 图 中 出 现 一 样... 那 么 完 美 的 数 值, 实 际 上 会 是 2.8ns,2.9ns,3.1ns 等 接 近 3ns 的 数 值 事 实 上, 延 迟 压 力 均 不 均 匀 只 是 完 美 主 义 的 追 求 而 已, 对 实 际 的 影 响 不 大, 话 虽 如 此... 不 过 可 以 的 话 笔 者 也 会 努 力 去 均 匀 一 点 各 个 延 迟 压 力, 毕 竟 这 样 看 会 比 较 顺 眼 一 点 ~ 笑 155
157 黑 金 动 力 社 区 图 延 迟 压 力 不 均 匀 与 建 立 时 间 和 保 持 时 间 的 关 系 让 我 们 切 回 主 题... 延 迟 压 力 不 均 匀 是 时 序 的 家 常 便 饭, 图 的 右 图 告 诉 我 们 最 大 的 延 迟 是 D[2] 的 3ns, 最 小 的 延 迟 是 D[1] 的 1ns 因 此, 我 们 可 以 这 样 说 道 : D[0..2] delay max = 3ns; D[0..2] delay min = 1ns; 图 是 延 迟 压 力 不 均 匀 给 建 立 时 间 和 保 持 时 间 造 成 的 影 响 让 我 们 来 思 考 吧... 图 的 左 图 中, 有 3 个 信 号 ( 数 据 ),D[0] 的 建 立 时 间 为 9ns,D[1] 的 建 立 时 间 为 8ns, 还 有 D[2] 的 建 立 时 间 为 7ns 请 问 哪 一 个 数 据 的 建 立 时 间 最 危 险 的?, 在 物 理 时 序 角 度 上, 亦 即 建 立 时 间 越 少 越 危 险, 我 们 当 然 将 矛 头 指 向 D[2] 图 的 右 图 中, 同 样 也 是 3 个 信 号,D[0] 的 保 持 时 间 为 1ns,D[2] 的 保 持 时 间 为 2ns, D[3] 的 保 持 时 间 为 3ns 请 问 哪 一 个 数 据 的 保 持 时 间 是 最 危 险 的?, 在 物 理 时 序 角 度 上 思 考, 亦 即 保 持 时 间 越 少 越 危 险, 结 果 最 危 险 的 保 持 时 间 自 然 是 D[0] 因 此 我 们 可 以 这 样 结 论 : 在 D[0]~D[2] 三 个 位 宽 中,delay max 影 响 建 立 时 间 ( 建 立 关 系 ), delay min 影 响 保 持 时 间 ( 保 持 关 系 ) 欸... 笔 者 怎 么 搞 的? 我 越 来 越 搞 糊 涂 了 这 个 问 题 一 定 会 由 心 而 生 吧? 呵 呵... 笔 者 没 有 胡 来, 笔 者 也 没 有 胡 搞, 同 学 们 稍 微 回 忆 一 下 fmax 最 差 劲 节 点 的 故 事 事 实 上, 上 述 的 结 论 与 最 差 劲 节 点 都 有 相 同 的 原 理... TimeQuest 在 分 析 D[0..2] 建 立 时 间 的 时 候, 它 只 要 注 意 最 危 险 的 建 立 时 间 即 可, 按 逻 辑 而 言, 没 有 什 么 比 最 危 险 更 危 险 同 样 思 路,TimeQuest 在 分 析 D[0..2] 保 持 时 间 的 时 候, 它 只 要 注 意 最 危 险 的 保 持 时 间 即 可, 因 为 没 有 什 么 比 最 危 险 更 危 险
158 图 ( 左 ) 建 立 时 间 与 保 持 时 间,( 右 ) 建 立 关 系 与 保 持 关 系, 之 间 的 等 价 图 图 左 边 是 建 立 时 间 与 保 持 时 间 的 时 序 图, 换 之 右 边 是 建 立 关 系 与 保 持 关 系 的 等 价 图 笔 者 曾 讲 过, 建 立 关 系 与 保 持 关 系 的 等 价 图 事 实 上 不 怎 么 关 心 数 据 的 死 活, 然 而 它 们 仅 关 心, 启 动 沿, 下 一 个 启 动 沿, 或 者 锁 存 沿 的 变 动, 还 有 建 立 关 系 和 保 持 关 系 而 已 从 右 图 中 我 们 可 以 了 解 到,3ns 延 迟 的 delay max 影 响 启 动 沿 从 原 本 0ns 的 位 置, 向 右 移 至 3ns 换 之,1ns 延 迟 的 delay min 影 响 下 一 个 启 动 沿 从 原 本 的 10ns 位 置, 向 右 移 至 11ns 最 终 导 致 建 立 关 系 为 7ns, 保 持 关 系 为 -1ns... 这 个 结 果 与 7ns 的 建 立 时 间,1ns 的 保 持 时 间 不 谋 而 合 读 到 这 里, 笔 者 理 解 到 许 多 同 学 可 能 一 时 之 间 无 法 消 化 这 些 莫 名 奇 妙 的 东 西... 说 实 话, 笔 者 初 次 认 识 的 时 候 也 有 同 样 的 感 觉, 原 本 感 觉 莫 名 奇 妙 的 东 西 经 过 多 次 研 究 以 后, 渐 渐 觉 得 情 有 可 原... 然 后 诚 心 接 受 了 从 学 习 Verilog 到 至 今 再 莫 名 奇 妙 的 事 情 也 遇 过 了, 最 终 笔 者 领 悟 到 一 个 道 理, 要 用 那 个 世 界 的 自 然 思 考 那 个 世 界 的 现 象, 不 要 用 这 个 世 界 的 自 然 思 考 那 个 世 界 的 现 象 接 下 来 让 我 们 继 续 思 考... clock skew 如 何 影 响 delay max 与 delay min? 157
159 黑 金 动 力 社 区 图 Clock skew 影 响 建 立 时 间 与 保 持 时 间 的 时 序 图 在 图 的 左 图 中,fpga_clk 有 1ns 的 延 迟,ext_clk 有 2ns 的 延 迟, 然 而 D[0] 有 2ns 的 延 迟,D[1] 有 3ns 的 延 迟,D[2] 有 4ns 的 延 迟 各 种 延 迟 与 数 据 相 互 作 用 以 后,D[0] 取 得 9ns 的 建 立 时 间,1ns 的 保 持 时 间 ;D[1] 取 得 8ns 的 建 立 时 间,2ns 的 保 持 时 间 ;D[2] 取 得 7ns 的 建 立 时 间,3ns 的 保 持 时 间 接 下 来, 让 我 们 先 计 算 一 下 clock skew... clock skew = < destination reg clock delay > - < source reg clock delay > clock skew = <ext_clk delay> - < fpga_clk delay> = (2-1)ns = 1ns clock skew 的 结 果 为 1ns, 结 果 D[0..2] 的 延 迟 都 被 绊 了 一 脚, 通 通 向 后 移 动 1ns, 结 果 如 图 的 右 图 所 示 虽 然 左 图 与 右 图 拥 有 同 样 的 建 立 时 间 与 保 持 时 间, 不 过 它 们 的 差 别 就 在 于 左 图 的 时 钟 跳 来 跳 去, 换 之 右 图 的 时 钟 固 步 不 动
160 图 clock skew 影 响 建 立 关 系 与 保 持 关 系 的 时 序 图 图 的 左 图 是 未 曾 受 clock skew 影 响 的 建 立 关 系 与 保 持 关 系 的 时 序 图, 其 中 fpga_clk,ext_clk 与 D[0..2] 的 延 迟 与 上 述 一 样 差 别 就 在 左 图 中, 启 动 沿 受 4ns 延 迟 的 delay_max 影 响, 再 加 上 fpga_clk 的 1ns 延 迟, 结 果 落 在 5ns 的 位 置 ; 然 而 下 一 个 启 动 沿, 受 2ns 延 迟 的 delay min 影 响, 结 果 落 在 13ns 的 位 置 ext_clk 有 2ns 的 延 迟, 因 此 锁 存 沿 的 位 置 也 在 于 12ns 最 后 建 立 关 系 取 得 7ns, 保 持 关 系 取 得 -1ns clock skew = < destination reg clock delay > - < source reg clock delay > clock skew = <ext_clk delay> - < fpga_clk delay> = (2-1)ns = 1ns clock skew 与 上 述 一 样 是 1ns... 右 图 中 的 fpga_clk 与 ext_clk 固 步 不 动 在 0ns 位 置, 原 本 受 delay max 影 响 的 启 动 沿 应 该 落 在 4ns 的 位 置, 可 是 它 不 小 心 撞 到 1ns 的 时 间 差, 最 后 跌 倒 在 3ns 的 地 方 ; 换 之, 原 本 受 delay min 影 响 的 的 下 一 个 启 动 沿, 同 样 也 不 小 心 撞 到 1ns 的 时 间 差, 从 12ns 的 位 置 跌 到 11ns 的 位 置 最 终 取 得 7ns 的 建 立 关 系, 还 有 -1ns 的 保 持 关 系 左 图 与 右 图 之 间 的 差 别 就 在 于 左 图 的 fpga_clk 与 ext_clk 都 跳 来 跳 去, 换 之 右 图 的 fpga_clk 与 ext_clk 都 乖 乖 呆 在 原 地 图 ic2fpga(ext2fpga) 多 位 宽 的 外 部 模 型 在 前 面 我 们 解 了 有 关 fpga2ic 与 多 位 宽, 这 回 合 让 我 们 来 了 解 一 下 有 关 ic2fpga 与 多 位 宽 的 种 种 图 是 多 位 宽 ic2fpga 的 外 部 模 型, 事 实 上 它 与 多 位 宽 fpga2ic 的 外 部 模 型 只 是 换 个 角 色, 换 个 位 置 而 已, 大 体 上 都 是 换 汤 不 换 药 不 过 笔 者 还 是 惯 例 的 讲 一 讲
161 黑 金 动 力 社 区 图 (ic2fpga)clock skew 影 响 建 立 关 系 与 保 持 关 系 的 时 序 图 图 与 图 基 本 上 只 是 更 换 一 下 D[0..2] 的 名 字 还 有 ext_clk 与 fpga_clk 的 位 置 而 已, 其 他 都 一 模 一 样 在 左 图 中,ext_clk 受 1ns 的 延 迟,fpga_clk 受 2ns 的 延 迟, 然 而 D[0..2] 接 续 有 2ns~4ns 的 延 迟 启 动 沿 不 仅 受 ext_clk 延 迟 1ns 的 影 响, 它 更 受 delay max 的 阻 拦 从 而 落 在 5ns 的 位 置 至 于 下 一 个 启 动 沿 同 样 也 受 到 ext_clk 延 迟 1ns 的 影 响, 它 接 着 又 被 delay min 妨 碍, 结 果 落 在 13ns 的 位 置 最 终 取 得 7ns 的 建 立 关 系, 还 有 -1 ns 的 保 持 关 系 clock skew = < destination reg clock delay > - < source reg clock delay > clock skew = <fpga_clk delay> - <ext_clk delay> = (2-1)ns = 1ns clock skew 经 过 计 算 以 后 取 值 为 1ns 至 于 的 右 图 是 启 动 沿 与 下 一 个 启 动 沿 受 时 钟 差 左 右 的 时 序 图... 原 本 受 4ns delay max 延 迟 的 启 动 沿, 由 于 不 小 心 被 1ns 的 时 钟 差 绊 倒, 从 4ns 的 位 置 跌 至 3ns 的 位 置 换 之 下 一 个 启 动 沿 原 本 受 2ns 的 delay max 延 迟, 同 样 也 不 小 心 撞 到 1ns 的 时 钟 差, 结 果 从 原 本 12ns 的 位 置 跌 至 11ns 的 位 置 最 后 取 得 7ns 的 建 立 关 系, 还 有 -1 的 保 持 关 系 到 目 前 位 置, 我 们 已 经 了 解 完 相 关 的 基 础 知 识, 接 下 来 我 们 不 仅 会 推 导 公 式, 还 会 学 习 有 关 的 约 束 命 令, 亦 即 set_input_delay 与 set_output_delay 同 学 们, 笔 者 还 是 建 议 先 歇 一 会 吧, 好 让 自 己 的 脑 袋 冷 静 一 下, 就 算 战 意 高 昂 也 不 要 勉 强 自 己, 任 何 时 候 都 不 要 高 估 自 己 的 能 力
162 5.5 推 导 外 包 资 料 的 公 式 想 必 任 何 人 都 不 喜 欢 推 导 公 式 吧? 说 实 话, 笔 者 也 是... 不 过 接 下 来 我 们 要 推 导 的 不 是 数 学 公 式, 而 是 与 外 部 模 型 有 关 的 公 式 这 样 做 不 是 为 了 什 么, 而 是 为 了 让 同 学 们 进 一 步 认 识 外 部 模 型 图 fpga2ic 的 外 部 模 型 ( 左 ), 有 各 种 延 迟 的 时 序 图 图 的 左 图 是 fpga2ic 的 外 部 模 型, 然 而 右 图 是 相 关 的 时 序 图... 从 右 图 中, 我 们 可 以 取 得 以 下 信 息 : fpga_clk delay 1ns ext_clk delay 2ns fpga2ext D[0] 2ns (delay min) fpga2ext D[1] 3ns fpga2ext D[2] 4ns (delay max) 信 息 取 得 以 后, 我 们 就 要 开 始 推 导 公 式 了... fpga2ic 的 外 部 模 型 从 另 一 个 角 度 来 看 是 fpga 输 出 数 据,ic 读 取 数 据 然 而 公 式 的 推 导 都 以 fpga 为 主 要, 因 此 fpga2ic 的 公 式 又 称 output 公 式, 但 是 output 公 式 又 应 该 针 对 什 么 呢? 很 简 单,output 公 式 主 要 是 针 对 右 图 中 的 启 动 沿, 与 下 一 个 启 动 沿 针 对 启 动 沿 的 output 公 式 又 名 output max, 换 之 针 对 下 一 个 启 动 沿 的 output 公 式 又 名 output min output max = <fpga2ext delay max> output min = < fpga2ext delay min > 161
163 黑 金 动 力 社 区 output max 与 min 的 公 式 目 前 还 是 很 单 纯, 因 为 我 们 还 没 有 将 clock skew 考 虑 进 去 图 clock skew 与 启 动 沿 和 下 一 个 启 动 沿 的 关 系 图 的 左 图 是 还 没 有 将 clock skew 考 虑 进 去 的 时 序 图, 其 中 fpga_clk 的 延 迟 有 1ns, ext_clk 的 延 迟 有 2ns, 经 过 计 算 以 后 clock skew 值 是 1ns 然 而 右 图 是 左 图 与 clock skew 相 互 作 用 以 后 的 结 果, 无 论 是 启 动 沿 还 是 下 一 个 启 动 沿, 它 们 都 不 小 心 撞 到 1ns 的 时 钟 差, 然 后 向 后 移 动 1ns clock skew 无 差 别 对 待 启 动 沿 与 下 一 个 启 动 沿, 换 句 话 说 clock skew 无 论 是 output max 或 者 output min 它 都 看 不 顺 眼, 因 此 : output max = <fpga2ext delay max> - < destination reg clk delay - source reg clk delay > = <fpga2ext delay max> - < ext_clk delay - fpga_clk delay > = <fpga2ext delay max> - < clock skew > output min = < fpga2ext delay min > - < destination reg clk delay - source reg clk delay > = <fpga2ext delay min> - < ext_clk delay - fpga_clk delay > = <fpga2ext delay min> - < clock skew > 图 Tsu 影 响 建 立 关 系 ( 左 ),Th 影 响 保 持 关 系 ( 右 ) 就 算 是 外 部 ic, 凡 是 有 IO 口 就 有 寄 存 器, 凡 是 有 寄 存 器 一 定 有 寄 存 器 特 性, 因 此 外 部
164 ic 的 寄 存 器 一 定 有 参 数 Tsu 和 Th Tsu 粗 略 点 讲, 它 是 影 响 建 立 关 系 的 寄 存 器 参 数 ; 换 之,Th 粗 略 点 将, 它 是 影 响 保 持 关 系 的 寄 存 器 参 数 ( 如 图 所 示 ) 要 将 Tsu 与 Th 加 入 output min 与 output max 公 式, 建 立 关 系 和 保 持 关 系 是 关 键 图 Tsu 影 响 建 立 关 系,Tsu 影 响 启 动 沿 (output max) 的 等 价 关 系 的 左 图 是 启 动 沿 受 delay max 影 响 后 落 在 3ns 的 位 置, 由 于 外 部 ic 的 寄 存 器 也 存 有 0.5ns 的 Tsu 参 数, 结 果 导 致 锁 存 沿 向 左 移 动 0.5ns, 然 后 落 在 9.5ns 的 位 置, 最 终 得 到 得 到 6.5ns 的 建 立 关 系 换 之 右 图 中 的 锁 存 沿 固 步 不 动, 不 过 0.5ns 的 Tsu 却 影 响 原 先 停 留 在 3ns 位 置 的 启 动 沿, 启 动 沿 就 这 样 迷 迷 糊 糊 的 向 右 移 动 0.5ns, 然 后 落 在 3.5ns 的 位 置 最 终 得 到 6.5ns 的 建 立 关 系 图 Th 影 响 保 持 关 系,Th 影 响 下 一 个 启 动 沿 (output min) 的 等 价 关 系 图 的 左 图, 下 一 个 启 动 沿 原 本 受 1ns 的 delay min 影 响, 接 着 移 动 到 11ns 的 位 置 此 外, 锁 存 沿 不 小 心 受 到 0.5ns 的 Th 影 响, 结 果 锁 存 沿 移 向 10.5ns 的 位 置, 最 终 得 到 -0.5ns 的 保 持 关 系 至 于 右 图 中 的 锁 存 沿 却 丝 毫 不 动, 可 是 原 本 已 经 受 delay min 影 响 的 下 一 个 启 动 沿, 这 下 也 受 Th 那 0.5ns 的 影 响, 然 后 落 在 10.5ns 的 地 方, 最 终 得 到 -0.5ns 的 保 持 关 系 163
165 黑 金 动 力 社 区 从 上 述 的 过 程 中, 我 们 知 道 Tsu 影 响 启 动 沿 也 间 接 影 响 output max;th 反 而 影 响 下 一 个 启 动 沿 也 间 接 影 响 output min... 因 此,output max 和 output min 的 公 式 可 以 这 样 更 动 : output max = <fpga2ext delay max> - < destination reg clk delay - source reg clk delay > + ext_tsu = <fpga2ext delay max> - < ext_clk delay - fpga_clk delay > + ext_tsu = <fpga2ext delay max> - < clock skew > + ext_tsu output min = < fpga2ext delay min > - < destination reg clk delay - source reg clk delay > - ext_th = <fpga2ext delay min> - < ext_clk delay - fpga_clk delay > - ext_th = <fpga2ext delay min> - < clock skew > - ext_th ext_tsu 别 名 ic_tsu 亦 即 外 部 ic 寄 存 器 的 Tsu ext_th 别 名 ic_th 亦 即 外 部 ic 寄 存 器 的 Th 图 延 迟 压 力 均 衡 ( 左 ), 当 单 位 宽 ( 右 ) 图 是 延 迟 压 力 均 匀 ( 作 ) 与 单 位 宽 ( 右 ) 的 时 序 图... 对 于 均 与 的 延 迟 压 力 来 说, 没 有 所 谓 的 delay max 与 delay min 之 分, 反 过 来 说 delay max 是 delay min, 或 者 delay min 是 delay max 至 于 单 位 宽 来 也 没 有 所 谓 的 delay max 与 delay min, 又 或 者 说 delay max 与 delay min 相 等 这 种 情 况 我 们 称 为 delay both, 换 句 话 说 delay both 皆 是 delay max 与 delay min, 因 此 output max 与 output min 可 以 这 样 更 动 (both 英 文 是 皆 是 的 意 思 ): output max = <fpga2ext delay max> - < destination reg clk delay - source reg clk delay > + ext_tsu = <fpga2ext delay max> - < ext_clk delay - fpga_clk delay > + ext_tsu = <fpga2ext delay max> - < clock skew > + ext_tsu // 等 价 // output max = <fpga2ext delay min> - < destination reg clk delay - source reg clk delay > + ext_tsu = <fpga2ext delay min> - < ext_clk delay - fpga_clk delay > + ext_tsu
166 = <fpga2ext delay min> - < clock skew > + ext_tsu // 等 价 // output max = <fpga2ext delay both> - < destination reg clk delay - source reg clk delay > + ext_tsu = <fpga2ext delay both> - < ext_clk delay - fpga_clk delay > + ext_tsu = <fpga2ext delay both> - < clock skew > + ext_tsu output min = < fpga2ext delay max > - < destination reg clk delay - source reg clk delay > - ext_th = <fpga2ext delay max> - < ext_clk delay - fpga_clk delay > - ext_th = <fpga2ext delay max> - < clock skew > - ext_th // 等 价 // output min = < fpga2ext delay min > - < destination reg clk delay - source reg clk delay > - ext_th = <fpga2ext delay min> - < ext_clk delay - fpga_clk delay > - ext_th = <fpga2ext delay min> - < clock skew > - ext_th // 等 价 // output min = < fpga2ext delay both > - < destination reg clk delay - source reg clk delay > - ext_th = <fpga2ext delay both> - < ext_clk delay - fpga_clk delay > - ext_th = <fpga2ext delay both> - < clock skew > - ext_th 延 迟 压 力 均 匀 与 单 位 宽 是 比 较 特 殊 的 状 况, 不 过 道 理 上 和 不 均 匀 的 多 位 宽 一 样 读 到 这 里 笔 者 猜 想, 一 定 有 同 学 会 觉 得 非 常 奇 妙,fpga2ic 是 指 fpga 发 送 数 据 给 ic 为 什 么 在 加 入 外 部 ic 寄 存 器 的 Tsu 与 Th 参 数 时, 却 没 有 考 虑 过 fpga 本 身 的 Tco 寄 存 器 参 数? 原 因 很 单 纯, 不 是 我 们 不 考 虑 事 实 上 TimeQuest 已 经 了 解 了, 因 为 output 公 式 是 以 fpga 为 主 要, 换 句 话 说 Tco 是 fpga 的 内 部 延 迟 因 数, 所 以 我 们 不 用 刻 意 告 诉 它 图 ic2fpga(ext2fpga) 的 外 部 模 型 ic2fpga 是 ic 发 送 数 据,fpga 读 取 数 据 的 外 部 模 型, 不 过 不 管 位 置 怎 么 改 变, 大 体 上 都 是 大 同 小 异 而 已 ic2fpga 依 然 也 是 fpga 为 主 要, 亦 即 fpga 读 取 数 据, 因 此 也 称 为 input 公 式 同 样, 针 对 启 动 沿 的 input 公 式 称 为 input max; 换 之, 针 对 下 一 个 启 动 沿 的 input 公 式 称 为 input min input max = <ext2fpga delay max> - < destination reg clk delay - source reg clk delay > 165
167 黑 金 动 力 社 区 = <ext2fpga delay max> - < fpga_clk delay - ext_clk delay > = <ext2fpga delay max> - < clock skew > input min = < ext2fpga delay min > - < destination reg clk delay - source reg clk delay > = <ext2fpga delay min> - < fpga_clk delay - ext_clk delay > = <ext2fpga delay min> - < clock skew > 图 Tco 影 响 建 立 关 系 ( 左 ),Tco 影 响 保 持 关 系 ( 右 ) ic2fpga 的 外 部 模 型, 外 部 ic 是 发 送 方, 因 此 我 们 必 须 考 虑 外 部 ic 的 Tco 寄 存 器 参 数 如 图 所 示, 无 论 是 建 立 关 系 还 是 保 持 关 系 都 会 路 出 Tco 的 笑 脸 图 Tco 影 响 建 立 关 系 与 保 持 关 系 Tco 是 比 较 霸 道 的 寄 存 器 参 数, 它 吃 定 建 立 关 系 与 保 持 关 系 从 图 中 我 们 可 以 理 解 到,0.5ns 的 Tco 助 长 了 1ns 的 delay min 成 为 1.5ns, 同 样 Tco 也 助 长 了 3ns 的 delay max 成 为 3.5ns 以 此 类 推, 启 动 沿 受 delay max 影 响, 而 且 delay max 的 新 值 是 3ns + 0.5ns, 亦 即 3.5ns 换 之 下 一 个 启 动 沿 受 delay min 影 响, 而 且 delay min 的 新 值 是 1ns + 0.5ns, 亦 即 1.5ns 最 终 导 致 建 立 关 系 为 6.5ns, 保 持 关 系 为 -1.5ns 因 此 input max 与 input min 公 式 可 以 这 样 更 动 : input max = <ext2fpga delay max> - < destination reg clk delay - source reg clk delay > + ext_tco
168 = <ext2fpga delay max> - < fpga_clk delay - ext_clk delay > + ext_tco = <ext2fpga delay max> - < clock skew > + ext_tco input min = < ext2fpga delay min > - < destination reg clk delay - source reg clk delay > + ext_tco = <ext2fpga delay min> - < fpga_clk delay - ext_clk delay > + ext_tco = <ext2fpga delay min> - < clock skew > + ext_tco // 等 价 // input min = < ext2fpga delay min > - < destination reg clk delay - source reg clk delay > + ext_mintco = <ext2fpga delay min> - < fpga_clk delay - ext_clk delay > + ext_mintco = <ext2fpga delay min> - < clock skew > + ext_mintco ext_tco 别 名 ic_tco 亦 即 外 部 ic 的 Tco 寄 存 器 参 数 ext_mintco 别 名 ic_mintco 亦 即 外 部 ic 的 最 小 Tco 寄 存 器 参 数 同 学 们 可 能 会 举 得 疑 惑, 为 什 么 input min 会 有 另 一 个 等 价 的 公 式, 还 有 mintco 又 是 什 么?minTco 是 Tco 的 最 小 值, 但 是 差 别 的 比 率, 根 据 硬 件 的 不 同, 结 果 也 会 不 同 按 照 理 论,input min 载 入 ext_tco 还 是 ext_mintco 都 没 有 问 题 实 际 上, 载 入 ext_tco 比 起 载 入 ext_mintco 有 更 好 的 保 险 作 用 既 然 如 此, 为 什 么 ext_mintco 还 受 到 重 用 呢? 关 于 这 点 笔 者 就 不 怎 么 清 楚 了, 可 能 是 近 似 作 用 或 者 其 他 的 吧... 无 论 怎 样 选 择 都 是 见 仁 见 智 了 167
169 黑 金 动 力 社 区 5.6 外 部 模 型 的 input/ouput 约 束 指 令 这 一 章 我 们 将 通 过 假 想 的 实 验 来 认 识 外 部 模 型 的 input/output 约 束 命 令 图 假 想 实 验 的 外 部 模 型 图 是 假 想 实 验 的 外 部 模 型,fpga 与 ic2 是 fpga2ic 的 关 系, 亦 即 fpga 经 过 D[0:3] 发 送 数 据 给 ic2 然 而 D[0..3] 之 间,delay min 是 2ns, 然 而 delay max 4ns, 至 于 ic2 的 寄 存 器 特 性 是 0.5ns 的 Tsu 和 0.5ns 的 Th 换 之 ic1 与 fpga 是 fpga2ic 的 关 系, 亦 即 ic1 经 过 D[0:3] 发 送 数 据 给 fpga, 其 中 delay min 是 2ns,delay max 是 4ns, 此 外 ic1 有 0.5ns 的 Tco ext1_clk 是 受 1ns 延 迟 的 100Mhz 时 钟 ;fpga_clk 是 受 2ns 延 迟 的 100Mhz 时 钟 ;ext2_clk 是 受 3ns 延 迟 的 100Mhz 时 钟 然 后 让 我 们 计 算 一 下 input/output min/max 的 各 种 取 值 : delay min 2ns delay max 4ns ext1_clk delay 1ns fpga_clk delay 2ns ext2_clk delay 3ns Tco/Tsu /Th 0.5ns input max = <ext2fpga delay max> - < destination reg clk delay - source reg clk delay > + ext_tco = <ext2fpga delay max> - < fpga_clk delay - ext1_clk delay > + ext_tco = <ext2fpga delay max> - < clock skew > + ext_tco = 4ns - (2ns - 1ns) + 0.5ns =3.5ns input min = < ext2fpga delay min > - < destination reg clk delay - source reg clk delay > + ext_tco = <ext2fpga delay min> - < fpga_clk delay - ext1_clk delay > + ext_tco = <ext2fpga delay min> - < clock skew > + ext_tco = 2ns - (2ns - 1ns) + 0.5ns = 1.5ns
170 output max = <fpga2ext delay max> - < destination reg clk delay - source reg clk delay > + ext_tsu = <fpga2ext delay max> - < ext2_clk delay - fpga_clk delay > + ext_tsu = <fpga2ext delay max> - < clock skew > + ext_tsu = 4ns - (3ns - 2ns) + 0.5ns = 3.5ns output min = < fpga2ext delay min > - < destination reg clk delay - source reg clk delay > - ext_th = <fpga2ext delay min> - < ext_clk1 delay - fpga_clk delay > - ext_th = <fpga2ext delay min> - < clock skew > - ext_th = 2ns - (3ns - 2ns) - 0.5ns = 0.5ns 实 验 六 假 想 实 验 input/output delay 约 束 center_module.v 1. module center_module 2. ( 3. input CLK, 4. input RSTn, 5. input [3:0]Din, 6. output [3:0]Dout 7. ); 8. /********************************************/ reg [3:0]rData; ( posedge CLK or negedge RSTn ) 13. if(!rstn ) 14. begin 15. rdata <= 4'd0; 16. end 17. else 18. begin 19. rdata <= Din; 20. end /********************************************/ assign Dout = rdata; /********************************************/
171 黑 金 动 力 社 区 28. endmodule 上 述 是 center_module.v 的 内 容, 乍 看 下 fpga 也 只 是 充 当 ic1 与 ic2 之 间 的 间 接 寄 存 器 而 已 亦 即 从 ic1 读 入 数 据 致 rdata, 然 后 又 将 rdata 的 数 据 发 送 给 ic2 图 创 建 best case 网 表 再 来 先 创 建 同 名 的 center_module.sdc 文 件, 然 后 将 它 设 置 为 本 实 验 的 约 束 文 本, 再 来 打 开 TimeQuest 然 后 手 动 建 立 best case 网 表, 如 图 所 示 图 创 建 3 个 时 钟 再 来 建 立 3 个 时 钟 ( 如 图 所 示 ), 它 们 分 别 为 是 10ns 周 期 的 fpga_clk,ext1_clk 还 有 ext2_clk 除 了 fpga_clk 是 拥 有 对 应 的 target 以 外 (CLK 的 io),ext11_clk 与 ext2_clk 都 是 没 有 对 应 目 标 的 virtual clock( 虚 拟 时 钟 )
172 图 set_input_delay 界 面 接 下 来, 从 Constraints 菜 单 中 调 出 set_input_delay 界 面 ( 图 5.6.4) 任 何 初 次 看 到 这 张 界 面 的 同 学, 估 计 都 会 被 奇 奇 怪 怪 的 选 项 吓 一 跳, 不 过 不 要 紧, 让 我 们 逐 个 来 了 解 clock name 指 向 ic2fpga 外 部 模 型 中 的 ic 时 钟 源, 这 里 是 ext1_clk; 至 于 delay 选 线 中 的 max 是 指 input max, 换 之 min 是 指 input min, 而 both 是 指 min/max, 接 着 在 delay value 中 输 入 相 关 的 数 值,min 是 1.5ns,max 是 3.5ns; 然 而 target 是 属 于 input 有 关 的 输 入 口, 在 此 是 Din[0:3] 图 ( 左 ) 默 认,( 右 )use falling clock edge 默 认 选 项 下 TimeQuest 都 会 认 为 被 clock name 指 定 的 时 钟 都 是 上 升 沿 触 发 ( 输 出 数 据 ) 换 之, 使 能 use falling clock edge,timequest 就 会 知 道 被 clock name 指 定 的 时 钟 由 下 降 沿 触 发 至 于 这 个 选 项 的 用 处 暂 时 没 有 实 例 讲 解, 同 学 们 先 弄 个 大 概 就 可 以 了 至 于 add_delay 选 项 是 比 较 模 糊 的 东 西, 一 般 上 一 个 IO 口 都 由 1 个 寄 存 器 驱 动 不 过 一 些 特 殊 的 IO 口 可 能 由 多 可 寄 存 器 驱 动, 例 如 DDIO, 亦 即 双 沿 IO 口... 它 里 边 是 由 2 个 寄 存 器 同 时 驱 动 一 个 IO 口, 使 能 add_delay 就 是 告 诉 TimeQuest 某 个 IO 由 1 个 以 上 的 寄 存 器 驱 动 至 于 rise/fall 或 者 both 笔 者 就 不 清 楚 了, 不 过 默 认 both 就 是 了 171
173 黑 金 动 力 社 区 图 set output delay 界 面 同 样 在 Constraints 菜 单 下 调 出 set output delay 的 界 面, 如 图 所 示 基 本 上 set input delay 与 set output delay 的 意 义 差 不 多 都 一 样, 只 是 节 点 换 了 位 置 而 已 其 中 clock name 指 定 驱 动 外 部 ic 的 时 钟, 在 这 里 是 ext2_clk delay max 输 入 3.5ns,delay min 则 输 入 0.5ns;target 则 是 Dout[0:3] 完 后,sdc 文 件 会 自 动 添 加 以 下 的 约 束 命 令, center_module.sdc #************************************************************** # Create Clock #************************************************************** create_clock -name {fpga_clk} -period waveform { } [get_ports {CLK}] create_clock -name {ext1_clk} -period waveform { } create_clock -name {ext2_clk} -period waveform { } #************************************************************** # Set Input Delay #************************************************************** set_input_delay -add_delay -max -clock [get_clocks {ext1_clk}] [get_ports {Din[0]}] set_input_delay -add_delay -min -clock [get_clocks {ext1_clk}] [get_ports {Din[0]}] set_input_delay -add_delay -max -clock [get_clocks {ext1_clk}] [get_ports {Din[1]}] set_input_delay -add_delay -min -clock [get_clocks {ext1_clk}] [get_ports {Din[1]}] set_input_delay -add_delay -max -clock [get_clocks {ext1_clk}] [get_ports {Din[2]}] set_input_delay -add_delay -min -clock [get_clocks {ext1_clk}] [get_ports {Din[2]}] set_input_delay -add_delay -max -clock [get_clocks {ext1_clk}] [get_ports {Din[3]}] set_input_delay -add_delay -min -clock [get_clocks {ext1_clk}] [get_ports {Din[3]}] #************************************************************** # Set Output Delay #**************************************************************
174 set_output_delay -add_delay -max -clock [get_clocks {ext2_clk}] [get_ports {Dout[0]}] set_output_delay -add_delay -min -clock [get_clocks {ext2_clk}] [get_ports {Dout[0]}] set_output_delay -add_delay -max -clock [get_clocks {ext2_clk}] [get_ports {Dout[1]}] set_output_delay -add_delay -min -clock [get_clocks {ext2_clk}] [get_ports {Dout[1]}] set_output_delay -add_delay -max -clock [get_clocks {ext2_clk}] [get_ports {Dout[2]}] set_output_delay -add_delay -min -clock [get_clocks {ext2_clk}] [get_ports {Dout[2]}] set_output_delay -add_delay -max -clock [get_clocks {ext2_clk}] [get_ports {Dout[3]}] set_output_delay -add_delay -min -clock [get_clocks {ext2_clk}] [get_ports {Dout[3]}] 图 setup 与 hold 时 序 分 析 然 后 我 们 就 可 以 开 始 分 析 时 序 了... 双 击 Report Timing, 选 择 setup 与 hold 分 析, 其 他 放 空, 然 后 点 击 report timing 执 行, 如 图 所 示 图 setup 分 析 结 果 图 hold 分 析 结 果 经 过 分 析 以 后, 我 们 发 现 只 有 8 对 节 点 的 setup 分 析 与 hold 分 析 而 已... 有 4 对 节 点 是 173
175 黑 金 动 力 社 区 rdata[0:3]~dout[0:3], 另 外 4 对 节 点 是 Din[0:3]~rData[0:3] 在 此,rData 是 fpga 内 的 寄 存 器,Din 是 ic1 的 寄 存 器,Dout 是 ic2 的 寄 存 器 从 图 5.6.8~9 中 看 见 的 Clock Skew 或 者 Data Delay 基 本 上 是 内 部 模 型 的 延 迟 结 果, 与 外 部 模 型 一 丁 儿 关 系 也 没 有... 这 话 何 说 呢? 图 rdata[0]~dout[0] setup 分 析 的 时 序 图 图 rdin[0]~rdata0] setup 分 析 的 时 序 图 笔 者 展 开 节 点 rdata[0]~dout[0]( 图 ) 还 有 节 点 rdata[0]~dout[0]( 图 ) 的 setup 分 析 过 程, 其 中 3.5ns 还 有 3.5ns 就 是 set output delay max 与 set input delay max 的 结 果
176 图 rdata[0]~dout[0] hold 分 析 的 时 序 图 图 rdin[0]~rdata0] hold 分 析 的 时 序 图 接 着 又 展 开 同 样 的 节 点, 然 后 观 察 该 hold 分 析 图, 如 图 与 图 所 示... 其 中 0.5ns 与 1.5ns 既 是 set output delay min 与 set input delay min 的 结 果 在 这 里, 我 们 得 到 这 样 一 个 结 论 : set output delay 与 set input delay 好 似 一 个 外 包 资 料, 首 先 我 们 收 集 各 种 外 部 的 延 迟 信 息 接 着 包 裹 在 一 个 外 包 资 料 里, 然 后 丢 给 TimeQuest TimeQuest 当 然 晓 得 某 某 delay max 是 针 对 建 立 关 系, 又 某 某 delay min 是 针 对 保 持 关 系 TimeQuest 在 分 析 内 部 的 setup 与 hold 时 序 时 顺 便 参 考 一 下 外 包 资 料 的 信 息... 就 这 样 TimeQuest 就 可 以 独 立 分 开 外 部 延 迟 信 息 与 内 部 延 迟 信 息 175
177 黑 金 动 力 社 区 总 结 : 第 五 章 终 于 写 完 了, 这 一 章 的 实 验 数 量 不 但 少, 而 且 约 束 命 令 的 出 现 也 不 多, 不 过 内 容 都 是 深 入 理 解 TimeQuest 的 要 点 这 个 章 节 我 们 先 了 解 网 表, 事 实 上 网 表 也 有 极 端 与 好 之 分, 越 是 极 端 保 险 余 量 越 大, 可 是 性 能 限 制 却 越 大, 结 果 越 偏 离 实 际 的 信 息 ; 换 之, 越 是 好 保 险 余 量 越 小, 性 能 限 制 也 越 小, 结 果 越 接 近 实 际 的 信 息 默 认 下 TimeQuest 是 一 位 极 端 的 生 存 者, 不 过 也 可 以 手 动 要 它 成 为 乐 天 的 屁 民 此 外, 笔 者 也 稍 微 谈 论 一 下 TimeQuest 的 迷 信, 亦 即 Fmax 笔 者 初 学 TimeQuest 的 时 候, 同 样 也 认 为 Fmax 是 时 序 分 析 的 重 要 标 准, 后 来 才 知 道 Fmax 是 指 某 个 最 差 劲 节 点 的 最 高 频 率 Fmax 这 东 西 不 是 越 高 越 好, 就 像 驾 驶 跑 车 那 样, 就 算 哪 天 死 了 也 不 会 冲 到 最 高 速... 所 以 说, 够 用 就 好 提 升 Fmax 有 许 多 方 法, 除 了 选 择 较 好 的 网 表 以 外, 还 可 以 设 置 编 译 器 的 选 项, 当 然 最 根 本 还 是 Verilog 本 身 Fmax 也 可 以 是 网 表 质 量 关 系 性 能 限 制 的 评 估 值 但 是 这 章 让 笔 者 最 着 重 的 内 容... 亦 即 TimeQuest 用 非 常 巧 妙 的 手 段 将 外 部 信 息 包 裹 为 外 部 资 料, 这 外 部 资 料 有 标 志 性 的 max 与 min, 而 max 是 针 对 建 立 关 系,min 则 是 针 对 保 持 关 系 外 部 资 料 是 由 以 下 公 式 ( 手 段 ) 将 外 部 延 迟 信 息 包 裹 而 成 : input max = <ext2fpga delay max> - < destination reg clk delay - source reg clk delay > + ext_tco = <ext2fpga delay max> - < clock skew > + ext_tco input min = < fpga2ext delay min > - < destination reg clk delay - source reg clk delay > + ext_tco = <fpga2ext delay min> - < clock skew > + ext_tco( 或 者 ext_mintco) output max = <fpga2ext delay max> - < destination reg clk delay - source reg clk delay > + ext_tsu = <fpga2ext delay max> - < clock skew > + ext_tsu output min = < fpga2ext delay min > - < destination reg clk delay - source reg clk delay > - ext_th = <fpga2ext delay min> - < clock skew > - ext_th 对 笔 者 而 言, 最 辛 苦 的 差 事 就 是 推 导 以 上 的 公 式... 很 久 以 前, 笔 者 在 接 触 TimeQuest 不 久, 它 们 就 出 现 在 手 册 上 不 过 一 般 而 言, 绝 对 不 会 有 人 犯 贱 到 折 腾 自 己 去 推 导 它 们 但 直 觉 告 诉 笔 者, 推 导 公 式 可 以 让 自 己 更 了 解 TimeQuest... 就 这 样, 笔 者 一 度 跌 进 学 习 的 死 胡 同, 然 后 灰 心 离 开, 学 习 进 度 从 此 就 定 格 在 哪 里 当 整 合 篇 完 成, 时 间 大 约 是 一 年 后... 笔 者 再 次 打 开 当 时 的 草 稿, 然 后 继 续 思 考, 不 出 几 天 的 时 间, 许 多 东 西 就 那 样 自 然 而 然 的 理 解 起 来... 推 导 整 套 公 式 的 关 键 自 然 是 那 个 不 起 眼 的 建 立 关 系 与 保 持 关 系 心 想 真 妙, 建 立 时 间 与 保 持 时 间 既 然 与 建 立 关 系 与 保 持 关 系 有 如 此 微 妙 的 关 系, 这 就 是 第 五 章 的 重 点 内 容
178 第 六 章 : 物 理 时 钟 与 外 部 模 型 6.1 物 理 时 钟 1 图 6.1.1( 左 )fpga2ic 外 部 模 型,( 右 ) 理 想 时 钟 在 理 想 时 序 中 出 现 的 时 钟 称 为 理 想 时 钟, 换 之 在 物 理 时 序 中 出 现 的 时 钟 称 为 物 理 时 钟 笔 者 知 道 自 己 在 说 废 话... 不 过 理 想 时 钟 的 特 性 如 图 右 图 所 示,fpga_clk 与 ext_clk 没 有 任 何 延 迟 假 设 fpga 发 送 数 据,ic 读 取 数 据 的 话, 那 么 fpga_clk 的 启 动 沿 必 定 在 0ns 触 发, 而 ext_clk 的 锁 存 沿 必 定 在 10ns 读 取 图 clock skew( 时 间 差 ) 相 比 之 下, 物 理 时 钟 就 没 有 那 么 单 纯 了... 物 理 时 钟 有 许 多 特 性 如 :clock skew( 时 间 差 ), jitter( 抖 动 ), 或 者 latency( 潜 伏 ) 等, 这 些 物 理 时 钟 的 特 性 又 称 为 uncertainly 非 定 性, 或 者 非 理 想 clock skew 我 们 已 经 在 前 面 学 习 过, 亦 即 fpga_clk 与 ext_clk 的 抵 达 时 间 不 一 致 所 导 致 的 时 间 差, 如 fpga_clk 有 2ns 的 延 迟, 而 ext_clk 有 3ns 的 延 迟, 那 么 时 钟 差 就 是 1ns, 如 图 所 示 公 式 是 : clock skew = < destination reg clock delay > - < source reg clock delay > 177
179 黑 金 动 力 社 区 图 时 钟 抖 动. 那 么 什 么 是 抖 动 与 潜 伏 呢? 当 时 钟 源 产 生 时 钟 信 号 的 时 候, 除 了 时 钟 路 径 的 延 迟 以 外, 时 钟 产 生 源 本 来 也 有 延 迟, 不 过 该 死 不 死 的 是, 这 个 产 生 源 的 延 迟 是 非 常 暧 昧 的, 它 有 时 大 有 时 小... 如 图 所 示, 假 设 倒 霉 的 fpga 连 接 到 劣 质 的 时 钟 源, 该 时 钟 源 的 最 小 延 迟 是 1ns, 最 大 延 迟 是 2ns( 这 时 候 还 不 包 括 fpga_clk 路 径 本 身 的 延 迟 ) 结 果, 右 图 的 时 序 被 产 生, 亦 即 fpga_clk 有 时 受 1ns 的 min 延 迟 影 响, 称 为 early; fpga_clk 有 时 也 受 2ns 的 max 延 迟 影 响, 称 为 late 话 中 的 early/min 或 者 late/max 也 称 为 clock latency( 潜 伏 时 钟 ) clock latency 可 说 是 非 常 恶 趣 味 的 玩 笑, 这 种 不 确 定 的 因 数 最 要 人 摸 不 着, 也 让 人 最 抓 狂 虽 说 fpga 内 部 额 也 有 时 钟 抖 动... 不 过 fpga 内 部 有 专 门 的 硬 件 过 滤 时 钟 的 抖 动, 以 至 于 内 部 的 时 钟 潜 伏 小 到 可 以 忽 略 它 所 以 说, 时 钟 抖 动 就 成 为 了 外 部 模 型 的 烦 恼, 不 过 也 不 是 那 么 严 重, 以 目 前 的 科 技 而 言, 要 把 抖 动 控 制 在 皮 秒 级 别 是 绝 对 没 问 题 的 此 外, 如 果 设 计 对 时 序 不 严 谨 的 话, 基 本 上 也 可 以 忽 略 时 钟 潜 伏 的 问 题 话 是 这 么 说... 不 过 同 学 们 也 休 想 偷 懒, 因 为 TimeQuest 部 分 约 束 命 令 是 与 物 理 时 钟 有 关, 所 以 不 得 不 学 习, 哎... =================================================================== 时 钟 信 号 的 抖 动 问 题 日 最 让 人 头 疼 的 地 方 是... 它 不 像 数 据 那 样 有 多 位 宽,delay max 往 往 是 针 对 有 最 大 延 迟 的 某 位 数 据, 反 之 delay min 是 针 对 某 位 有 最 小 延 迟 的 数 据 至 于 时 钟 抖 动 都 是 朝 向 同 一 个 时 钟 信 号 砸 去, 亦 即 delay min 也 是 该 时 钟 信 号,delay max 也 是 该 时 钟 信 号 所 以 说, 我 们 必 须 换 个 思 路 再 思 考
180 图 delay min 影 响 fpga_clk 和 建 立 关 系 与 保 持 关 系 的 等 价 图 如 图 的 左 图 所 示, 由 于 fpga_clk 被 1ns 延 迟 的 delay min 影 响, 导 致 建 立 时 间 为 9ns, 而 保 持 时 间 为 1ns; 换 之, 右 图 的 启 动 沿 与 下 一 个 启 动 沿 也 被 1ns 延 迟 的 delay min 影 响, 最 后 建 立 关 系 取 得 9ns, 保 持 关 系 取 得 -1ns 图 delay max 影 响 fpga_clk 和 建 立 关 系 与 保 持 关 系 的 等 价 图 图 的 左 图 中,fpga_clk 受 2ns 延 迟 的 delay max 影 响, 导 致 建 立 时 间 取 得 8ns, 而 保 持 时 间 取 得 2ns; 换 之, 右 图 中 的 启 动 沿 与 下 一 个 启 动 沿 皆 被 2ns 延 迟 的 delay max 影 响, 结 果 取 得 8ns 的 建 立 关 系, 还 有 -2ns 的 保 持 关 系 根 据 图 与 图 的 各 种 信 息, 我 们 总 结 出... 在 物 理 时 序 的 角 度 上 建 立 时 间 越 短 越 危 险, 同 样 保 持 时 间 越 短 越 危 险, 因 此 我 们 可 以 这 样 说 :delay max(late) 影 响 启 动 沿,delay min(early) 影 响 下 一 个 启 动 沿 因 为 delay max(late) 会 造 就 最 小 的 建 立 时 间, 换 之 delay min(early) 会 造 就 最 小 的 保 持 时 间 图 有 抖 动 但 是 没 有 min/max(early/late) 之 分, 称 为 both 有 时 候 时 钟 信 号 的 产 生 源 会 有 延 迟 但 是 没 有 抖 动, 又 或 者 说 产 生 源 有 抖 动 但 是 没 有 min/max(early/late) 之 分, 这 种 情 况 下 我 们 称 为 both, 具 体 内 容 和 input/output delay both 差 不 多 如 图 所 示, 假 设 产 生 源 有 1ns 的 延 迟, 但 是 没 有 抖 动, 换 句 话 说, 右 图 中 的 启 动 沿 和 下 一 个 启 动 沿, 皆 被 1ns 的 延 迟 影 响 向 右 移 至 1ns 179
181 黑 金 动 力 社 区 图 fpga_clk 时 钟 信 号 路 径 延 迟 1ns 这 种 情 况 与 fpga_clk 路 径 延 迟 为 1ns 等 价, 如 图 所 示 如 果 反 过 来 思 考 话, 在 第 五 章 出 现 的 input min/max 与 output min/max 公 式, 我 们 可 以 除 掉 clock ckew, 如 下 所 示 : input max = <ext2fpga delay max> - < destination reg clk delay - source reg clk delay > + ext_tco = <ext2fpga delay max> - < clock skew > + ext_tco input min = < fpga2ext delay min > - < destination reg clk delay - source reg clk delay > + ext_tco = <fpga2ext delay min> - < clock skew > + ext_tco( 或 者 ext_mintco) output max = <fpga2ext delay max> - < destination reg clk delay - source reg clk delay > + ext_tsu = <fpga2ext delay max> - < clock skew > + ext_tsu output min = < fpga2ext delay min > - < destination reg clk delay - source reg clk delay > - ext_th = <fpga2ext delay min> - < clock skew > - ext_th 为 ( 除 掉 clock skew 部 分 ): input max input min = <ext2fpga delay max> + ext_tco = <ext2fpga delay min> + ext_tco( 或 者 ext_mintco) output max output min = <fpga2ext delay max> + ext_tsu = < fpga2ext delay min > - ext_th 同 学 们 可 能 会 觉 得 非 常 疑 惑, 然 后 问 : 如 果 将 外 包 资 料 的 clock skew 除 掉 的 话, TimeQuest 又 该 如 何 知 道 外 边 有 关 fpga_clk 延 迟 与 ext_clk 延 迟 的 信 息 呢? 好 问 题, 这 就 是 接 下 来 我 们 要 学 习 的 约 束 命 令, 亦 即 set_clock_latency 实 验 七 :set_clock_latency 告 诉 TimeQuest 外 部 时 钟 延 迟 信 息
182 图 假 想 实 验 的 外 部 模 型 图 是 沿 用 实 验 六 的 假 想 外 部 模 型, 亦 即 ic1 输 出 fpga 读 取,fpga 输 出 ic2 读 取 其 中 ic1 致 fpga 的 D[0..3] 最 小 延 迟 是 2ns, 最 大 延 迟 是 4ns; 换 之 fpga 致 ic2 的 D[0..3] 最 小 延 迟 是 2ns, 最 大 延 迟 是 4ns 此 外 也 有 100Mhz 的 ext1_clk,fpga_clk 与 ext_clk 给 相 应 的 硬 件 提 供 时 钟, 其 中 ext1_clk 有 1ns 延 迟,fpga_clk 有 2ns 延 迟, 至 于 ext2_clk 有 3ns 延 迟 ( 注 意, 目 前 任 何 时 钟 信 号 的 产 生 源 还 没 有 发 生 抖 动 ) 接 下 来 计 算 input delay min/max 与 output delay min/max: input max = <ext2fpga delay max> + ext_tco = 4ns = 4.5ns input min = <fpga2ext delay min> + ext_tco( 或 者 ext_mintco) = 2ns + 0.5ns = 2.5ns output max = <fpga2ext delay max> + ext_tsu = 4ns + 0.5ns = 4.5ns output min = < fpga2ext delay min > - ext_th = 2ns - 0.5ns = 1.5ns 接 下 来, 让 我 们 来 认 识 一 下 set_clock_latency 约 束 命 令 : set_clock_latency 的 约 束 行 为 不 是 为 某 个 时 钟 设 置 延 迟, 而 是 告 诉 TimeQuest 有 关 外 边 时 钟 信 号 的 延 迟 信 息 虽 然 说 set_clock_latency 约 束 命 令, 内 外 模 型 的 时 钟 潜 伏 它 都 可 以 设 置, 不 过 TimeQuest 会 无 视 set_clock_latency 对 内 部 模 型 的 一 切 影 响, 所 以 说 它 是 半 残 废 的 约 束 命 令, 具 体 实 例 往 后 再 谈 不 管 怎 么 说, 先 打 开 实 验 七, 然 后 建 立 和 实 验 七 同 名 的.sdc 文 件, 然 后 将 下 列 信 息 贴 上 : 181
183 黑 金 动 力 社 区 #************************************************************** # Create Clock #************************************************************** create_clock -name {fpga_clk} -period waveform { } [get_ports {CLK}] create_clock -name {ext1_clk} -period waveform { } create_clock -name {ext2_clk} -period waveform { } #************************************************************** # Set Input Delay #************************************************************** set_input_delay -add_delay -max -clock [get_clocks {ext1_clk}] [get_ports {Din[0]}] set_input_delay -add_delay -min -clock [get_clocks {ext1_clk}] [get_ports {Din[0]}] set_input_delay -add_delay -max -clock [get_clocks {ext1_clk}] [get_ports {Din[1]}] set_input_delay -add_delay -min -clock [get_clocks {ext1_clk}] [get_ports {Din[1]}] set_input_delay -add_delay -max -clock [get_clocks {ext1_clk}] [get_ports {Din[2]}] set_input_delay -add_delay -min -clock [get_clocks {ext1_clk}] [get_ports {Din[2]}] set_input_delay -add_delay -max -clock [get_clocks {ext1_clk}] [get_ports {Din[3]}] set_input_delay -add_delay -min -clock [get_clocks {ext1_clk}] [get_ports {Din[3]}] #************************************************************** # Set Output Delay #************************************************************** set_output_delay -add_delay -max -clock [get_clocks {ext2_clk}] [get_ports {Dout[0]}] set_output_delay -add_delay -min -clock [get_clocks {ext2_clk}] [get_ports {Dout[0]}] set_output_delay -add_delay -max -clock [get_clocks {ext2_clk}] [get_ports {Dout[1]}] set_output_delay -add_delay -min -clock [get_clocks {ext2_clk}] [get_ports {Dout[1]}] set_output_delay -add_delay -max -clock [get_clocks {ext2_clk}] [get_ports {Dout[2]}] set_output_delay -add_delay -min -clock [get_clocks {ext2_clk}] [get_ports {Dout[2]}] set_output_delay -add_delay -max -clock [get_clocks {ext2_clk}] [get_ports {Dout[3]}] set_output_delay -add_delay -min -clock [get_clocks {ext2_clk}] [get_ports {Dout[3]}] 首 先 声 明 3 个 create clock, 亦 即 告 诉 TimeQuest 有 :100Mhz 的 fpga_clk 对 应 CLK 口, 还 有 100Mhz 虚 拟 时 钟 的 ext1_clk 与 ext2_clk 至 于 set input delay 与 set input delay 是 针 对 Din 与 Dout 的 延 迟 声 明 内 容 的 大 体 上 与 实 验 六 差 不 多 一 样, 不 过 区 别 的 只 是 input/output delay 不 考 虑 各 个 时 钟 信 号 的 时 间 差 (clock skew)
184 图 手 动 建 立 Best Case 网 表 需 要 编 译 的 同 学 先 编 译 一 下 实 验, 然 后 打 开 TimeQuest 手 动 声 明 Best Case 网 表, 如 图 所 示 接 着 连 打 Read SDC File 与 Update Timing Netlist. 图 Set_Clock_Latency 的 界 面 从 Constraint 的 菜 单 下 打 开 set clock latency 的 界 面, 如 图 所 示 Latency type 下 的 Early,Late 还 有 Both, 就 如 上 述 解 释 的 那 样,early 对 应 min,late 对 应 max, 而 both 对 应 min/max 或 者 early/late 至 于 左 边 的 Rise/Fall 与 Both 不 用 鸟 它, 我 们 现 在 用 不 到, 总 之 默 认 下 Both 就 是 了 Targets 是 指 对 应 的 时 钟 信 号, 然 而 delay value 是 指 该 对 应 时 钟 信 号 的 延 迟 值 同 学 只 要 根 据 图 假 想 实 验 的 信 息 输 入 即 可, 亦 即 ext1_clk 延 迟 1ns,fpga_clk 延 迟 2ns, ext2_clk 延 迟 3ns... 结 果 如 图 所 示 完 后, 下 面 的 代 码 就 会 自 动 添 加 在 sdc 文 件 183
185 黑 金 动 力 社 区 中 : #************************************************************** # Set Clock Latency #************************************************************** set_clock_latency -source set_clock_latency -source set_clock_latency -source [get_clocks {fpga_clk}] [get_clocks {ext1_clk}] [get_clocks {ext2_clk}] 接 下 来 是 习 惯 性 的 双 击 Report Timing Netlist 更 新 网 表, 然 后 又 习 惯 性 的 双 击 Report Timing 调 出 全 部 8 对 节 点 的 Setup 时 序 报 告, 与 Hold 时 序 报 告, 接 着 再 比 较 一 下 实 验 六 的 8 对 节 点 Setup 时 序 报 告 与 Hold 时 序 报 告 图 实 验 七 ( 左 ) 与 实 验 六 ( 右 )8 对 节 点 的 setup 时 序 报 告 除 了 节 点 rdata~dout 有 相 同 的 setup 余 量 之 外, 似 乎 Din~rData 的 setup 余 量 报 告 是 不 同 除 此 之 外 实 验 六 与 实 验 七 的 clock skew 也 有 明 显 的 差 别, 大 约 是 2ns, 不 过 先 抛 开 clock skew 不 讲... 为 什 么 Din~rData 会 的 建 立 余 量 会 有 所 不 同 呢, 差 别 大 约 是 0.5~0.8ns, 其 中 关 键 就 是 Data Delay 笔 者 尝 试 展 开 节 点 Din[0]~rData[0] 的 详 细 来 看 看 : 图 实 验 七 ( 左 ) 与 实 验 六 ( 右 ) 节 点 Din[0]~rData[0] 详 细 的 setup 时 序 报 告 左 图 中 的 clock network delay 有 1ns 的 延 迟, 这 就 是 我 们 为 ext1_clk1 设 置 1ns delay both 的 结 果, 换 之 右 图 中 的 clock network delay 则 为 0ns 再 接 者 左 图 Din[0] 的 输 入 延 迟 是 4.5ns, 而 右 图 的 Din[0] 是 3.5ns... 这 个 信 息 告 诉 我 们, 实 验 七 ( 左 ) 不 将 clock skew 计 算 在 input delay 中, 而 另 用 set_clock_latency 命 令 告 诉 TimeQuest ext1_clk 有 1ns 的 延 迟, 换 之 实 验 六 则 不 同 继 续 看 左 图 关 键 的 Dout[0] datain 延 迟 是 1.222ns, 右 图 则 是 1.971, 相 差 大 约 是 0.7ns,
186 也 就 是 这 个 原 因, 导 致 实 验 七 ( 节 点 rdin~rdata) 的 setup 余 量 比 实 验 六 的 setup 余 量 还 要 小 的 原 因, 亦 即 造 就 Data Delay 的 不 同, 至 于 为 什 么 会 多 出 0.7ns 呢? 笔 者 猜 想 应 该 是 使 用 set_clock_latency 的 代 价, 又 或 者 什 么 的... 真 正 的 答 案 也 只 有 TimeQuest 自 己 知 道 吧!? 接 着 把 焦 点 转 向 Data Required Path 中, 稍 微 注 意 左 图 的 clock path 延 迟 是 3.473ns, 而 右 图 的 clock path 是 1.473ns, 两 者 相 差 了 2ns... 这 个 信 息 告 诉 我 们 1.473ns 是 fpga_clk 内 部 的 路 径 延 迟, 换 之 相 差 的 2ns 是 实 验 七 用 set_clock_latency 告 诉 TimeQuest 有 关 fpga_clk 外 部 有 2ns 延 迟 的 原 因 经 过 上 述 分 析 以 后, 我 们 可 以 得 知 实 验 七 与 实 验 六 除 了 Dout[0] datain 有 0.7ns 的 差 别 以 外, 其 他 结 果 经 过 计 算 以 后 都 相 互 符 合 说 着 说 着 我 们 将 实 验 七 与 实 验 六 的 hold 时 序 报 告 也 来 比 较 一 下 看 看 : 图 实 验 七 ( 左 ) 与 实 验 六 ( 右 )8 对 节 点 点 的 hold 时 序 报 告 从 图 将 实 验 七 与 实 验 六 的 hold 余 量 比 较 一 下, 还 是 节 点 Din~rData 在 搞 怪, 用 狗 眼 一 照 又 是 Data Delay 有 问 题, 我 们 尝 试 展 开 节 点 Din[0]~rData[0] 的 详 细 信 息 看 看 : 图 实 验 七 ( 左 ) 与 实 验 六 ( 右 ) 节 点 Din[0]~rData[0] 详 细 的 hold 时 序 报 告 图 左 图 中 的 clock network delay 有 1ns, 换 之 右 图 的 clock network delay 是 零 值, 这 事 情 告 诉 我 们, 实 验 七 用 set_clock_latency 告 诉 TimeQuest ext1_clk 有 1ns 的 延 迟 接 着 注 意 左 图 的 Din[0] 输 入 延 迟 有 2.5ns, 而 右 图 的 Din[0] 输 入 延 迟 是 1.5ns, 这 种 现 象 原 来 是 实 验 七 没 有 将 clock skew 加 入 set input delay 公 式 里, 而 实 验 六 则 相 反 再 者 就 是 最 可 疑 的 Dout[0]datain 延 迟, 左 图 是 1.222ns 而 右 图 是 1.971ns, 之 间 的 相 差 有 0.7ns 左 右, 笔 者 猜 这 是 有 使 用 set_clock_latency 与 没 有 使 用 的 差 别 吧? 也 就 是 这 个 0.7ns 的 差 别, 导 致 建 立 余 量 ( 节 点 Din~rData) 不 相 等 185
187 黑 金 动 力 社 区 接 着 请 注 意 Data Required Path 中 的 clock path 延 迟, 左 图 是 3.473ns, 右 图 是 1.473ns, 很 明 显 左 图 大 右 图 2ns, 造 就 这 个 差 别 的 原 因 绝 对 是 实 验 七 用 set_clock_latency 告 诉 TimeQuest 那 fpga_clk 有 2ns 的 延 迟 至 于 导 致 两 个 实 验 的 节 点 (Din~rData) 的 保 持 余 量 不 同 的 凶 手, 估 计 就 是 那 个 充 满 阴 谋 的 Dout[0]datain... 为 什 么 它 要 犯 罪 呢? 应 该 是 吃 set_clock_latency 太 多 了 吧?/ 图 实 验 七 ( 左 ) 与 实 验 六 ( 右 ) 节 点 rdata[0]~dout[0] 详 细 的 setup 时 序 报 告 我 们 也 顺 便 分 析 一 下 有 关 节 点 rdata[0]~dout[0] 的 setup 时 序 报 告 首 先 注 目 一 下 Data Arrival Path 中 的 clock network delay, 左 图 是 3.473ns, 而 右 图 是 1.473ns, 相 差 是 2ns, 其 中 的 原 因 是 实 验 七 用 set_clock_latency 告 诉 TimeQuest,fpga_clk 有 2ns 的 缘 故, 换 之 实 验 六 则 没 有 再 者 是 Data Required Path 中 的 clock network delay, 左 图 是 3ns, 右 图 则 是 0ns, 有 3ns 的 区 别, 这 是 因 为 实 验 七 用 set_clock_latency 告 诉 TimeQuest,ext2_clk 有 3ns 的 延 迟, 反 之 实 验 六 则 没 有 接 下 来 就 是 Dout[0] 的 输 出 延 迟, 左 图 是 4.5ns, 右 图 是 3.5ns, 其 中 的 1ns 相 差 是 因 为 实 验 六 有 将 clock skew 计 算 在 set output delay 公 式 中, 换 之 实 验 七 则 没 有 图 实 验 七 ( 左 ) 与 实 验 六 ( 右 ) 节 点 rdata[0]~dout[0] 详 细 的 hold 时 序 报 告 图 是 节 点 rdata[0]~dout[0] 的 详 细 hold 时 序 报 告, 首 先 把 注 意 力 焦 距 在 Data Arrival Path 的 clock network delay, 左 图 是 3.473ns, 右 图 是 1.473ns, 它 们 有 2ns 的 相 差, 这 是 因 为 实 验 七 用 set_clock_latency 告 诉 TimeQuest 该 fpga_clk 有 2ns 的 延 迟, 换 之 实 验 六 则 没 有 接 着 从 Data Required Path 中 可 以 得 知, 左 图 的 clock network delay 有 3ns 的 延 迟, 而 右 图 是 零 值, 这 是 因 为 实 验 七 用 set_clock_latency 告 诉 TimeQuest 该 ext2_clk 有 3ns 的 延 迟 至 于 Dout[0] 的 输 出 延 迟, 左 图 是 1.5ns, 而 右 图 是 0.5ns, 其 中 的 1ns 差 别 是 实 验 六 将 clock skew 计 算 在 set output delay 公 式 中, 换 之 实 验 七 则 没 有
188 从 这 个 实 验 中 我 们 可 以 这 样 结 论 : 在 计 算 set_input_delay 与 set_output_delay 的 时 候, 我 们 可 以 除 掉 clock skew, 取 而 代 之 用 set_clock_latency 约 束 命 令 告 诉 TimeQuest 关 于 外 部 模 型 中 到 底 什 么 时 钟 信 号, 然 而 又 有 多 少 的 延 迟 其 中 时 钟 信 号 的 产 生 源 没 有 抖 动, 又 或 者 说 抖 动 的 early 与 late 值 (both) 作 为 前 提 此 外, 透 过 set_clock_latency 约 束 命 令, 在 Data Arrival Path 与 Data Required Path 的 信 息 中 clock network delay 也 会 显 示 对 应 的 延 迟 187
189 黑 金 动 力 社 区 6.2 物 理 时 钟 2 让 我 们 继 续 时 间 抖 动 的 问 题 吧... 在 上 一 个 章 节 里 我 们 使 用 了 set_clock_latency 约 束 命 令 告 诉 TimeQuest 有 关 外 部 时 钟 的 各 种 延 迟 信 息, 然 而 这 些 时 钟 虽 然 有 延 迟 但 是 没 有 发 生 抖 动, 结 果 造 就 delay both 笔 者 在 前 面 讲 过, 时 间 抖 动 最 让 人 头 疼 的 问 题 既 是 时 钟 信 号 不 像 数 据 信 号 有 多 位 宽, delay min 或 者 delay max 都 有 对 应 的 数 据 位 而 抖 动 是 造 就 单 个 时 钟 信 号 同 时 拥 有 delay min 与 delay max, 单 是 源 寄 存 器 的 时 钟 信 号 抖 来 抖 去 已 经 够 烦 了, 同 学 们 请 想 象 一 下... 如 果 源 时 钟 寄 存 器 与 目 的 寄 存 器 的 时 钟 信 号 同 时 抖 来 抖 去, 会 是 什 么 样 的 情 形 呢? 不 过 幸 运 的 是,set_clock_latency 约 束 命 令 可 以 简 化 这 个 难 题... 实 验 八 时 钟 抖 动 与 set_clock_latency 图 fpga_clk 与 ext_clk 时 钟 产 生 源 发 生 抖 动 首 先 我 们 必 须 知 道, 时 钟 抖 动 的 max 对 应 late 而 min 对 应 early, 此 外 max 针 对 启 动 沿, 也 针 对 建 立 关 系,min 针 对 下 一 个 启 动 沿, 也 针 对 保 持 关 系 从 图 中 我 们 可 以 知 道 ext1_clk,fpga_clk 与 ext2_clk 的 产 生 源 都 有 min 1ns 与 max 2ns 的 抖 动, 时 钟 抖 动 再 加 上 原 本 的 路 径 延 迟 : ext1_clk delay min : 1ns + 1ns = 2ns ext1_clk delay max : 1ns + 2ns = 3ns fpga_clk delay min : 2ns + 1ns = 3ns fpga_clk delay max : 2ns + 2ns = 4ns ext2_clk delay min : 3ns + 1ns = 4ns ext2_clk delay max : 3ns + 2ns = 5ns
190 接 着 再 计 算 一 下 不 包 括 clock skew 的 input/output delay: input max = <ext2fpga delay max> + ext_tco = 4ns = 4.5ns input min = <fpga2ext delay min> + ext_tco( 或 者 ext_mintco) = 2ns + 0.5ns = 2.5ns output max = <fpga2ext delay max> + ext_tsu = 4ns + 0.5ns = 4.5ns output min = < fpga2ext delay min > - ext_th = 2ns - 0.5ns = 1.5ns 接 着 再 打 开 实 验 八, 建 立 同 名 的 sdc 文 件, 然 后 将 下 列 代 码 添 加 进 去, 而 上 述 代 码 的 意 义 基 本 上 与 实 验 七 一 样, 不 要 忘 了 网 表 是 create_timing_netlist -model fast #************************************************************** # Create Clock #************************************************************** create_clock -name {fpga_clk} -period waveform { } [get_ports {CLK}] create_clock -name {ext1_clk} -period waveform { } create_clock -name {ext2_clk} -period waveform { } #************************************************************** # Set Input Delay #************************************************************** set_input_delay -add_delay -max -clock [get_clocks {ext1_clk}] [get_ports {Din[0]}] set_input_delay -add_delay -min -clock [get_clocks {ext1_clk}] [get_ports {Din[0]}] set_input_delay -add_delay -max -clock [get_clocks {ext1_clk}] [get_ports {Din[1]}] set_input_delay -add_delay -min -clock [get_clocks {ext1_clk}] [get_ports {Din[1]}] set_input_delay -add_delay -max -clock [get_clocks {ext1_clk}] [get_ports {Din[2]}] set_input_delay -add_delay -min -clock [get_clocks {ext1_clk}] [get_ports {Din[2]}] set_input_delay -add_delay -max -clock [get_clocks {ext1_clk}] [get_ports {Din[3]}] set_input_delay -add_delay -min -clock [get_clocks {ext1_clk}] [get_ports {Din[3]}] #************************************************************** # Set Output Delay 189
191 黑 金 动 力 社 区 #************************************************************** set_output_delay -add_delay -max -clock [get_clocks {ext2_clk}] [get_ports {Dout[0]}] set_output_delay -add_delay -min -clock [get_clocks {ext2_clk}] [get_ports {Dout[0]}] set_output_delay -add_delay -max -clock [get_clocks {ext2_clk}] [get_ports {Dout[1]}] set_output_delay -add_delay -min -clock [get_clocks {ext2_clk}] [get_ports {Dout[1]}] set_output_delay -add_delay -max -clock [get_clocks {ext2_clk}] [get_ports {Dout[2]}] set_output_delay -add_delay -min -clock [get_clocks {ext2_clk}] [get_ports {Dout[2]}] set_output_delay -add_delay -max -clock [get_clocks {ext2_clk}] [get_ports {Dout[3]}] set_output_delay -add_delay -min -clock [get_clocks {ext2_clk}] [get_ports {Dout[3]}] 图 ext1_clk 输 入 2ns 延 迟 的 early 与 3ns 延 迟 的 late 图 fpga_clk 输 入 3ns 延 迟 的 early 与 4ns 延 迟 的 late
192 图 ext2_clk 输 入 4ns 延 迟 的 early 与 5ns 延 迟 的 late 接 着 打 开 set clock latency 界 面, 按 图 6.2.2~4 的 步 骤 输 入 相 对 应 的 约 束 #************************************************************** # Set Clock Latency #************************************************************** set_clock_latency -source -late [get_clocks {fpga_clk}] set_clock_latency -source -early [get_clocks {fpga_clk}] set_clock_latency -source -late [get_clocks {ext1_clk}] set_clock_latency -source -early [get_clocks {ext1_clk}] set_clock_latency -source -late [get_clocks {ext2_clk}] set_clock_latency -source -early [get_clocks {ext2_clk}] 完 后 该 sdc 文 件 会 自 动 添 加 上 述 的 代 码 事 实 上, 透 过 set_clock_latency 将 各 个 外 部 时 钟 信 号 的 抖 动 信 息 告 诉 TimeQuest 是 一 种 吃 快 餐, 贪 便 利 的 方 法... 因 为 我 们 对 整 个 时 序 分 析 的 过 程 是 100% 的 瞎 子, 完 全 不 知 道 里 边 发 生 什 么 事 虽 然 这 种 做 法 没 有 不 妥, 还 不 如 说 非 常 好 用, 可 是 对 于 笔 者 这 种 喜 欢 吃 妈 妈 料 理 的 孩 子 而 言, 心 里 总 是 不 舒 服... 笔 者 编 辑 这 本 笔 记 的 初 衷 不 是 解 释 TimeQuest 的 用 法, 而 是 思 考 它, 探 讨 它... 打 从 骨 子 想 知 道 它 是 什 么 样 的 一 个 东 西 为 此, 笔 者 需 要 更 进 一 步 思 考 时 钟 抖 动 如 何 影 响 clock skew, 然 而 这 种 情 况 下 的 clock skew 又 会 得 到 怎 样 的 等 价 图 ( 建 立 关 系 与 保 持 关 系 ) 191
193 黑 金 动 力 社 区 6.3 物 理 时 钟 3 时 钟 抖 动 之 所 以 让 人 觉 得 忧 郁, 因 为 1 个 时 钟 信 号 抖 动 就 会 产 生 2 个 可 能 性 的 时 序,2 个 时 钟 信 号 同 时 抖 动, 就 会 产 生 4 个 可 能 性 的 时 序, 恰 恰 好 TimeQuest 模 型 是 由 两 个 寄 存 器, 亦 即 两 个 时 钟 信 号 组 成 所 以 说, 用 一 般 的 方 法 理 解 时 钟 抖 动 会 耗 死 自 己 不 偿 命 的, 不 过 TimeQuest 有 用 例 外 的 手 段 去 解 决 它... 至 于 是 什 么 样 的 手 段 呢? 同 学 们 一 定 很 好 奇 吧!? 图 时 钟 抖 动 的 外 部 模 型 假 设 我 们 有 一 个 fpga2ic 的 外 部 模 型, 如 图 所 示 同 是 100Mhz 频 率 的 fpga_clk 与 ext_clk 都 有 min 1ns 与 max 2ns 的 抖 动 延 迟 我 们 先 假 设 fpga2ext 的 D[0] 有 2ns 的 延 迟, 然 后 fpga 向 ic 发 送 10ns 周 期 的 D[0] 数 据... 图 fpga_clk min delay & ext_clk min delay( 左 ) 与 fpga_clk min delay & ext_clk max delay( 右 ) 的 第 1,2 种 可 能 性 如 图 所 示, 首 先 会 产 生 前 2 种 可 能 性, 亦 即 fpga_clk min & ext_clk min 与 fpga_clk min & ext_clk max, 然 而 左 图 有 8ns 的 建 立 时 间 与 2ns 的 保 持 时 间, 至 于 右 图 有 9ns 的 建 立 时 间 与 1ns 的 保 持 时 间
194 图 fpga_clk max delay & ext_clk min delay( 左 ) 与 fpga_clk max delay & ext_clk max delay( 右 ) 的 第 3,4 种 可 能 性 如 图 所 示, 接 着 会 产 生 后 2 两 种 可 能 性, 亦 即 fpga_clk max & ext_clk min 与 fpga_clk max & ext_clk max, 而 左 图 有 7ns 的 建 立 时 间 与 3ns 的 保 持 时 间, 右 图 则 有 8ns 的 建 立 时 间 与 2ns 的 保 持 时 间 图 都 有 可 能 出 现 这 4 种 时 序, 那 么 我 们 又 该 选 择 哪 一 种 可 能 性 呢? 无 论 怎 么 选 择, 哪 一 种 可 能 性 都 是 真 确 的, 同 学 们 是 不 是 觉 得 很 忧 郁 呢? 呵 呵, 笔 者 也 是... 不 过 我 们 可 以 这 样 想 : 哪 一 种 可 能 性 会 产 生 最 小 的 建 立 时 间? 又 哪 一 种 可 能 性 会 产 生 最 小 的 保 持 时 间? 图 fpga_clk max delay & ext_clk min delay( 左 ) 与 fpga_clk min delay & ext_clk max delay( 右 ) 的 可 能 性 不 用 想 答 案 是 非 常 明 显 的, 亦 即 fpga_clk max & ext_clk min 会 产 生 最 小 的 建 立 时 间, 简 称 S.L.D.E 可 能 性 (source_reg_clk late,destination_reg_clk early) 换 之,fpga_clk min & ext_clk max 会 产 生 最 小 的 保 持 时 间, 简 称 S.E.D.L 可 能 性 (source_reg_clk early, destination_reg_clk late) 然 后 我 们 可 以 无 视 余 下 的 可 能 性 接 着 让 我 们 来 计 算 一 下 slde 与 sedl 的 clock skew: 193
195 黑 金 动 力 社 区 clock skew = < destination reg clk delay> - < source reg clk delay > SLDE clock skew = < destination reg clk early/min delay > - < source reg clk late/max delay > = < ext_clk min delay > - < fpga_clk max delay > = 1ns - 2ns = -1ns clock skew = < destination reg clk delay> - < source reg clk delay > SEDL clock skew = < destination reg clk late/max delay > - < source reg clk early/min delay > = < ext_clk max delay > - < fpga_clk min delay > = 2ns -1ns = 1ns 图 SLDE clock skew( 左 ) 与 SEDL clock skew 对 数 据 的 影 响 我 们 知 道 clock skew 的 定 义 就 是 将 时 钟 差 反 映 在 数 据 的 身 上, 然 而 SLDE 时 间 差 是 -1ns, 则 SEDL 时 间 差 是 1ns 如 图 的 左 图 所 示, 原 本 起 跑 线 是 2ns 的 数 据, 受 到 -1ns 时 间 差 的 影 响, 然 后 移 动 到 3ns 的 位 置, 最 终 得 到 7ns 的 建 立 时 间 与 3ns 的 保 持 时 间 换 之, 左 图 的 数 据, 原 本 也 是 在 2ns 的 起 跑 线, 不 过 受 1ns 时 间 差 的 影 响, 然 后 移 动 到 1ns 的 位 置, 结 果 造 就 9ns 的 建 立 时 间 与 1ns 的 保 持 时 间 同 学 们 稍 微 比 较 一 下 图 与 图 的 建 立 时 间 与 保 持 时 间 看 看, 是 不 是 一 样?
196 图 SLDE clock skew 与 SEDL clock skew, 建 立 关 系 与 保 持 关 系 的 等 价 图 此 外 我 们 也 可 以 说 SLDE 时 间 差 针 对 建 立 时 间, 针 对 建 立 关 系, 针 对 启 动 沿 ; 换 之 SEDL 时 间 差 针 对 保 持 时 间, 针 对 保 持 关 系, 针 对 下 一 个 启 动 沿 如 图 所 示, 数 据 D[0] 有 2ns 的 延 迟... 原 本 位 置 在 2ns 的 启 动 沿, 不 小 心 被 -1ns 的 SLDE 时 间 差 推 了 一 把, 然 后 仆 街 在 3ns 的 位 置, 最 终 导 致 7ns 的 建 立 关 系 换 之, 原 本 位 置 在 12ns 的 下 一 个 启 动 沿, 不 小 心 撞 到 1ns 的 SEDL 时 间 差, 然 后 跌 在 11ns 的 位 置, 最 终 导 致 -1ns 的 保 持 关 系 图 多 位 宽,fpga_clk max delay & ext_clk min delay( 左 ) 与 fpga_clk min delay & ext_clk max delay( 右 ) 的 可 能 性 图 是 多 位 宽 数 据, 其 中 D[0] 有 2ns 的 延 迟,D[1] 有 3ns 的 延 迟,D[2] 有 4ns 的 延 迟... 接 着 fpga_clk 与 ext_clk 同 时 抖 动 会 产 生 4 种 可 能 性 的 时 序, 不 过 根 据 上 述 的 理 解,fpga_clk max & ext_clk min 可 能 性 数 据 D[2] 会 有 最 小 的 建 立 时 间, 如 左 图 所 示 是 5ns; 反 之 fpga_clk min & ext_clk max 可 能 性 数 据 D[1] 会 有 最 小 的 保 持 时 间, 如 右 图 所 示 是 1ns 195
197 黑 金 动 力 社 区 fpga_clk max & ext_clk min 可 能 性 又 叫 SLDE, 其 中 的 时 间 差 称 为 SLDE clock skew; 换 之,fpga_clk min & ext_clk max 可 能 性 又 叫 SEDL, 其 中 的 时 间 差 称 为 SEDL clock skew 根 据 图 中 信 息,SLDE 时 间 差 是 -1ns, 而 SEDL 时 间 差 有 1ns 图 SLDE 时 间 差 ( 左 ),SEDL 时 间 差 ( 右 ) 图 的 数 据 经 过 各 种 可 能 性 的 时 间 差 相 互 作 用 以 后, 结 果 会 是 如 图 所 示 左 图 中 的 fpga_clk 与 ext_clk 不 再 跳 来 跳 去, 至 于 每 一 位 数 据 D 受 -1ns 的 SLDE 时 间 差 影 响 以 后, 都 向 右 移 动 1ns; 换 之, 右 图 的 每 一 位 数 据 D 受 1ns 的 SEDL 时 间 差 影 响 以 后, 都 向 左 移 动 1ns 不 过 不 管 怎 么 样, 图 与 图 的 每 一 位 数 据 D 都 有 同 样 的 建 立 时 间 与 保 持 时 间 图 多 位 宽,SLDE clock skew 与 SEDL clock skew, 建 立 关 系 与 保 持 关 系 的 等 价 图 同 样 我 们 知 道 SLDE 时 间 差 针 对 启 动 沿, 针 对 建 立 时 间, 针 对 建 立 关 系 ; 而 SEDL 时
198 间 差 则 针 对 下 一 个 启 动 沿, 针 对 保 持 时 间, 针 对 保 持 关 系 此 外, 我 们 也 知 道 数 据 的 delay max 也 针 对 启 动 沿, 数 据 的 delay min 也 针 对 下 一 个 启 动 沿 如 图 所 示, 原 本 已 经 受 数 据 delay max 延 迟 的 启 动 沿, 再 加 上 -1ns SLDE 时 间 差 的 影 响, 最 终 落 在 5ns 的 位 置, 从 而 取 得 5ns 的 建 立 关 系 至 于 下 一 个 启 动 沿 它 先 被 2ns 的 delay min 影 响, 然 后 又 受 到 1ns SEDL 时 间 差 的 影 响, 下 一 个 启 动 沿 最 终 落 在 11ns 的 位 置, 从 而 取 得 -1ns 的 保 持 关 系 我 们 知 道 数 据 的 delay max 影 响 启 动 沿, 此 外 SLDE clock skew 也 是 影 响 启 动 沿, 因 此 output max 可 以 这 样 更 动 : output max = < fpga2ext delay max > - [< dest. reg clock delay min > - < source reg clock delay max >] = < fpga2ext delay max > - [ < ext_clk delay min > - < fpga_clk delay max > ] = < fgap2ext delay max > - < SLDE clock skew > = < fpga2ext delay max > - < SLDE clock skew > + ext_tsu 至 于 数 据 的 delay min 影 响 下 一 个 启 动 沿, 而 SEDL clock skew 同 是 影 响 下 一 个 启 动 沿, 因 此 output min 可 以 这 样 更 动 : output min = < fpga2ext delay min > - [< dest. reg clock delay max > - < source reg clock delay min >] = < fpga2ext delay min > - [ < ext_clk delay max > - < fpga_clk delay min > ] = < fgap2ext delay min > - < SEDL clock skew > = < fpga2ext delay min > - < SEDL clock skew > - ext_th 接 下 来, 我 们 让 我 们 来 理 解 一 下, 如 果 外 部 模 型 是 ic2fpga 的 情 况, 在 两 个 时 钟 信 号 同 时 抖 动 的 话, 到 底 会 发 生 什 么 不 一 样 的 情 形 呢? =================================================================== 图 ic2fpga 的 外 部 模 型 图 是 ic2fpga 的 外 部 模 型, 其 中 ext_clk 和 fpga_clk 皆 为 100Mhz, 两 者 的 产 生 源 都 有 min 1ns 与 max 2ns 的 抖 动 然 后 我 们 也 假 设 一 下 D[0] 有 2ns 延 迟,D[1] 有 3ns, D[2] 有 4ns 延 迟 197
199 黑 金 动 力 社 区 图 多 位 宽,ext_clk max delay & fpga_clk min delay( 左 ) 与 ext_clk min delay & fpga_clk max delay( 右 ) 的 可 能 性 同 学 们 有 没 有 觉 得 图 很 眼 熟, 没 错 它 是 图 的 换 皮, 只 是 稍 微 调 动 一 下 fpga 与 ic 之 间 的 角 色 位 置 根 据 原 理,2 个 时 钟 信 号 的 抖 动 会 产 生 4 个 可 能 性 的 时 序 图, 不 过 从 图 的 左 图 中 可 以 发 现 ext_clk max delay & fpga_clk min delay 可 能 性 的 数 据 D[2] 拥 有 最 小 的 建 立 时 间 ; 换 之,ext_clk min delay & fpga_clk max delay 可 能 性 的 数 据 D[0] 拥 有 最 小 的 保 持 时 间 其 中 SLDE clock skew 的 取 值 是 (ext_clk max delay & fpga_clk min delay 的 时 间 差 ): clock skew = < destination reg clk delay> - < source reg clk delay > SLDE clock skew = < destination reg clk early/min delay > - < source reg clk late/max delay > = < fpga_clk min delay > - < ext_clk max delay > = 1ns - 2ns = -1ns 而 SLDE clock skew 的 取 值 是 (ext_clk min delay & fpga_clk max delay 的 时 间 差 ): clock skew = < destination reg clk delay> - < source reg clk delay > SEDL clock skew = < destination reg clk late/max delay > - < source reg clk early/min delay > = < fpga_clk max delay > - < ext_clk min delay > = 2ns -1ns = 1ns 然 后 将 SLDE clock skew 与 SEDL clock skew 加 入 图
200 图 SLDE 时 间 差 ( 左 ),SEDL 时 间 差 ( 右 ) 图 的 ext_clk 与 fpga_clk 不 再 跳 来 跳 去, 换 之 左 图 中 的 数 据 D, 皆 被 -1ns 的 SLDE 时 间 差 向 右 推 一 把 而 右 图 中 的 数 据 D, 皆 被 1ns 的 SEDL 时 间 差 向 左 拉 一 把 完 后 可 以 发 现 图 与 图 的 各 个 数 据 都 有 相 同 的 建 立 时 间 与 保 持 时 间 图 多 位 宽,SLDE clock skew 与 SEDL clock skew, 建 立 关 系 与 保 持 关 系 的 等 价 图 至 于 图 是 建 立 关 系 与 保 持 关 系 的 等 价 图... 其 中 启 动 沿 原 先 受 4ns 数 据 delay max 的 延 迟 影 响, 然 后 又 被 -1ns 的 SLDE 时 间 差 推 一 把, 结 果 落 在 6ns 的 位 置, 最 终 取 得 5ns 的 建 立 关 系 至 于 下 一 个 启 动 沿, 原 先 也 是 被 2ns 数 据 delay min 的 影 响, 接 着 它 不 小 心 被 1ns 的 SLDE 时 间 差 绊 了 一 跤, 最 终 落 在 11ns 的 位 置, 结 果 也 造 就 -1ns 的 保 持 关 系 199
201 黑 金 动 力 社 区 我 们 知 道 数 据 的 delay max 影 响 启 动 沿, 此 外 SLDE clock skew 也 是 影 响 启 动 沿, 因 此 input max 可 以 这 样 更 动 : input max = < ext2fpga delay max > - [< dest. reg clock delay min > - < source reg clock delay max >] = < ext2fpga delay max > - [ < fpga_clk delay min > - < ext_clk delay max > ] = < ext2fpga delay max > - < SLDE clock skew > = < ext2fpga delay max > - < SLDE clock skew > + ext_tco 至 于 数 据 的 delay min 影 响 下 一 个 启 动 沿, 而 SEDL clock skew 同 是 影 响 下 一 个 启 动 沿, 因 此 input min 可 以 这 样 更 动 : input min = < ext2fpga delay min > - [< dest. reg clock delay max > - < source reg clock delay min >] = < ext2fpga delay min > - [ < fpga_clk delay max > - < ext_clk delay min > ] = < ext2fpga delay min > - < SEDL clock skew > = < ext2fpga delay min > - < SEDL clock skew > + ext_tco // 等 价 // = < ext2fpga delay min > - < SEDL clock skew > + ext_mintco =================================================================== 当 我 们 成 功 推 导 出 加 入 时 间 抖 动 的 input/output min/max 公 式 以 后, 我 们 可 以 用 set_input_delay 与 set_output_ delay 约 束 命 令, 不 仅 将 数 据 的 延 迟, 还 有 寄 存 器 特 性, 甚 至 是 抖 动 的 时 间 差, 包 裹 成 外 包 资 料... 而 不 是 用 set_clock_latency 约 束 命 令 告 诉 TimeQuest 有 关 时 间 抖 动 的 信 息 实 验 九 时 钟 抖 动 与 input/output 约 束 命 令 图 假 想 实 验 的 外 部 模 型 图 的 假 想 实 验 基 本 上 和 实 验 八 一 样, 不 过 这 一 回 我 们 不 再 使 用 set_clock_latency 将 时 钟 抖 动 的 信 息 告 诉 TimeQuest, 而 是 直 接 透 过 input/output 公 式 将 时 钟 抖 动 包 裹 在 一 次 成 为 外 部 资 料 首 先 从 图 取 出 各 种 延 迟 信 息 : ext1_clk delay min : 1ns + 1ns = 2ns
202 ext1_clk delay max : 1ns + 2ns = 3ns fpga_clk delay min : 2ns + 1ns = 3ns fpga_clk delay max : 2ns + 2ns = 4ns ext2_clk delay min : 3ns + 1ns = 4ns ext2_clk delay max : 3ns + 2ns = 5ns D[0..3] delay min : 2ns D[0..3] delay max : 4ns 先 计 算 input min/max 的 结 果 : input max = < ext2fpga delay max > - [< dest. reg clock delay min > - < source reg clock delay max >] = < ext2fpga delay max > - [ < fpga_clk delay min > - < ext1_clk delay max > ] = < ext2fpga delay max > - < SLDE clock skew > = < ext2fpga delay max > - < SLDE clock skew > + ext_tco = 4ns - < 3ns - 3ns > + 0.5ns = 4.5ns input min = < ext2fpga delay min > - [< dest. reg clock delay max > - < source reg clock delay min >] = < ext2fpga delay min > - [ < fpga_clk delay max > - < ext1_clk delay min > ] = < ext2fpga delay min > - < SEDL clock skew > = < ext2fpga delay min > - < SEDL clock skew > + ext_tco = 2ns - < 4ns - 2ns > + 0.5ns = 0.5ns 接 着 计 算 output min/max 的 结 果 : output max = < fpga2ext delay max > - [< dest. reg clock delay min > - < source reg clock delay max >] = < fpga2ext delay max > - [ < ext2_clk delay min > - < fpga_clk delay max > ] = < fgap2ext delay max > - < SLDE clock skew > = < fpga2ext delay max > - < SLDE clock skew > + ext_tsu = 4ns - < 4ns - 4ns > + 0.5ns = 4.5ns output min = < fpga2ext delay min > - [< dest. reg clock delay max > - < source reg clock delay min >] = < fpga2ext delay min > - [ < ext2_clk delay max > - < fpga_clk delay min > ] = < fgap2ext delay min > - < SEDL clock skew > = < fpga2ext delay min > - < SEDL clock skew > - ext_th = 2ns - < 5ns - 3ns > - 0.5ns = -0.5ns 201
203 黑 金 动 力 社 区 然 后, 打 开 实 验 九 然 后 建 立 同 名 的 sdc 文 件, 接 着 将 下 列 的 代 码 拷 贝 进 去 : #************************************************************** # Create Clock #************************************************************** create_clock -name {fpga_clk} -period waveform { } [get_ports {CLK}] create_clock -name {ext1_clk} -period waveform { } create_clock -name {ext2_clk} -period waveform { } #************************************************************** # Set Input Delay #************************************************************** set_input_delay -add_delay -max -clock [get_clocks {ext1_clk}] [get_ports {Din[0]}] set_input_delay -add_delay -min -clock [get_clocks {ext1_clk}] [get_ports {Din[0]}] set_input_delay -add_delay -max -clock [get_clocks {ext1_clk}] [get_ports {Din[1]}] set_input_delay -add_delay -min -clock [get_clocks {ext1_clk}] [get_ports {Din[1]}] set_input_delay -add_delay -max -clock [get_clocks {ext1_clk}] [get_ports {Din[2]}] set_input_delay -add_delay -min -clock [get_clocks {ext1_clk}] [get_ports {Din[2]}] set_input_delay -add_delay -max -clock [get_clocks {ext1_clk}] [get_ports {Din[3]}] set_input_delay -add_delay -min -clock [get_clocks {ext1_clk}] [get_ports {Din[3]}] #************************************************************** # Set Output Delay #************************************************************** set_output_delay -add_delay -max -clock [get_clocks {ext2_clk}] [get_ports {Dout[0]}] set_output_delay -add_delay -min -clock [get_clocks {ext2_clk}] [get_ports {Dout[0]}] set_output_delay -add_delay -max -clock [get_clocks {ext2_clk}] [get_ports {Dout[1]}] set_output_delay -add_delay -min -clock [get_clocks {ext2_clk}] [get_ports {Dout[1]}] set_output_delay -add_delay -max -clock [get_clocks {ext2_clk}] [get_ports {Dout[2]}] set_output_delay -add_delay -min -clock [get_clocks {ext2_clk}] [get_ports {Dout[2]}] set_output_delay -add_delay -max -clock [get_clocks {ext2_clk}] [get_ports {Dout[3]}] set_output_delay -add_delay -min -clock [get_clocks {ext2_clk}] [get_ports {Dout[3]}] 代 码 的 内 容 和 实 验 八 差 不 多, 不 同 的 只 是 少 了 set_clock_latency 约 束 命 令, 换 之 就 是 set_input_delay 与 set_output_delay 被 更 改 了 如 果 同 学 不 喜 欢 直 接 粘 贴 代 码, 也 可 以 透 过 TimeQuest 手 动 输 入 相 关 的 内 容 接 下 来 打 开 TimeQuest, 然 后 手 动 建 立 网 表 create_timing_netlist -model fast, 再 者 就 是 管 理 的 双 击 Read SDC File, 双 击 Update Timing Netlist... 完 后 举 例 所 有 节 点 的 setup
204 时 序 报 告 与 hold 时 序 报 告 图 实 验 九 ( 左 ) 与 实 验 八 ( 右 ) 的 setup 时 序 报 告 图 是 实 验 九 与 实 验 八 的 setup 时 序 报 告 比 较, 节 点 rdata~dout 有 相 同 的 setup 余 量, 而 节 点 Din~rData 也 有 相 近 的 setup 余 量, 但 是 左 图 与 右 图 之 间 有 0.5~0.8ns 的 区 别, 估 计 是 DataIn 那 里 出 现 差 别 此 外 同 学 们 稍 微 注 意 一 下 两 者 之 间 的 clock skew, 其 中 有 4ns 与 3ns 的 差 别, 这 就 表 示 实 验 九 有 将 时 钟 抖 动 信 息 打 包 在 input/output 公 式 里, 而 实 验 八 则 透 过 set_clock_latency 将 时 钟 抖 动 信 息 告 诉 TimeQuest 图 实 验 九 ( 左 ) 与 实 验 八 ( 右 ) 的 hold 时 序 报 告 图 是 实 验 九 与 实 验 八 的 hold 时 序 报 告 比 较, 节 点 rdata~dout 拥 有 一 样 的 hold 余 量, 而 节 点 Din~rData 则 又 0.5~0.8ns 的 差 别, 不 用 差 凶 手 也 是 DataIn 同 样 两 者 之 间 的 clock skew 有 4ns~3ns 的 区 别, 原 因 与 上 述 所 述 的 一 样 实 验 九 的 重 点 是 要 证 明 : 除 了 用 set_latency_clock 可 以 将 物 理 时 钟 的 抖 动 信 息 告 诉 TimeQuest 以 外, 我 们 也 可 以 透 过 input/output 公 式 将 时 钟 的 抖 动 信 息 包 裹 在 同 一 个 外 包 资 料 里 至 于 哪 一 个 办 法 比 较 好 用... 这 就 见 仁 见 智 了 203
205 黑 金 动 力 社 区 6.4 物 理 时 钟 4 笔 者 曾 在 前 面 讨 论 过, 物 理 时 钟 既 是 不 理 想 时 钟, 其 中 clock skew,clock jitter 或 者 clock latency 等 物 理 时 钟 的 特 性, 称 为 clock uncertainly 然 而 TimeQuest 也 有 专 门 的 约 束 命 令 用 来 针 对 clock uncertainly, 约 束 命 令 名 为 set_clock_uncertainly 该 约 束 命 令 的 行 为 仅 告 诉 TimeQuest 保 险 信 息 而 已, 而 该 约 束 命 令 有 两 种 功 能 : ( 一 ) 设 置 而 外 的 setup 或 者 hold 保 险 余 量 ( 二 ) 设 置 物 理 时 钟 的 不 确 定 性 功 能 一 很 容 易 理 解... 假 设 节 点 A 有 5ns 建 立 余 量 与 2ns 保 持 余 量, 不 过 笔 者 却 很 怕 死 的 为 节 点 A 设 置 而 外 1ns 的 保 险 余 量, 结 果 节 点 A 有 4ns 的 建 立 余 量 与 1ns 的 保 险 余 量 从 另 一 个 角 度 来 思 考 提 升 保 险 余 量 有 也 是 提 升 环 境 的 极 端 性, 这 种 思 路 和 网 表 的 质 量 一 样, 亦 即 越 极 端 的 网 表, 保 险 余 量 与 大 ( 功 能 一 也 可 以 用 来 约 束 trise 与 tfall 延 迟 ) 至 于 功 能 二 中 所 谓 的 物 理 时 钟 不 确 定 性, 就 是 我 们 之 前 所 曾 学 过 的, 时 钟 抖 动 所 产 生 的 各 种 可 能 性 时 序 我 们 知 道 TimeQuest 模 型 至 少 需 要 2 个 寄 存 器, 换 句 话 一 个 节 点 需 要 2 个 时 钟 信 号, 如 果 两 个 时 钟 信 号 同 时 发 生 抖 动, 根 据 概 率 论 会 产 生 4 种 可 能 性 的 时 序 不 过, 这 4 种 可 能 性 的 时 序 有 何 set_clock_uncertainly 约 束 命 令 有 什 么 关 系 呢? 让 笔 者 拿 input/output 公 式 来 解 释 : input max input min output max output min = < ext2fpga delay max > - < SLDE clock skew > + ext_tco = < ext2fpga delay min > - < SEDL clock skew > + ext_tco = < fpga2ext delay max > - < SLDE clock skew > + ext_tsu = < fpga2ext delay min > - < SEDL clock skew > - ext_th input/output 公 式 如 果 有 考 虑 时 钟 抖 动 的 可 能 性, 就 会 有 标 志 性 的 SLDE 时 间 差 与 SEDL 时 间 差, 而 set_clock_uncertainly 约 束 命 令 就 是 针 对 它 们 此 外, 我 们 也 知 道 SLDE 时 间 差 是 针 对 建 立 关 系, 而 SEDL 时 间 差 是 针 对 保 持 关 系 在 此 之 前 我 们 先 将 它 们 从 input/output 公 式 中 除 掉 : input max input min output max output min = < ext2fpga delay max > + ext_tco = < ext2fpga delay min > + ext_tco = < fpga2ext delay max > + ext_tsu = < fpga2ext delay min > - ext_th 然 后 再 将 SLDE 与 SEDL 的 时 间 差 透 过 set_clock_uncertainly 告 诉 TimeQuest 即 可 实 验 十 时 间 抖 动 与 set_clock_uncertainly
206 图 假 想 实 验 的 外 部 模 型 实 验 十 的 内 容 是 基 于 实 验 八... 不 管 怎 么 样, 我 们 先 求 出 各 种 延 迟 信 息 : ext1_clk delay min : 1ns + 1ns = 2ns ext1_clk delay max : 1ns + 2ns = 3ns fpga_clk delay min : 2ns + 1ns = 3ns fpga_clk delay max : 2ns + 2ns = 4ns ext2_clk delay min : 3ns + 1ns = 4ns ext2_clk delay max : 3ns + 2ns = 5ns 计 算 不 包 括 SEDL 与 SLDE 时 间 差 的 input/output delay: input max = <ext2fpga delay max> + ext_tco = 4ns = 4.5ns input min = <fpga2ext delay min> + ext_tco( 或 者 ext_mintco) = 2ns + 0.5ns = 2.5ns output max = <fpga2ext delay max> + ext_tsu = 4ns + 0.5ns = 4.5ns output min = < fpga2ext delay min > - ext_th = 2ns - 0.5ns = 1.5ns 再 者 将 input max/min 的 SEDL 与 SLDE 时 间 差 另 外 算 出 : input max SLDE = < dest. reg clock delay min > - < source reg clock delay max > = < fpga_clk delay min > - < ext1_clk delay max > = 3ns - 3ns 205
207 黑 金 动 力 社 区 = 0ns input min SEDL = < dest. reg clock delay max > - < source reg clock delay min > = < fpga_clk delay max > - < ext1_clk delay min > = 4ns - 2ns = 2ns 接 着 另 外 算 出 output max/min 的 SEDL 与 SLDE 时 间 差 : output max SLDE = < dest. reg clock delay min > - < source reg clock delay max > = < ext2_clk delay min > - < fpga_clk delay max > = 4ns - 4ns = 0ns output min SEDL = < dest. reg clock delay max > - < source reg clock delay min > = < ext2_clk delay max > - < fpga_clk delay min > = 5ns - 3ns = 2ns 完 后 打 开 实 验 十, 然 后 建 立 同 名 sdc 文 件, 随 之 将 下 面 的 代 码 拷 贝 进 去 : ************************************************************** # Create Clock #************************************************************** create_clock -name {fpga_clk} -period waveform { } [get_ports {CLK}] create_clock -name {ext1_clk} -period waveform { } create_clock -name {ext2_clk} -period waveform { } #************************************************************** # Set Input Delay #************************************************************** set_input_delay -add_delay -max -clock [get_clocks {ext1_clk}] [get_ports {Din[0]}] set_input_delay -add_delay -min -clock [get_clocks {ext1_clk}] [get_ports {Din[0]}] set_input_delay -add_delay -max -clock [get_clocks {ext1_clk}] [get_ports {Din[1]}] set_input_delay -add_delay -min -clock [get_clocks {ext1_clk}] [get_ports {Din[1]}] set_input_delay -add_delay -max -clock [get_clocks {ext1_clk}] [get_ports {Din[2]}] set_input_delay -add_delay -min -clock [get_clocks {ext1_clk}] [get_ports {Din[2]}] set_input_delay -add_delay -max -clock [get_clocks {ext1_clk}] [get_ports {Din[3]}] set_input_delay -add_delay -min -clock [get_clocks {ext1_clk}] [get_ports {Din[3]}]
208 #************************************************************** # Set Output Delay #************************************************************** set_output_delay -add_delay -max -clock [get_clocks {ext2_clk}] [get_ports {Dout[0]}] set_output_delay -add_delay -min -clock [get_clocks {ext2_clk}] [get_ports {Dout[0]}] set_output_delay -add_delay -max -clock [get_clocks {ext2_clk}] [get_ports {Dout[1]}] set_output_delay -add_delay -min -clock [get_clocks {ext2_clk}] [get_ports {Dout[1]}] set_output_delay -add_delay -max -clock [get_clocks {ext2_clk}] [get_ports {Dout[2]}] set_output_delay -add_delay -min -clock [get_clocks {ext2_clk}] [get_ports {Dout[2]}] set_output_delay -add_delay -max -clock [get_clocks {ext2_clk}] [get_ports {Dout[3]}] set_output_delay -add_delay -min -clock [get_clocks {ext2_clk}] [get_ports {Dout[3]}] 接 着 打 开 TimeQuest 随 之 手 动 建 立 网 表 create_timing_netlist -model fast, 然 后 惯 例 的 双 击 Read SDC File 与 Update Timing Netlist 当 网 表 更 新 结 束 以 后, 从 Constraint 菜 单 下 打 开 Set Clock Uncertainly 图 set clock uncertainly 界 面, 针 对 source clock ext1_clk 与 destination clock fpga_clk 我 们 知 道 input 公 式 的 源 寄 存 器 的 时 钟 信 号 是 ext1_clk 所 以 From Clock 对 应 ext1_clk, 换 之 我 们 知 道 目 的 寄 存 器 的 时 钟 信 号 是 fpga_clk 所 示 to clock 对 应 fpga_clk 此 外 我 们 也 知 道 input max 中 的 SLDE 时 间 差 针 对 建 立 关 系, 而 该 值 是 0ns, 结 果 如 左 图 所 示,Uncertainly 是 0ns, 而 analysis type 是 setup 反 之,input min 中 的 SEDL 时 间 差 针 对 保 持 关 系, 结 果 如 右 图 所 示,uncertainly 是 2ns, 而 analysis type 是 hold 图 set clock uncertainly 界 面, 针 对 source clock fpga_clk 与 destination clock ext2_clk 207
209 黑 金 动 力 社 区 我 们 也 知 道 output 公 式 的 源 寄 存 器 时 钟 信 号 是 ext1_clk 所 以 from Clock 输 入 ext1_clk, 而 我 们 知 道 目 的 寄 存 器 的 时 钟 信 号 是 fpga_clk 所 示 to clock 输 入 fpga_clk 另 外 我 们 也 知 道 output max 中 的 SLDE 时 间 差 针 对 建 立 关 系, 而 该 值 是 0ns, 结 果 如 左 图 所 示,Uncertainly 是 0ns, 而 analysis type 是 setup 反 之,output min 中 的 SEDL 时 间 差 针 对 保 持 关 系, 结 果 如 右 图 所 示,uncertainly 是 2ns, 而 analysis type 是 hold #************************************************************** # Set Clock Uncertainty #************************************************************** set_clock_uncertainty -rise_from [get_clocks {fpga_clk}] -rise_to [get_clocks {ext2_clk}] -setup set_clock_uncertainty -rise_from [get_clocks {fpga_clk}] -rise_to [get_clocks {ext2_clk}] -hold set_clock_uncertainty -rise_from [get_clocks {fpga_clk}] -fall_to [get_clocks {ext2_clk}] -setup set_clock_uncertainty -rise_from [get_clocks {fpga_clk}] -fall_to [get_clocks {ext2_clk}] -hold set_clock_uncertainty -fall_from [get_clocks {fpga_clk}] -rise_to [get_clocks {ext2_clk}] -setup set_clock_uncertainty -fall_from [get_clocks {fpga_clk}] -rise_to [get_clocks {ext2_clk}] -hold set_clock_uncertainty -fall_from [get_clocks {fpga_clk}] -fall_to [get_clocks {ext2_clk}] -setup set_clock_uncertainty -fall_from [get_clocks {fpga_clk}] -fall_to [get_clocks {ext2_clk}] -hold set_clock_uncertainty -rise_from [get_clocks {ext1_clk}] -rise_to [get_clocks {fpga_clk}] -setup set_clock_uncertainty -rise_from [get_clocks {ext1_clk}] -rise_to [get_clocks {fpga_clk}] -hold set_clock_uncertainty -rise_from [get_clocks {ext1_clk}] -fall_to [get_clocks {fpga_clk}] -setup set_clock_uncertainty -rise_from [get_clocks {ext1_clk}] -fall_to [get_clocks {fpga_clk}] -hold set_clock_uncertainty -fall_from [get_clocks {ext1_clk}] -rise_to [get_clocks {fpga_clk}] -setup set_clock_uncertainty -fall_from [get_clocks {ext1_clk}] -rise_to [get_clocks {fpga_clk}] -hold set_clock_uncertainty -fall_from [get_clocks {ext1_clk}] -fall_to [get_clocks {fpga_clk}] -setup set_clock_uncertainty -fall_from [get_clocks {ext1_clk}] -fall_to [get_clocks {fpga_clk}] -hold 完 后 上 述 代 码 会 自 动 添 加 在 sdc 文 件 下 接 下 来 将 所 有 节 点 的 setup 时 序 报 告 与 hold 时 序 报 告 都 一 举 列 出 图 实 验 十 ( 左 ) 与 实 验 八 ( 右 ) 的 setup 时 序 报 告 图 是 实 验 十 与 实 验 八 的 setup 时 序 报 告 比 较, 不 过 双 方 也 有 同 样 的 setup 余 量 结 果 图 实 验 十 ( 左 ) 与 实 验 八 ( 右 ) 的 hold 时 序 报 告
210 图 是 实 验 十 与 实 验 八 的 hold 时 序 报 告 比 较, 而 双 方 有 同 样 的 hold 余 量, 笔 者 稍 微 手 痒 将 节 点 Din[0]~rData[0] 的 详 细 信 息 展 开... 图 实 验 十 ( 作 ) 与 实 验 八 ( 右 ) 的 节 点 Din[0]~rData[0] hold 信 息 报 告 的 详 细 信 息 我 们 稍 微 比 较 一 下 图 的 两 张 图, 右 图 的 clock network delay 之 所 以 有 延 迟 是 因 为 实 验 八 用 set_clock_latency 告 诉 TimeQuest 有 关 时 钟 的 抖 动 信 息 换 之 左 图 的 clock uncertainty 有 延 迟 信 息 是 因 为 实 验 九 用 set_clock_uncertainly 告 诉 TimeQuest 各 种 SLDE 与 SEDL 时 间 差 的 信 息 至 于 set_clock_uncertainly 的 功 能 一 笔 者 就 不 演 示 了 因 为 太 单 纯 了, 而 实 验 十 我 们 可 以 这 样 结 论 : set_clock_uncertainly 所 谓 的 uncertainly 是 指 时 钟 信 号 抖 动 的 信 息, 不 过 更 正 确 一 点 说 就 是 各 种 时 钟 抖 动 所 产 生 的 可 能 性 时 序 里 所 隐 藏 的 SLDE 时 钟 差 与 SEDL 时 钟 差, 前 者 是 针 对 建 立 关 系, 后 者 则 是 针 对 保 持 关 系 此 外, 如 果 使 用 set_clock_uncertainly 该 约 束 命 令, 在 详 细 的 时 序 报 告 中 clock uncertainty 列 表 就 会 留 下 设 置 的 痕 迹 209
211 黑 金 动 力 社 区 6.5 无 奈 的 set_max_delay 与 set_min_delay 首 先, 先 让 我 们 瞧 瞧 官 方 如 何 解 释 set_max_delay 与 set_min_delay? set_max_delay:specifies a maximum delay exception for a given path. set_min_delay:specifies a minimum delay exception for a given path. set_max_delay 大 意 是 为 某 个 路 径 ( 实 际 上 是 指 节 点 ) 指 定 自 定 义 最 大 延 迟, 换 之 set_min_delay 是 为 某 个 路 径 ( 实 际 上 是 指 节 点 ) 指 定 自 定 义 最 小 延 迟 这 两 个 约 束 命 令 容 易 让 人 误 会 的 原 因 是 英 文 单 词 的 path, 这 个 英 文 单 词 不 禁 让 人 联 想 clock path 或 者 data path 以 此 类 推,set_max_delay 或 者 set_min_delay 仿 佛 就 有 能 力 自 定 义 clock path 或 者 data path, 不 过 这 是 美 丽 的 误 会 所 谓 的 clock path 或 者 data path 是 指 内 部 延 迟, 然 而 决 定 内 部 延 迟 的 动 作 除 了 HDL 的 书 写 以 外, 还 有 编 译 器 设 置, 而 且 网 表 的 质 量 也 有 关 系 所 以 说 该 约 束 命 令 与 内 部 延 迟 是 完 全 没 有 关 系, 再 次 强 调! 没 有 关 系! 用 TimeQuest 的 话 来 说 path 往 往 是 指 某 对 节 点, 接 着 有 max 与 min 这 两 个 关 键 字, 就 一 定 与 时 钟 有 关, 而 建 立 关 系 与 保 持 关 系 式 绝 对 逃 不 了 不 过 为 什 么 说 set_max_delay 与 set_min_delay 是 无 奈 的 东 西 呢? 图 set_max_delay 与 set_min_delay 的 界 面 以 实 验 十 为 例, 网 表 为 fast model, 从 Constraint 菜 单 下 打 开 set maximum delay 与 set minimum delay, 然 后 针 对 节 点 Din[0]~rData[0],maximum delay 设 置 为 6.666ns, 而 minimum 设 置 为 4.444ns, 如 图 所 示
212 图 节 点 Din[0]~rData[0] 的 setup 详 细 报 告 然 后 打 开 节 点 Din[0]~rData[0] 的 详 细 setup 时 序 报 告, 如 图 所 示 我 们 可 以 看 到 该 节 点 的 setup relationship 不 是 其 它, 而 是 我 们 之 前 用 set maximum delay 设 置 的 6.666ns 接 着 注 意 一 下 右 边 的 waveform, 很 明 显 锁 存 沿 向 左 移 动 大 约 3.334ns, 结 果 造 就 6.666ns 的 建 立 关 系 图 节 点 Din[0]~rData[0] 的 hold 详 细 报 告 接 下 来, 打 开 节 点 Din[0]~rData[0] 的 详 细 hold 时 序 报 告, 如 图 所 示 同 样 hold relationship 不 是 其 它 而 是 我 们 经 set minimum delay 设 置 的 4.444ns 从 右 边 的 waveform 那 里 我 们 可 以 看 到 下 一 个 启 动 沿 与 锁 存 沿 有 4.444ns 的 距 离 ( 保 持 关 系 ) 211
213 黑 金 动 力 社 区 图 建 立 关 系 与 保 持 关 系 的 等 价 图 根 据 上 述 的 内 容, 我 们 知 道 这 样 一 个 结 果, 亦 即 set maximum delay 直 接 自 定 义 建 立 关 系, 而 set minimum delay 直 接 定 义 保 持 关 系 有 关 这 一 点 与 之 前 所 学 过 的 delay max 与 delay min 有 不 同 的 表 现... 如 图 所 示, 以 往 的 delay max 与 delay min 是 取 D 数 据 D 的 最 大 和 最 小 延 迟, 然 后 直 接 反 映 在 启 动 沿 与 下 一 个 启 动 沿 的 身 上, 从 而 取 得 等 价 图 然 后 再 将 这 些 信 息 告 诉 TimeQuest, 让 它 去 计 算 相 反 的,set maximum delay 与 set minimum delay 的 约 束 行 为 实 际 上 是 各 种 乱 七 八 糟 的 约 束 合 成 体, 设 置 时 钟 位 移 也 可, 设 置 多 这 种 路 径 也 可 以 既 然 set maximum delay 与 set minimum delay 那 么 糟 糕, 为 什 么 还 要 它 干 嘛 呢? 根 据 官 方 的 资 料... 在 很 早 以 前 TimeQuest 还 小 的 时 候, 静 态 时 序 分 析 的 工 作 是 由 传 统 的 工 具 (Classic Timing Analysis Tool) 负 责, 其 中 就 用 set maximum delay 和 set minimum delay 约 束 外 部 ic 各 种 寄 存 器 特 性, 如 Tsu 和 Th 不 过 TimeQuest 出 现 以 后, 随 之 set input delay 与 set output delay 也 跟 着 出 现, 该 约 束 命 令 用 外 包 资 料 的 方 式, 不 仅 可 以 将 时 钟 抖 动 也 包 装 进 去, 而 且 也 能 将 外 部 ic 的 寄 存 器 特 性 也 包 裹 进 去... 慢 慢 的 set input delay 与 set output delay 就 替 代 了 set maximum delay 与 set minimum delay 这 部 分 的 工 作 至 于 要 不 要 使 用 set maximum delay 与 set minimum delay 结 果 是 见 仁 见 智 了
214 总 结 : 第 六 章 的 重 点 内 容 基 本 上 都 是 围 绕 着 物 理 时 钟 展 开, 笔 者 想 说 物 理 时 钟 是 外 部 模 型 是 最 关 键, 其 中 物 理 时 钟 所 拥 有 的 物 理 特 性, 亦 即 时 钟 抖 动, 潜 伏 和 时 间 差 等, 被 TimeQuest 视 为 Uncertainly 至 于 这 些 问 题 的 重 要 性, 单 是 约 束 命 令 的 数 量 就 可 以 看 出 它 有 多 受 重 视 时 钟 抖 动 是 物 理 时 钟 最 常 见 的 一 个 表 现, 虽 说 目 前 的 科 技 可 以 将 时 钟 抖 动 控 制 在 一 定 范 围, 不 过 对 那 些 时 序 非 常 挑 剔 的 设 计 而 言, 一 天 不 把 时 钟 抖 动 算 清 楚, 一 天 都 不 得 安 宁 时 钟 抖 动 最 大 的 难 题 就 是 产 生 多 个 可 能 性 时 序, 以 TimeQuest 的 模 型 而 言, 最 多 会 产 生 4 种 可 能 性 的 时 序 时 钟 抖 动 如 果 按 一 般 的 手 段 去 解 决 是 非 常 烦 恼 的 时 钟 抖 动 所 产 生 最 大 的 延 迟 称 为 max 别 名 late, 最 小 延 迟 则 是 min 别 名 early, 这 些 抖 动 延 迟 又 称 为 时 钟 潜 伏 如 果 同 学 是 懒 人 的 话,TimeQuest 有 专 门 的 约 束 命 令 用 来 取 得 时 钟 抖 动 的 信 息, 亦 即 set_clock_latency 任 时 钟 抖 动 的 四 种 可 能 性 中,SLDE 的 数 据 拥 有 最 小 的 建 立 时 间,SEDL 拥 有 最 小 的 保 持 时 间 其 中 取 得 的 SLDE 时 间 差 与 SEDL 时 间 差 是 理 解 相 关 约 束 命 令 的 关 键 所 在 不 仅 SLDE 时 间 差 与 SEDL 时 间 差 可 以 加 入 input/output 公 式 里, 而 且 也 有 专 门 的 约 束 命 令 用 来 取 得 它 们, 亦 即 set_clock_uncertainly. 笔 者 原 本 打 算 只 讲 set_clock_latency 而 已, 可 是 犯 贱 的 骨 子 就 喜 欢 往 更 深 处 砖 不 过 不 管 怎 么 样, 收 获 也 挺 多 的, 以 往 累 积 的 许 多 问 题, 就 这 样 一 扫 而 空 了 到 目 前 位 置, constrainy 菜 单 下 的 约 束 命 令, 只 剩 下 Create generate clock 还 未 讨 论, 下 一 章 我 们 就 拿 它 来 开 刀 吧 213
何 秋 琳 张 立 春 视 觉 学 习 研 究 进 展 视 觉 注 意 视 觉 感 知
第 卷 第 期 年 月 开 放 教 育 研 究 何 秋 琳 张 立 春 华 南 师 范 大 学 未 来 教 育 研 究 中 心 广 东 广 州 随 着 图 像 化 技 术 和 电 子 媒 体 的 发 展 视 觉 学 习 也 逐 步 发 展 为 学 习 科 学 的 一 个 研 究 分 支 得 到 研 究 人 员 和 教 育 工 作 者 的 广 泛 关 注 基 于 此 作 者 试 图 对 视 觉 学 习
龚 亚 夫 在 重 新 思 考 基 础 教 育 英 语 教 学 的 理 念 一 文 中 援 引 的 观 点 认 为 当 跳 出 本 族 语 主 义 的 思 维 定 式 后 需 要 重 新 思 考 许 多 相 连 带 的 问 题 比 如 许 多 发 音 的 细 微 区 别 并 不 影 响 理 解 和
语 音 语 篇 语 感 语 域 林 大 津 毛 浩 然 改 革 开 放 以 来 的 英 语 热 引 发 了 大 中 小 学 英 语 教 育 整 体 规 划 问 题 在 充 分 考 虑 地 区 学 校 和 个 体 差 异 以 及 各 家 观 点 的 基 础 上 遵 循 实 事 求 是 逐 级 定 位 逐 层 分 流 因 材 施 教 的 原 则 本 研 究 所 倡 导 的 语 音 语 篇 语 感 语 域
,,,,, :,, (.,, );, (, : ), (.., ;. &., ;.. &.., ;, ;, ),,,,,,, ( ) ( ),,,,.,,,,,, : ;, ;,.,,,,, (., : - ),,,, ( ),,,, (, : ),, :,
: 周 晓 虹 : - -., - - - -. :( ), -,.( ),,, -. - ( ).( ) ', -,,,,, ( ).( ),,, -., '.,, :,,,, :,,,, ,,,,, :,, (.,, );, (, : ), (.., ;. &., ;.. &.., ;, ;, ),,,,,,, ( ) ( ),,,,.,,,,,, : ;, ;,.,,,,, (., : - ),,,,
I
机 电 一 级 注 册 建 造 师 继 续 教 育 培 训 广 东 培 训 点 网 上 报 名 操 作 使 用 手 册 (2013 年 1 月, 第 一 版 ) 第 一 章 个 人 注 册 与 个 人 信 息 管 理 1. 个 人 注 册 ( 请 每 人 只 申 请 一 个 注 册 号, 如 果 单 位 批 量 报 班 单 位 帮 申 请 注 册, 不 需 个 人 再 注 册 ) 首 次 报 班,
说 明 为 了 反 映 教 运 行 的 基 本 状 态, 为 校 和 院 制 定 相 关 政 策 和 进 行 教 建 设 与 改 革 提 供 据 依 据, 校 从 程 资 源 ( 开 类 别 开 量 规 模 ) 教 师 结 构 程 考 核 等 维 度, 对 2015 年 春 季 期 教 运 行 基
内 部 资 料 东 北 师 范 大 教 运 行 基 本 状 态 据 报 告 2015 年 春 季 期 教 务 处 2015 年 10 月 27 日 说 明 为 了 反 映 教 运 行 的 基 本 状 态, 为 校 和 院 制 定 相 关 政 策 和 进 行 教 建 设 与 改 革 提 供 据 依 据, 校 从 程 资 源 ( 开 类 别 开 量 规 模 ) 教 师 结 构 程 考 核 等 维 度,
0 年 上 半 年 评 价 与 考 核 细 则 序 号 部 门 要 素 值 考 核 内 容 考 核 方 式 考 核 标 准 考 核 ( 扣 原 因 ) 考 评 得 3 安 全 生 产 目 30 无 同 等 责 任 以 上 道 路 交 通 亡 人 事 故 无 轻 伤 责 任 事 故 无 重 大 质 量
0 年 上 半 年 评 价 与 考 核 细 则 序 号 部 门 要 素 值 考 核 内 容 考 核 方 式 考 核 标 准 无 同 等 责 任 以 上 道 路 交 通 亡 人 事 故 3 无 轻 伤 责 任 事 故 目 标 30 及 事 无 重 大 质 量 工 作 过 失 故 管 无 其 他 一 般 责 任 事 故 理 在 公 司 文 明 环 境 创 建 中, 无 工 作 过 失 及 被 追 究 的
评 委 : 李 炎 斌 - 个 人 技 术 标 资 信 标 初 步 审 查 明 细 表 序 号 投 标 单 位 投 标 函 未 按 招 标 文 件 规 定 填 写 漏 填 或 内 容 填 写 错 误 的 ; 不 同 投 标 人 的 投 标 文 件 由 同 一 台 电 脑 或 同 一 家 投 标 单
评 委 : 李 炎 斌 - 个 人 清 标 评 审 明 细 表 评 审 因 素 序 号 投 标 单 位 清 标 评 审 1 深 圳 市 创 捷 科 技 有 限 合 格 2 四 川 川 大 智 胜 软 件 股 份 有 限 合 格 3 北 京 航 天 长 峰 科 技 工 业 集 团 有 限 公 司 合 格 4 深 圳 中 兴 力 维 技 术 有 限 合 格 5 深 圳 键 桥 通 讯 技 术 股 份 有
马 克 思 主 义 公 正 观 的 基 本 向 度 及 方 法 论 原 则!! # #
马 克 思 主 义 公 正 观 的 基 本 向 度 及 方 法 论 原 则 马 俊 峰 在 社 会 公 正 问 题 的 大 讨 论 中 罗 尔 斯 诺 齐 克 哈 耶 克 麦 金 泰 尔 等 当 代 西 方 思 想 家 的 论 述 被 反 复 引 用 和 申 说 而 将 马 克 思 恩 格 斯 等 经 典 作 家 的 观 点 置 于 一 种 被 忽 视 甚 至 被 忘 却 的 状 态 形 成 这 种
( 二 ) 现 行 统 一 高 考 制 度 不 利 于 培 养 人 的 创 新 精 神,,,,,,,,,,,,, [ ],,,,,,,,,,, :, ;,,,,,,? ( 三 ) 现 行 统 一 高 考 制 度 不 利 于 全 体 学 生 都 获 得 全 面 发 展,, [ ],,,,,,,,,,,
( ) ( )... 李 雪 岩, 龙 耀 (. 广 西 民 族 大 学 商 学 院, 广 西 南 宁 ;. 中 山 大 学 教 育 学 院, 广 东 广 州 ) : 高 等 教 育 是 专 业 教 育 高 考 是 为 高 等 教 育 服 务 的, 是 为 高 等 专 业 教 育 选 拔 有 专 业 培 养 潜 质 的 人 才 现 行 高 考 制 度 忽 略 专 业 潜 质 的 因 素, 过 份 强
HSK( 一 级 ) 考 查 考 生 的 日 常 汉 语 应 用 能 力, 它 对 应 于 国 际 汉 语 能 力 标 准 一 级 欧 洲 语 言 共 同 参 考 框 架 (CEF) A1 级 通 过 HSK( 一 级 ) 的 考 生 可 以 理 解 并 使 用 一 些 非 常 简 单 的 汉 语
新 汉 语 水 平 考 试 HSK 为 使 汉 语 水 平 考 试 (HSK) 更 好 地 服 务 于 汉 语 学 习 者, 中 国 国 家 汉 办 组 织 中 外 汉 语 教 学 语 言 学 心 理 学 和 教 育 测 量 学 等 领 域 的 专 家, 在 充 分 调 查 了 解 海 外 实 际 汉 语 教 学 情 况 的 基 础 上, 吸 收 原 有 HSK 的 优 点, 借 鉴 近 年 来 国
3 复 试 如 何 准 备 4 复 试 成 绩 计 算 5 复 试 比 例 6 复 试 类 型 7 怎 么 样 面 对 各 种 复 试 04 05
1 复 试 流 程 2 复 试 考 查 形 式 02 03 3 复 试 如 何 准 备 4 复 试 成 绩 计 算 5 复 试 比 例 6 复 试 类 型 7 怎 么 样 面 对 各 种 复 试 04 05 2 怎 样 给 导 师 留 下 良 好 的 第 一 印 象 把 握 进 门 时 机 1 面 试 中 穿 着 的 瞒 天 过 海 3 无 声 胜 有 声 的 肢 体 语 言 育 4 眼 睛 是 心
<433A5C446F63756D656E747320616E642053657474696E67735C41646D696E6973747261746F725CD7C0C3E65CC2DBCEC4CFB5CDB3CAB9D3C3D6B8C4CFA3A8BCF2BBAFA3A95CCAB9D3C3D6B8C4CF31302D31392E646F63>
( 一 ) 系 统 整 体 操 作 流 程 简 述 3 ( 二 ) 系 统 中 各 角 色 操 作 功 能 说 明 5 1. 学 院 管 理 员 5 2. 教 学 院 长 8 3. 指 导 教 师 10 4. 答 辩 组 组 长 12 5. 学 生 12 6. 系 统 管 理 员 15 ( 一 ) 论 文 系 统 常 见 问 题 16 ( 二 ) 论 文 查 重 常 见 问 题 22 1 2 主
《C语言基础入门》课程教学大纲
C 语 言 开 发 入 门 教 程 课 程 教 学 大 纲 课 程 编 号 :201409210011 学 分 :5 学 分 学 时 :58 学 时 ( 其 中 : 讲 课 学 时 :39 学 时 上 机 学 时 :19 学 时 ) 先 修 课 程 : 计 算 机 导 论 后 续 课 程 :C++ 程 序 设 计 适 用 专 业 : 信 息 及 其 计 算 机 相 关 专 业 开 课 部 门 : 计
Microsoft Word - 第3章.doc
52 5 天 通 过 职 称 计 算 机 考 试 ( 考 点 视 频 串 讲 + 全 真 模 拟 ) Word 2003 中 文 字 处 理 ( 第 2 版 ) 第 3 章 3 字 符 格 式 需 要 掌 握 的 考 点 字 体 字 形 和 字 号 的 设 置 ; 上 标 下 标 空 心 字 等 字 体 效 果 的 使 用 ; 字 符 间 距 的 调 整 ; 改 变 字 符 颜 色 底 纹 添 加
修改版-操作手册.doc
职 称 信 息 系 统 升 级 指 南 须 使 用 IE9 及 其 以 上 版 本 浏 览 器 或 谷 歌 浏 览 器 登 录 www.njrs.gov.cn 南 京 市 职 称 ( 职 业 资 格 ) 工 作 领 导 小 组 办 公 室 2016 年 5 月 目 录 一 申 报 人 员 操 作 指 南...1 1.1 职 称 初 定 申 报...1 1.1.1 职 称 初 定 基 础 信 息 填
文 化 记 忆 传 统 创 新 与 节 日 遗 产 保 护 根 据 德 国 学 者 阿 斯 曼 的 文 化 记 忆 理 论 仪 式 与 文 本 是 承 载 文 化 记 忆 的 两 大 媒 体 在 各 种 仪 式 行 为 中 节 日 以 其 高 度 的 公 共 性 有 组 织 性 和 历 史 性 而 特 别 适 用 于 文 化 记 忆 的 储 存 和 交 流 节 日 的 文 化 功 能 不 仅 在 于
抗 战 时 期 国 民 政 府 的 银 行 监 理 体 制 探 析 % # % % % ) % % # # + #, ) +, % % % % % % % %
抗 战 时 期 国 民 政 府 的 银 行 监 理 体 制 探 析 王 红 曼 抗 战 时 期 国 民 政 府 为 适 应 战 时 经 济 金 融 的 需 要 实 行 由 财 政 部 四 联 总 处 中 央 银 行 等 多 家 机 构 先 后 共 同 参 与 的 多 元 化 银 行 监 理 体 制 对 战 时 状 态 下 的 银 行 发 展 与 经 营 安 全 进 行 了 大 规 模 的 设 计 与
张 荣 芳 中 山 大 学 历 史 系 广 东 广 州 张 荣 芳 男 广 东 廉 江 人 中 山 大 学 历 史 系 教 授 博 士 生 导 师 我 们 要 打 破 以 前 学 术 界 上 的 一 切 偶 像 以 前 学 术 界 的 一 切 成 见 屏 除 我 们 要 实 地 搜 罗 材 料 到 民 众 中 寻 方 言 到 古 文 化 的 遗 址 去 发 掘 到 各 种 的 人 间 社 会 去
(2015-2016-2)-0004186-04205-1 140242 信 号 与 系 统 Ⅰ 学 科 基 础 必 修 课 37 37 1 教 203 17 周 2016 年 06 月 13 日 (08:00-09:35) (2015-2016-2)-0004186-04205-1 141011
关 于 2015-2016 学 年 第 二 学 期 期 末 周 内 考 试 时 间 地 点 安 排 选 课 课 号 班 级 名 称 课 程 名 称 课 程 性 质 合 考 人 数 实 际 人 数 考 试 教 室 考 试 段 考 试 时 间 (2015-2016-2)-0006178-04247-1 130101 测 试 技 术 基 础 学 科 基 础 必 修 课 35 35 1 教 401 17 周
Microsoft Word - 第7章 图表反转形态.doc
第 七 章 图 表 反 转 形 态 我 们 知 道 市 场 趋 势 共 有 三 种 : 上 升 趋 势 下 降 趋 势 和 横 向 整 理 市 场 的 价 格 波 动 都 是 运 行 在 这 三 种 趋 势 中, 所 有 的 走 势 都 是 这 三 种 趋 势 的 排 列 组 合 如 图 市 场 趋 势 结 构 示 意 图 7-1 所 示 市 场 趋 势 结 构 示 意 图 7-1 图 市 场 趋
反 学 校 文 化 与 阶 级 再 生 产 小 子 与 子 弟 之 比 较 周 潇 作 者 通 过 对 北 京 某 打 工 子 弟 学 校 的 田 野 调 查 后 发 现 在 农 民 工 子 弟 中 间 盛 行 着 类 似 学 做 工 中 所 描 述 的 工 人 阶 级 小 子 的 反 学 校 文 化 但 是 由 于 制 度 安 排 与 社 会 条 件 的 差 异 子 弟 与 小 子 的 反 学 校
2006年顺德区高中阶段学校招生录取分数线
2014 年 顺 德 区 高 中 阶 段 学 校 考 试 提 前 批 第 一 批 第 二 批 学 校 录 取 根 据 佛 山 市 办 提 供 的 考 生 数 据, 现 将 我 区 2014 年 高 中 阶 段 学 校 考 试 提 前 批 第 一 批 第 二 批 学 校 的 录 取 公 布 如 下 : 一 顺 德 一 中 录 取 分 第 1 志 愿, 总 分 585, 综 合 表 现 评 价 A, 考
评 委 : 徐 岩 宇 - 个 人 技 术 标 资 信 标 初 步 审 查 明 细 表 序 号 投 标 单 位 投 标 函 未 按 招 标 文 件 规 定 填 写 漏 填 或 内 容 填 写 错 误 的 ; 不 同 投 标 人 的 投 标 文 件 由 同 一 台 电 脑 或 同 一 家 投 标 单
评 委 : 徐 岩 宇 - 个 人 清 标 评 审 明 细 表 评 审 因 素 序 号 投 标 单 位 清 标 评 审 1 深 圳 市 创 捷 科 技 有 限 合 格 2 四 川 川 大 智 胜 软 件 股 份 有 限 合 格 3 北 京 航 天 长 峰 科 技 工 业 集 团 有 限 公 司 合 格 4 深 圳 中 兴 力 维 技 术 有 限 合 格 5 深 圳 键 桥 通 讯 技 术 股 份 有
教师上报成绩流程图
教 务 管 理 系 统 使 用 说 明 学 生 端 用 户 1 在 校 内 任 何 一 台 连 接 校 园 网 的 计 算 机 上 登 录 教 务 处 主 页 教 务 处 主 页 地 址 : http://jw.stdu.edu.cn/homepage 随 后 点 击 按 钮 ( 见 下 图 所 示 ), 即 可 进 入 综 合 教 务 管 理 系 统 2 在 综 合 教 务 管 理 区 域 内 键
类 似 地, 又 可 定 义 变 下 限 的 定 积 分 : ( ). 与 ψ 统 称 为 变 限 积 分. f ( ) d f ( t) dt,, 注 在 变 限 积 分 (1) 与 () 中, 不 可 再 把 积 分 变 量 写 成 的 形 式 ( 例 如 ) 以 免 与 积 分 上 下 限 的
5 ( 一 ) 微 积 分 学 基 本 定 理 当 函 数 的 可 积 性 问 题 告 一 段 落, 并 对 定 积 分 的 性 质 有 了 足 够 的 认 识 之 后, 接 着 要 来 解 决 一 个 以 前 多 次 提 到 过 的 问 题 在 定 积 分 形 式 下 证 明 连 续 函 数 必 定 存 在 原 函 数. 一 变 限 积 分 与 原 函 数 的 存 在 性 设 f 在 [,] 上
深圳市新亚电子制程股份有限公司
证 券 代 码 :002388 证 券 简 称 : 新 亚 制 程 公 告 编 号 :2016-053 深 圳 市 新 亚 电 子 制 程 股 份 有 限 公 司 2016 年 第 二 次 临 时 股 东 大 会 决 议 公 告 本 公 司 及 董 事 会 全 体 成 员 保 证 公 告 内 容 真 实 准 确 和 完 整, 不 存 在 虚 假 记 载 误 导 性 陈 述 或 者 重 大 遗 漏 特
登录、注册功能的测试用例设计.doc
注 册 登 陆 测 试 用 例 和 修 改 密 码 测 试 用 例 完 整 版 摘 自 网 络, 狗 狗 整 理 [email protected] 修 改 历 史 日 期 版 本 作 者 修 改 内 容 评 审 号 变 更 控 制 号 2010-11-25 1.0 初 稿 2011-09-17 2.0 整 理 一 注 册 测 试 用 例 序 号 : 1 控 件 名 称 : 功 能 描 述 : 注 册 编
名 称 生 命 科 学 学 院 083001 环 境 科 学 1 生 物 学 仅 接 收 院 内 调 剂, 初 试 分 数 满 足 我 院 生 物 学 复 试 最 低 分 数 线 生 命 科 学 学 院 071300 生 态 学 5 生 态 学 或 生 物 学 生 命 科 学 学 院 040102
华 中 师 范 大 学 2016 年 接 收 校 内 外 优 秀 硕 士 研 究 生 调 剂 信 息 表 名 称 经 济 与 工 商 管 理 学 院 020101 政 治 经 济 学 1 经 济 学 类 毕 业 学 校 与 报 考 学 校 不 低 于 我 校 办 学 层 次 经 济 与 工 商 管 理 学 院 020105 世 界 经 济 学 1 经 济 学 类 毕 业 学 校 与 报 考 学 校
朱 丽 明 柯 美 云 周 丽 雅 袁 耀 宗 罗 金 燕 候 晓 华 陈 旻 湖 滥 用 安 非 他 命 会 增 加 得 心 脏 病 的 风 险 据 美 国 科 技 新 闻 网 报 道 根 据 纽 约 路 透 社 报 道 一 份 新 的 研 究 显 示 青 年 及 成 年 人 若 滥 用 安 非 他 命 会 增 加 得 心 脏 病 的 风 险 美 国 德 州 大 学 西 南 医 学 中 心
一 公 共 卫 生 硕 士 专 业 学 位 论 文 的 概 述 学 位 论 文 是 对 研 究 生 进 行 科 学 研 究 或 承 担 专 门 技 术 工 作 的 全 面 训 练, 是 培 养 研 究 生 创 新 能 力, 综 合 运 用 所 学 知 识 发 现 问 题, 分 析 问 题 和 解 决
上 海 市 公 共 卫 生 硕 士 专 业 学 位 论 文 基 本 要 求 和 评 价 指 标 体 系 ( 试 行 ) 上 海 市 学 位 委 员 会 办 公 室 二 O 一 二 年 三 月 一 公 共 卫 生 硕 士 专 业 学 位 论 文 的 概 述 学 位 论 文 是 对 研 究 生 进 行 科 学 研 究 或 承 担 专 门 技 术 工 作 的 全 面 训 练, 是 培 养 研 究 生 创
<4D6963726F736F667420576F7264202D20B9D8D3DAB0BABBAAA3A8C9CFBAA3A3A9D7D4B6AFBBAFB9A4B3CCB9C9B7DDD3D0CFDEB9ABCBBE32303132C4EAC4EAB6C8B9C9B6ABB4F3BBE1B7A8C2C9D2E2BCFBCAE92E646F6378>
上 海 德 载 中 怡 律 师 事 务 所 关 于 昂 华 ( 上 海 ) 自 动 化 工 程 股 份 有 限 公 司 二 〇 一 二 年 年 度 股 东 大 会 法 律 意 见 书 上 海 德 载 中 怡 律 师 事 务 所 上 海 市 银 城 中 路 168 号 上 海 银 行 大 厦 1705 室 (200120) 电 话 :8621-5012 2258 传 真 :8621-5012 2257
伊 犁 师 范 学 院 611 语 言 学 概 论 全 套 考 研 资 料 <2016 年 最 新 考 研 资 料 > 2-2 语 言 学 纲 要 笔 记, 由 考 取 本 校 本 专 业 高 分 研 究 生 总 结 而 来, 重 点 突 出, 借 助 此 笔 记 可 以 大 大 提 高 复 习 效
伊 犁 师 范 学 院 611 语 言 学 概 论 全 套 考 研 资 料 ......2 伊 犁 师 范 学 院 802 文 学 概 论 全 套 考 研 资 料 ......2 伊 犁 师 范 学 院 702 普 通 物 理 全 套 考 研 资 料 ......3 伊 犁
导 数 和 微 分 的 概 念 导 数 的 几 何 意 义 和 物 理 意 义 函 数 的 可 导 性 与 连 续 性 之 间 的 关 系 平 面 曲 线 的 切 线 和 法 线 导 数 和 微 分 的 四 则 运 算 基 本 初 等 函 数 的 导 数 复 合 函 数 反 函 数 隐 函 数 以
2015 年 考 研 数 学 二 考 试 大 纲 考 试 科 目 : 高 等 数 学 线 性 代 数 考 试 形 式 和 试 卷 结 构 一 试 卷 满 分 及 考 试 时 间 试 卷 满 分 为 150 分, 考 试 时 间 为 180 分 钟. 二 答 题 方 式 答 题 方 式 为 闭 卷 笔 试. 三 试 卷 内 容 结 构 高 等 教 学 约 78% 线 性 代 数 约 22% 四 试 卷
全国建筑市场注册执业人员不良行为记录认定标准(试行).doc
- 1 - - 2 - 附 件 全 国 建 筑 市 场 注 册 执 业 人 员 不 良 记 录 认 定 标 准 ( 试 行 ) 说 明 为 了 完 善 建 筑 市 场 注 册 执 业 人 员 诚 信 体 系 建 设, 规 范 执 业 和 市 场 秩 序, 依 据 相 关 法 律 法 规 和 部 门 规 章, 根 据 各 行 业 特 点, 我 部 制 订 了 全 国 建 筑 市 场 注 册 执 业 人
编号:
编 号 : 企 业 内 高 技 能 人 才 培 养 评 价 实 施 方 案 ( 仅 适 用 于 企 业 特 有 行 业 特 有 工 种 ) 实 施 单 位 ( 公 章 ) 申 报 日 期 年 _ 月 日 1 企 业 内 高 技 能 人 才 培 养 评 价 项 目 实 施 方 案 申 报 表 项 目 名 称 等 级 项 目 性 质 课 时 申 报 单 位 联 系 人 通 讯 地 址 电 话 手 机 电
课程类 别
美 声 演 唱 方 向 培 养 方 案 一 培 养 目 标 本 方 向 要 求 学 生 德 智 体 美 全 面 发 展, 培 养 能 在 文 艺 团 体 从 事 声 乐 演 唱 及 能 在 艺 术 院 校 从 事 本 方 向 教 学 的 高 级 门 人 才 二 培 养 规 格 本 方 向 学 生 应 系 统 掌 握 声 乐 演 唱 方 面 的 理 论 和 技 能, 具 备 较 高 的 声 乐 演 唱
金 不 少 于 800 万 元, 净 资 产 不 少 于 960 万 元 ; (3) 近 五 年 独 立 承 担 过 单 项 合 同 额 不 少 于 1000 万 元 的 智 能 化 工 程 ( 设 计 或 施 工 或 设 计 施 工 一 体 ) 不 少 于 2 项 ; (4) 近 三 年 每 年
工 程 设 计 与 施 工 资 质 标 准 一 总 则 建 筑 智 能 化 工 程 设 计 与 施 工 资 质 标 准 ( 一 ) 为 了 加 强 对 从 事 建 筑 智 能 化 工 程 设 计 与 施 工 企 业 的 管 理, 维 护 建 筑 市 场 秩 序, 保 证 工 程 质 量 和 安 全, 促 进 行 业 健 康 发 展, 结 合 建 筑 智 能 化 工 程 的 特 点, 制 定 本 标
第二讲 数列
Togisu XueD Persolized Eduio Developme Ceer 高 考 中 不 等 式 问 题 的 解 决 方 法 通 润 达 久 王 力 前 言 : 近 年 来 不 等 式 问 题 正 越 来 越 多 的 出 现 在 调 研 题 和 高 考 试 题 中 而 且 大 多 出 现 在 江 苏 高 考 的 填 空 压 轴 题 中 是 高 考 考 察 的 重 点 和 难 点 由 于
Template BR_Rec_2005.dot
ITU-R BT.1789 建 议 书 1 ITU-R BT.1789 建 议 书 在 分 组 视 频 传 输 中 利 用 传 输 误 码 信 息 重 建 接 收 视 频 的 方 法 (ITU-R 44/6 和 ITU-R 109/6 课 题 ) (2007 年 ) 范 围 本 建 议 书 对 业 务 提 供 商 重 建 接 收 视 频 的 方 法 做 了 详 细 介 绍, 以 便 利 用 传 输
科 学 出 版 社 科 学 出 版 社 前 言 本 书 是 针 对 普 通 高 等 院 校 经 济 类 和 工 商 管 理 类 本 科 专 业 财 务 管 理 学 的 教 学 需 求, 结 合 教 育 部 经 济 管 理 类 本 科 财 务 管 理 学 课 程 教 学 大 纲 编 写 而 成 的 本 书 执 笔 者 都 是 长 期 工 作 在 财 务 管 理 教 学 一 线 的 专 业 教 师,
!!!!!!!!!!
有 限 理 性 动 物 精 神 及 市 场 崩 溃 对 情 绪 波 动 与 交 易 行 为 的 实 验 研 究 林 树 俞 乔 资 本 市 场 的 经 验 表 明 市 场 参 与 主 体 投 资 者 的 情 绪 波 动 对 资 产 交 易 与 价 格 决 定 产 生 了 不 可 忽 视 的 影 响 但 是 现 有 文 献 尚 缺 乏 对 这 一 重 要 因 素 的 研 究 因 此 本 文 的 目 的
18 上 报 该 学 期 新 生 数 据 至 阳 光 平 台 第 一 学 期 第 四 周 至 第 六 周 19 督 促 学 习 中 心 提 交 新 增 专 业 申 请 第 一 学 期 第 四 周 至 第 八 周 20 编 制 全 国 网 络 统 考 十 二 月 批 次 考 前 模 拟 题 第 一 学
1 安 排 组 织 全 国 网 络 统 考 九 月 批 次 网 上 考 前 辅 导 第 一 学 期 第 一 周 统 考 考 前 半 个 月 2 下 发 全 国 网 络 统 考 九 月 批 次 准 考 证 第 一 学 期 第 一 周 导 出 下 半 年 成 人 本 科 学 士 学 位 英 语 统 一 考 试 报 考 3 信 息 第 一 学 期 第 一 周 4 教 学 计 划 和 考 试 计 划 上 网,
ETF、分级基金规模、份额变化统计20130816
ETF 分 级 基 金 规 模 份 额 变 化 统 计 截 至 上 周 末, 全 市 场 股 票 型 ETF 规 模 约 1451 亿, 份 额 约 1215 亿,ETF 总 份 额 及 规 模 的 周 变 动 值 分 别 为 -23-44 亿, 份 额 与 规 模 均 下 降 ; 分 级 基 金 规 模 约 438 亿, 份 额 572 亿, 总 份 额 及 规 模 的 周 变 动 值 分 别 为
目 录 一 系 统 访 问... 1 二 门 户 首 页 申 报 用 户 审 核 用 户... 2 三 系 统 登 录 用 户 名 密 码 登 录 新 用 户 注 册 用 户 登 录 已 注 册 用
水 路 运 输 建 设 综 合 管 理 信 息 系 统 - 门 户 系 统 用 户 手 册 二 零 一 五 年 十 一 月 目 录 一 系 统 访 问... 1 二 门 户 首 页... 1 1. 申 报 用 户... 1 2. 审 核 用 户... 2 三 系 统 登 录... 4 1. 用 户 名 密 码 登 录... 4 1.1 新 用 户 注 册... 4 1.2 用 户 登 录... 7
作 为 生 产 者 式 文 本 的 女 性 主 义 通 俗 小 说 梅 丽 本 文 借 鉴 文 化 研 究 理 论 家 约 翰 费 斯 克 的 生 产 者 式 文 本 这 一 概 念 考 察 女 性 主 义 通 俗 小 说 的 文 本 特 征 写 作 策 略 和 微 观 政 治 意 义 女 性 主 义 通 俗 小 说 通 过 对 传 统 通 俗 小 说 的 挪 用 和 戏 仿 传 播 女 性 主 义
Microsoft Word - 资料分析练习题09.doc
行 测 高 分 冲 刺 练 习 题 资 料 分 析 ( 共 15 题, 参 考 时 限 10 分 钟 ) 材 料 题 - 1 2012 年 1 月 某 小 区 成 交 的 二 手 房 中, 面 积 为 60 平 方 米 左 右 的 住 宅 占 总 销 售 套 数 的 ( ) A.25% B.35% C.37.5% 长 沙 市 雨 花 区 侯 家 塘 佳 天 国 际 大 厦 北 栋 20 楼 第 1
抗 日 战 争 研 究 年 第 期
田 子 渝 武 汉 抗 战 时 期 是 国 共 第 二 次 合 作 的 最 好 时 期 在 国 共 合 作 的 基 础 上 出 现 了 抗 日 救 亡 共 御 外 侮 的 局 面 这 个 大 好 局 面 的 出 现 与 中 共 长 江 局 的 丰 功 伟 绩 是 分 不 开 的 但 长 期 以 来 由 于 有 一 个 王 明 的 右 倾 错 误 直 接 影 响 了 对 它 的 全 面 科 学 准 确
对 当 前 小 说 艺 术 倾 向 的 分 析 陈 晓 明 人 民 性 是 一 个 现 代 性 概 念 近 年 来 艺 术 上 趋 于 成 熟 的 一 批 作 家 倾 向 于 表 现 底 层 民 众 苦 难 的 生 活 这 使 他 们 的 作 品 具 有 现 实 主 义 的 显 著 特 征 在 对 苦 难 生 活 的 把 握 中 对 人 物 性 格 和 命 运 的 展 示 中 这 些 小 说 在 人
<433A5C55736572735C6B73625C4465736B746F705CB9FABCCAD6D0D2BDD2A9D7A8D2B5B8DFBCB6BCBCCAF5D6B0B3C6C6C0C9F3C9EAC7EBD6B8C4CFA3A832303136CDA8D3C3B0E6A3A92E646F63>
附 件 1 国 际 中 药 专 业 高 级 技 术 职 称 评 审 条 件 及 报 名 材 料 一 系 列 ( 一 ) 中 1 高 级 专 科 ( 副 ) 高 级 专 科 ( 副 ) 1 取 得 中 专 科 职 称 后, 独 立 从 事 中 临 床 实 践 5 年 以 上 2 取 得 中 博 士 学 位 后, 临 床 实 践 2 年 以 上 3 取 得 中 硕 士 学 位 后, 临 床 实 践 7
随着执业中医师资格考试制度的不断完善,本着为我校中医学专业认证服务的目的,本文通过对我校中医类毕业生参加2012年和2013年的中医执业医师考试成绩及通过率、掌握率进行分析,并与全国的平均水平进行差异比较分析,以此了解我校执业中医师考试的现状,进而反映我校中医类课程总体教学水平,发现考核知识模块教学中存在的不足,反馈给相关学院和教学管理部门,以此提高教学和管理水平。
2012-2013 中 医 类 别 执 业 医 师 综 合 笔 试 成 绩 分 析 反 馈 报 告 教 务 处 二 零 一 三 年 三 月 1 目 录 1 前 言 3 2 2012-2013 中 医 类 别 执 业 医 师 综 合 笔 试 成 绩 分 析 反 馈 报 告 4 附 件 1:2012 年 中 医 类 别 医 师 资 格 综 合 笔 试 院 校 学 科 成 绩 分 析 报 告 附 件 2:2013
¹ º ¹ º 农 业 流 动 人 口 是 指 户 口 性 质 为 农 业 户 口 在 流 入 地 城 市 工 作 生 活 居 住 一 个 月 及 以 上 的 流 动 人 口 非 农 流 动 人 口 是 指 户 口 性 质 为 非 农 户 口 在 流 入 地 城 市 工 作 生 活 居 住 一 个
¹ 改 革 开 放 年 来 人 口 流 动 规 模 持 续 增 加 对 我 国 社 会 经 济 的 持 续 发 展 起 到 了 重 要 作 用 为 全 面 了 解 我 国 流 动 人 口 生 存 状 况 准 确 把 握 流 动 人 口 发 展 规 律 和 趋 势 不 断 加 强 流 动 人 口 服 务 管 理 引 导 人 口 有 序 流 动 合 理 分 布 国 家 人 口 计 生 委 于 年 月 启
黄 金 原 油 总 持 仓 增 长, 同 比 增 幅 分 别 为 4.2% 和 4.1% 而 铜 白 银 以 及 玉 米 则 出 现 减 持, 减 持 同 比 减 少 分 别 为 9.4%,9.4% 以 及 6.5% 大 豆, 豆 粕 结 束 连 续 4 周 总 持 仓 量 增 长, 出 现 小 幅
小 麦 净 多 持 仓 增 加, 豆 油 豆 粕 净 多 持 仓 减 少 美 国 CFTC 持 仓 报 告 部 门 : 市 场 研 究 与 开 发 部 类 型 : 量 化 策 略 周 报 日 期 :212 年 5 月 7 日 电 话 :592-5678753 网 址 :www.jinyouqh.com 主 要 内 容 : 根 据 美 国 CFTC 公 布 的 数 据, 本 报 告 中 的 11 个
目 录 关 于 图 标... 3 登 陆 主 界 面... 3 工 单 管 理... 5 工 单 列 表... 5 搜 索 工 单... 5 工 单 详 情... 6 创 建 工 单... 9 设 备 管 理 巡 检 计 划 查 询 详 情 销 售 管
宝 汇 德 Turbocare 微 服 务 系 统 客 户 操 作 手 册 Version 2.0 北 京 宝 汇 德 技 术 服 务 器 有 限 公 司 技 术 研 发 部 目 录 关 于 图 标... 3 登 陆 主 界 面... 3 工 单 管 理... 5 工 单 列 表... 5 搜 索 工 单... 5 工 单 详 情... 6 创 建 工 单... 9 设 备 管 理... 10 巡
4 进 入 交 互 区 设 置 的 组 件 管 理, 在 组 件 管 理 中, 教 师 可 以 选 择 课 程 空 间 中 的 所 有 组 件, 并 通 过 点 击 启 用 或 不 启 用 选 定 组 件 在 课 程 空 间 中 的 显 示 5 进 入 工 作 室 管 理 的 工 作 室 首 页,
网 络 教 育 新 平 台 教 师 使 用 简 易 手 册 一 登 录 教 师 工 作 室 1 打 开 西 南 科 技 大 学 网 络 教 育 教 学 教 务 新 平 台 主 页 面 :http://www.swust.net.cn/ 2 在 主 页 面 左 边 的 登 陆 区 中, 用 户 名 和 密 码 处 分 别 输 入 自 己 的 用 户 名 ( 教 师 ID 号 ) 和 密 码 ( 初 始
Microsoft Word - 文件汇编.doc
北 京 市 中 医 管 理 局 二 一 五 年 四 月 ... 1... 18 2015... 30 京 中 医 政 字 [2014]160 号 1 2 一 充 分 认 识 中 医 健 康 乡 村 建 设 工 作 的 重 要 意 义 二 建 立 健 全 工 作 保 障 机 制 2014 12 15 三 做 好 工 作 启 动 的 准 备 事 宜 1 2014 12 15 5-10 2014 12 15
际 联 考 的 非 美 术 类 本 科, 提 前 批 本 科 体 育 类 第 一 批 第 二 批 第 三 批 的 理 工 类 和 文 史 类 本 科 平 行 志 愿, 考 生 可 以 填 报 6 所 院 校 志 愿 符 合 贫 困 地 区 专 项 计 划 和 农 村 考 生 专 项 计 划 报 考
第 四 部 分 平 行 志 愿 57. 什 么 是 平 行 志 愿?/ 32 58. 我 省 在 哪 个 批 次 实 行 平 行 志 愿? 考 生 最 多 可 以 填 报 几 所 院 校 志 愿?/ 32 59. 第 一 二 三 批 本 科 平 行 志 愿 如 何 投 档?/ 32 60. 艺 术 本 科 ( 二 ) 艺 术 本 科 ( 三 ) 和 体 育 本 科 的 平 行 志 愿 如 何 投 档?/
超 级 玛 丽 JAVA 小 游 戏 测 试 报 告 1. 导 言 1.1 编 写 目 的 该 文 档 的 目 的 是 描 述 超 级 玛 丽 JAVA 小 游 戏 的 系 统 测 试 的 总 结 报 告, 其 主 要 内 容 包 括 : 系 统 环 境 的 介 绍 功 能 的 实 现 的 测 试
超 级 玛 丽 游 戏 测 试 报 告 目 录 1. 导 言... 2 1.1 编 写 目 的... 2 1.2 项 目 范 围... 2 1.3 参 考 资 料... 2 1.4 缩 写 说 明... 2 1.5 术 语 定 义... 2 1.6 版 本 更 新 信 息... 3 2. 测 试 设 计... 3 2.1 测 试 要 点... 3 2.2 测 试 时 间 地 点 人 员... 3 2.3
附 件 : 上 海 市 建 筑 施 工 企 业 施 工 现 场 项 目 管 理 机 构 关 键 岗 位 人 员 配 备 指 南 二 一 四 年 九 月 十 一 日 2
公 开 上 海 市 城 乡 建 设 和 管 理 委 员 会 文 件 沪 建 管 2014 758 号 上 海 市 城 乡 建 设 和 管 理 委 员 会 关 于 印 发 上 海 市 建 筑 施 工 企 业 施 工 现 场 项 目 管 理 机 构 关 键 岗 位 人 员 配 备 指 南 的 通 知 各 区 县 建 设 和 交 通 委 员 会 : 为 进 一 步 加 强 对 建 设 工 程 施 工 现
珠江钢琴股东大会
证 券 代 码 :002678 证 券 简 称 : 珠 江 钢 琴 公 告 编 号 :2015-038 广 州 珠 江 钢 琴 集 团 股 份 有 限 公 司 2015 年 年 度 股 东 大 会 决 议 公 告 本 公 司 及 董 事 会 全 体 成 员 保 证 信 息 披 露 的 内 容 真 实 准 确 完 整, 没 有 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏 特 别 提 示 :
<4D F736F F D D323630D6D0B9FAD3A6B6D4C6F8BAF2B1E4BBAFB5C4D5FEB2DFD3EBD0D0B6AF C4EAB6C8B1A8B8E6>
中 国 应 对 气 候 变 化 的 政 策 与 行 动 2013 年 度 报 告 国 家 发 展 和 改 革 委 员 会 二 〇 一 三 年 十 一 月 100% 再 生 纸 资 源 目 录 前 言... 1 一 应 对 气 候 变 化 面 临 的 形 势... 3 二 完 善 顶 层 设 计 和 体 制 机 制... 4 三 减 缓 气 候 变 化... 8 四 适 应 气 候 变 化... 20
一 从 分 封 制 到 郡 县 制 一 从 打 虎 亭 汉 墓 说 起
县 乡 两 级 的 政 治 体 制 改 革 如 何 建 立 民 主 的 合 作 新 体 制 县 乡 人 大 运 行 机 制 研 究 课 题 组 引 言 一 从 分 封 制 到 郡 县 制 一 从 打 虎 亭 汉 墓 说 起 二 密 县 在 周 初 是 两 个 小 国 密 国 和 郐 国 三 密 县 的 第 一 任 县 令 卓 茂 四 明 清 时 代 的 密 县 二 从 集 中 的 动 员 体
<4D6963726F736F667420576F7264202D2032303133C4EAB9A4B3CCCBB6CABFCAFDD1A7D7A8D2B5BFCEBFBCCAD4B4F3B8D9D3EBD2AAC7F3>
工 程 硕 士 数 学 考 试 大 纲 与 要 求 ( 包 括 高 等 数 学 和 线 性 代 数 ) 一 函 数 极 限 与 连 续 第 一 部 分 : 高 等 数 学 考 试 内 容 函 数 的 概 念 及 表 示 法 函 数 的 有 界 性 单 调 性 周 期 性 和 奇 偶 性 复 合 函 数 反 函 数 分 段 函 数 和 隐 函 数 基 本 初 等 函 数 的 性 质 及 其 图 形 初
第2章 数据类型、常量与变量
第 2 章 数 据 类 型 常 量 与 变 量 在 计 算 机 程 序 中 都 是 通 过 值 (value) 来 进 行 运 算 的, 能 够 表 示 并 操 作 值 的 类 型 为 数 据 类 型 在 本 章 里 将 会 介 绍 JavaScript 中 的 常 量 (literal) 变 量 (variable) 和 数 据 类 型 (data type) 2.1 基 本 数 据 类 型 JavaScript
世华财讯模拟操作手册
第 一 部 分 : 股 票 模 拟 操 作 部 分 1. 登 录 与 主 界 面 1.1 登 录 学 生 在 桌 面 上, 打 开 世 华 文 件 夹, 直 接 双 击 文 件 夹 中 的 快 捷 图 标, 系 统 弹 出 世 华 财 讯 模 拟 股 票 交 易 系 统 ( 客 户 端 ) 窗 口, 如 图 1.1 所 示 图 1.1 请 输 入 登 录 名 称 及 密 码, 单 击 确 认 登 录
1600 1000 40 50 2030 2000 采 取 行 动 的 机 会 90% 开 拓 成 功 的 道 路 2
简 略 版 本 :2015 3 10 2016 2021 全 球 卫 生 部 门 病 毒 性 肝 炎 战 略 2016 2021 2015 3 12 2012 2010 2014 2015 2016 2021 140 55% 35% 5 15% 5 20% 2.4 1.3 1.5 1 1600 1000 40 50 2030 2000 采 取 行 动 的 机 会 90% 开 拓 成 功 的 道 路
3 月 30 日 在 中 国 证 券 报 上 海 证 券 报 证 券 时 报 证 券 日 报 和 上 海 证 券 交 易 所 网 站 上 发 出 召 开 本 次 股 东 大 会 公 告, 该 公 告 中 载 明 了 召 开 股 东 大 会 的 日 期 网 络 投 票 的 方 式 时 间 以 及 审
北 京 市 君 致 律 师 事 务 所 关 于 浪 潮 软 件 股 份 有 限 公 司 2015 年 度 股 东 大 会 的 法 律 意 见 书 致 : 浪 潮 软 件 股 份 有 限 公 司 北 京 市 君 致 律 师 事 务 所 ( 以 下 简 称 本 所 ) 受 浪 潮 软 件 股 份 有 限 公 司 ( 以 下 简 称 公 司 ) 的 委 托, 指 派 律 师 出 席 2016 年 4 月
公 开 刊 物 须 有 国 内 统 一 刊 (CN), 发 表 文 章 的 刊 物 需 要 在 国 家 新 闻 出 版 广 电 总 局 (www.gapp.gov.cn 办 事 服 务 便 民 查 询 新 闻 出 版 机 构 查 询 ) 上 能 够 查 到 刊 凡 在 有 中 国 标 准 书 公 开
杭 教 人 2014 7 杭 州 市 教 育 局 关 于 中 小 学 教 师 系 列 ( 含 实 验 教 育 管 理 ) 晋 升 高 级 专 业 技 术 资 格 有 关 论 文 要 求 的 通 知 各 区 县 ( 市 ) 教 育 局 ( 社 发 局 ), 直 属 学 校 ( 单 位 ), 委 托 单 位 : 为 进 一 步 规 范 杭 州 市 中 小 学 教 师 系 列 ( 含 实 验 教 育 管
第二部分 阅读理解(Part II Reabing Comprehension)
吉 林 省 成 人 本 科 学 士 学 位 日 语 统 一 考 试 大 纲 总 则 为 适 应 成 人 高 等 教 育 本 科 毕 业 生 申 请 学 士 学 位 外 语 统 一 考 试 的 要, 根 据 国 务 院 学 位 委 员 会 关 于 授 予 成 人 高 等 教 育 本 科 毕 业 生 学 士 学 位 暂 行 规 定 和 国 务 院 学 位 委 员 会 原 国 家 教 育 委 员 会 关
工 程 勘 察 资 质 标 准 根 据 建 设 工 程 勘 察 设 计 管 理 条 例 和 建 设 工 程 勘 察 设 计 资 质 管 理 规 定, 制 定 本 标 准 一 总 则 ( 一 ) 本 标 准 包 括 工 程 勘 察 相 应 专 业 类 型 主 要 专 业 技 术 人 员 配 备 技 术
住 房 和 城 乡 建 设 部 关 于 印 发 工 程 勘 察 资 质 标 准 的 通 知 建 市 [2013]9 号 各 省 自 治 区 住 房 和 城 乡 建 设 厅, 北 京 市 规 划 委, 天 津 上 海 市 建 设 交 通 委, 重 庆 市 城 乡 建 设 委, 新 疆 生 产 建 设 兵 团 建 设 局, 总 后 基 建 营 房 部 工 程 局, 国 务 院 有 关 部 门 建 设 司,
第 六 章 债 券 股 票 价 值 评 估 1 考 点 一 : 债 券 价 值 的 影 响 因 素 2
Professional Accounting Education Provided by Academy of Professional Accounting (APA) CPA 财 务 管 理 习 题 班 第 八 讲 债 券 股 票 价 值 评 估 IreneGao ACCAspace 中 国 ACCA 国 际 注 册 会 计 师 教 育 平 台 Copyright ACCAspace.com
正 规 培 训 达 规 定 标 准 学 时 数, 并 取 得 结 业 证 书 二 级 可 编 程 师 ( 具 备 以 下 条 件 之 一 者 ) (1) 连 续 从 事 本 职 业 工 作 13 年 以 上 (2) 取 得 本 职 业 三 级 职 业 资 格 证 书 后, 连 续 从 事 本 职 业
1. 职 业 概 况 1.1 职 业 名 称 可 编 程 师 1.2 职 业 定 义 可 编 程 师 国 家 职 业 标 准 从 事 可 编 程 序 控 制 器 (PLC) 选 型 编 程, 并 对 应 用 进 行 集 成 和 运 行 管 理 的 人 员 1.3 职 业 等 级 本 职 业 共 设 四 个 等 级, 分 别 为 : 四 级 可 编 程 师 ( 国 家 职 业 资 格 四 级 ) 三
微 积 分 ( 二 ) 教 学 大 纲 2 (2010 版 ) 课 程 编 码 :110861 课 程 名 称 : 微 积 分 学 时 / 学 分 :36/2 先 修 课 程 : 初 等 数 学 立 体 几 何 平 面 解 析 几 何 微 积 分 ( 一 ) 适 用 专 业 : 人 力 资 源 管
微 积 分 ( 二 ) 教 学 大 纲 2 (2010 版 ) 课 程 编 码 :110861 课 程 名 称 : 微 积 分 学 时 / 学 分 :36/2 先 修 课 程 : 初 等 数 学 立 体 几 何 平 面 解 析 几 何 微 积 分 ( 一 ) 适 用 专 业 : 人 力 资 源 管 理 等 专 业 开 课 教 研 室 : 大 学 数 学 教 研 室 执 笔 : 庄 乐 森 审 定 :
抗 日 战 争 研 究! 年 第 期 # # # # #!!!!!!!! #!!
洪 小 夏 中 美 合 作 所 是 抗 战 时 期 中 美 两 国 在 反 法 西 斯 统 一 战 线 背 景 下 建 立 的 一 个 抗 日 军 事 合 作 机 构 但 过 去 由 文 学 影 视 作 品 给 人 造 成 的 印 象 似 乎 是 一 个 美 蒋 反 动 派 勾 结 的 集 中 营 中 共 十 一 届 三 中 全 会 以 后 逐 渐 有 人 为 其 正 名 但 长 期 宣 传 形 成
云信Linux SSH认证代理用户手册
Windows 主 机 登 录 保 护 (RDP) 管 理 员 配 置 手 册 V1.0 云 信 事 业 部 飞 天 诚 信 科 技 股 份 有 限 公 司 www.cloudentify.com 章 节 目 录 第 1 章 管 理 平 台 配 置 说 明... 1 1.1 注 册... 1 1.2 登 录... 3 1.3 添 加 应 用... 4 1.4 添 加 用 户... 7 1.5 激 活
!!!!!
美 国 旧 金 山 湾 区 田 野 调 查 札 记 !!!!! ! 个 案 一 男 士 年 龄 岁 籍 贯 沈 阳! !! 个 案 二 女 士 年 龄 岁 籍 贯 沈 阳!! !!! 一 新 古 典 经 济 学 移 民 理 论 的 解 释!! 二 制 度 层 面 的 原 因! 三 社 会 资 本 理 论 与 东 北 人 移 民 网 络 !!!!!! 四 社 会 关 系 网 络 资 源 配 置 理 论
中 中 中 中 部 中 岗 位 条 件 历 其 它 历 史 师 地 理 师 生 物 师 体 与 健 康 师 04 05 06 07 从 事 中 历 史 工 从 事 中 地 理 工 从 事 中 生 物 工 从 事 中 体 与 健 康 工 2. 课 程 与 论 ( 历 史 ); 2. 科 ( 历 史 )
中 中 中 部 中 26 年 系 统 事 业 公 开 计 划 岗 位 条 件 历 其 它 数 师 英 语 师 物 理 师 02 0 从 事 中 数 工 从 事 中 英 语 工 从 事 中 物 理 工 2. 课 程 与 论 ( 数 ); 2. 科 ( 数 );. 数 ; 4. 基 础 数 ; 5. 计 算 数 ; 6. 概 率 论 与 数 理 统 计 ; 7. 应 用 数 ; 8. 数. 课 程 与
Your Child is Myopic
甘 肃 小 学 生 保 护 视 力, 提 高 成 绩 项 目 视 力 健 康 知 识 培 训 中 国 科 学 院 农 业 政 策 研 究 中 心 西 北 大 学 西 北 社 会 经 济 发 展 研 究 中 心 中 山 大 学 中 山 眼 科 中 心 2012 年 10 月 各 位 老 师, 大 家 好! 首 先 感 谢 大 家 来 参 加 今 天 的 活 动 我 叫 X, 来 自 中 科 院, 这
证券代码:000066 证券简称:长城电脑 公告编号:2014-000
证 券 代 码 :000066 证 券 简 称 : 长 城 电 脑 公 告 编 号 :2016-092 中 国 长 城 计 算 机 深 圳 股 份 有 限 公 司 2016 年 度 第 三 次 临 时 股 东 大 会 决 议 公 告 本 公 司 及 其 董 事 会 全 体 成 员 保 证 信 息 披 露 内 容 的 真 实 准 确 完 整, 没 有 虚 假 记 载 误 导 性 陈 述 或 重 大 遗
第 期 李 伟 等 用 方 法 对 中 国 历 史 气 温 数 据 插 值 可 行 性 讨 论
李 伟 李 庆 祥 江 志 红 使 用 插 值 方 法 对 已 经 过 质 量 控 制 和 均 一 化 的 年 月 年 月 中 国 全 部 基 本 基 准 站 气 温 资 料 逐 月 进 行 空 间 插 值 通 过 站 点 的 实 际 序 列 与 插 值 后 格 点 序 列 进 行 比 较 针 对 相 关 系 数 和 线 性 趋 势 等 多 个 量 来 检 验 方 法 对 气 候 资 料 插 值 的
<4D6963726F736F667420576F7264202D20BFC9B1E0B3CCD0F2BFD8D6C6CFB5CDB3C9E8BCC6CAA6B9FABCD2D6B0D2B5B1EAD7BC2E646F63>
国 家 职 业 标 准 1 可 编 程 序 控 制 系 统 设 计 师 国 家 职 业 标 准 1. 职 业 概 况 1.1 职 业 名 称 可 编 程 序 控 制 系 统 设 计 师 1.2 职 业 定 义 从 事 可 编 程 序 控 制 器 (PLC) 选 型 编 程, 并 对 应 用 系 统 进 行 设 计 集 成 和 运 行 管 理 的 人 员 1.3 职 业 等 级 本 职 业 共 设 四
抗 日 战 争 研 究 年 第 期 % & ( # #
张 生 汪 伪 投 敌 后 出 于 政 治 需 要 一 直 着 意 争 夺 国 民 党 政 治 符 号 并 加 以 运 用 为 此 它 与 重 庆 方 面 进 行 了 激 烈 的 交 锋 并 与 日 本 方 面 进 行 了 艰 苦 的 交 涉 应 该 说 汪 伪 的 努 力 是 多 方 面 的 但 由 于 重 庆 方 面 比 较 得 力 的 反 制 日 方 本 于 自 身 利 益 的 掣 肘 以 及
易 迪 拓 培 训 专 注 于 微 波 射 频 天 线 设 计 人 才 的 培 养 网 址 :http://www.edatop.com 如 何 学 习 天 线 设 计 天 线 设 计 理 论 晦 涩 高 深, 让 许 多 工 程 师 望 而 却 步, 然 而 实 际 工 程 或 实 际 工 作 中 在 设 计 天 线 时 却 很 少 用 到 这 些 高 深 晦 涩 的 理 论 实 际 上, 我 们
目 录 一 激 活 账 号... 2 二 忘 记 密 码 后 如 何 找 回 密 码?... 3 三 如 何 管 理 学 校 信 息 及 球 队 学 生 教 师 等 信 息... 6 四 如 何 发 布 本 校 校 园 文 化?... 11 五 如 何 向 教 师 发 送 通 知?... 13 六
一 刻 校 园 足 球 管 理 平 台 使 用 说 明 ( 学 校 管 理 员 版 ) 一 刻 软 件 科 技 有 限 公 司 目 录 一 激 活 账 号... 2 二 忘 记 密 码 后 如 何 找 回 密 码?... 3 三 如 何 管 理 学 校 信 息 及 球 队 学 生 教 师 等 信 息... 6 四 如 何 发 布 本 校 校 园 文 化?... 11 五 如 何 向 教 师 发 送
海 外 中 国 电 影 研 究 的 东 方 主 义 话 语 方 式 以 海 外 谢 晋 电 影 研 究 的 文 献 学 分 析 为 例 杨 俊 蕾 复 旦 大 学 中 文 系 上 海 长 期 以 来 海 外 学 者 围 绕 中 国 电 影 的 研 究 存 在 着 东 方 主 义 惯 性 思 维 理 解 这 个 问 题 的 前 奏 可 以 联 系 到 海 外 电 影 关 于 中 国 华 人 形 象 塑
收 入 支 出 项 目 2016 年 预 算 项 目 2016 年 预 算 预 算 01 表 单 位 : 万 元 ( 保 留 两 位 小 数 ) 一 公 共 财 政 预 算 拨 款 50.06 一 人 员 经 费 23.59 1 一 般 财 力 50.06 1 人 员 支 出 21.95 2 成 品
100.12 2016 年 龙 岩 市 部 门 预 算 表 报 送 日 期 : 年 月 日 单 位 负 责 人 签 章 : 财 务 负 责 人 签 章 : 制 表 人 签 章 : 收 入 支 出 项 目 2016 年 预 算 项 目 2016 年 预 算 预 算 01 表 单 位 : 万 元 ( 保 留 两 位 小 数 ) 一 公 共 财 政 预 算 拨 款 50.06 一 人 员 经 费 23.59
自 服 务 按 钮 无 法 访 问 新 系 统 的 自 服 务 页 面 因 此 建 议 用 户 从 信 网 中 心 (http://nc.tju.edu.cn) 主 页, 右 下 角 位 置 的 常 用 下 载, 或 校 园 网 用 户 自 服 务 (http://g.tju.edu.cn) 首 页
校 园 网 认 证 计 费 系 统 变 更 说 明 及 使 用 帮 助 为 提 高 校 园 网 的 可 靠 性 和 可 用 性, 提 升 用 户 的 上 网 体 验, 同 时 也 为 解 决 近 期 校 园 网 无 法 认 证 或 登 录 页 面 弹 出 缓 慢 的 问 题, 信 网 中 心 于 近 期 对 校 园 网 认 证 计 费 系 统 进 行 升 级 切 换 现 将 升 级 后 新 系 统
上证指数
上 证 与 修 正 方 法 一 ( 一 ) 计 算 公 式 1. 上 证 指 数 系 列 均 采 用 派 许 加 权 综 合 价 格 指 数 公 式 计 算 2. 上 证 180 指 数 上 证 50 指 数 等 以 成 份 股 的 调 整 股 本 数 为 权 数 进 行 加 权 计 算, 计 算 公 式 为 : 报 告 期 指 数 =( 报 告 期 样 本 股 的 调 整 市 值 / 基 期 )
第1篇 道路桥梁工程技术核心专业课程标准及学习绩效考评体系
陕 西 铁 路 工 程 职 业 技 术 学 院 课 程 标 准 ( 适 用 建 筑 工 程 技 术 专 业 ) 课 程 名 称 : 单 位 工 程 施 工 组 织 设 计 执 笔 人 : 王 恒 博 审 定 人 : 编 制 时 间 : 年 月 日 陕 西 铁 路 工 程 职 业 技 术 学 院 制 表 二 〇 一 一 年 九 月 课 程 标 准 一 课 程 基 本 信 息 课 程 编 码 略 开 设
新, 各 地 各 部 门 ( 单 位 ) 各 文 化 事 业 单 位 要 高 度 重 视, 切 实 加 强 领 导, 精 心 组 织 实 施 要 根 据 事 业 单 位 岗 位 设 置 管 理 的 规 定 和 要 求, 在 深 入 调 查 研 究 广 泛 听 取 意 见 的 基 础 上, 研 究 提
广 西 壮 族 自 治 区 人 事 厅 广 西 壮 族 自 治 区 文 化 厅 文 件 桂 人 发 2009 42 号 关 于 印 发 广 西 壮 族 自 治 区 文 化 事 业 单 位 岗 位 设 置 结 构 比 例 指 导 标 准 的 通 知 各 市 人 事 局 文 化 局, 区 直 各 部 门 ( 单 位 ): 根 据 人 事 部 印 发 的 事 业 单 位 岗 位 设 置 管 理 试 行 办
用节点法和网孔法进行电路分析
运 用 节 点 法 和 网 孔 法 进 行 电 路 分 析 众 所 周 知, 运 用 基 尔 霍 夫 定 律 和 欧 姆 定 律, 我 们 可 以 对 任 何 一 个 电 路 进 行 分 析, 以 确 定 其 运 行 条 件 ( 电 流 和 电 压 值 ) 一 般 电 路 分 析 的 难 点 在 于 用 最 少 的 联 立 方 程 描 述 电 路 的 运 行 特 性 在 这 一 讲 里, 我 们 将
中 国 软 科 学 年 第 期!!!
山 寨 模 式 的 形 成 机 理 及 其 对 组 织 创 新 的 启 示 山 寨 模 式 的 形 成 机 理 及 其 对 组 织 创 新 的 启 示 陶 厚 永 李 燕 萍 骆 振 心 武 汉 大 学 经 济 与 管 理 学 院 武 汉 大 学 中 国 产 学 研 合 作 问 题 研 究 中 心 湖 北 武 汉 北 京 大 学 经 济 研 究 所 光 华 天 成 博 士 后 工 作 站 北 京 本
