1、高 等 学 校 电 工 电 子 实 践 系 列现 代 电 子 技 术 V H D L 与 数 字 系 统 设 计杨 刚 龙 海 燕 编 著Publish ing House of Electr on ics In dust ry北 京 BEIJIN G内 容 简 介本 书 作 为 现 代 电 子 技 术 课 程 教 学 的 重 要 组 成 部 分 , 将 V HDL 语 言 与 数 字 系 统 设 计 有 机 地 结 合 起来 。书 中 第 1 章 为 V H DL 语 言 基 础 , 介 绍 V H DL 的 语 句 和 语 法 ; 第 2 , 3 章 为 组 合 电 路 、 时 序 电 路
2、 的 V H DL 基 础 实 验 , 使 读 者 轻 松 入 门 并 巩 固 数 字 电 路 基 础 知 识 ; 第 4 章 为 状 态 机 设 计 ; 第 5 章 为 存 储 器 设计 ; 第 6 章 为 DSP 设 计 实 例 ; 第 7 章 为 数 字 系 统 设 计 实 例 。 全 书 共 有 108 个 设 计 范 例 , 读 者 可 结 合 EDA 工 具 和 F P GA/ CPLD 开 发 系 统 进 行 实 践 , 参 照 设 计 范 例 先 做 改 动 设 计 , 逐 渐 熟 悉 V HDL 开 发 后 , 就 可 独 立 设 计 出 自 己 的 源 程 序 。本书 可
3、作 为 高 等 学 校 电 类 和 绝大 部 分 非 电 类 专 业 本 科 生 、 专 科 生 教 材 , 亦 可 作 为 电 视 大 学 、 职 业 学 校 以 及远 程 教 育 、 网络 教 育 的 教 材 , 本 书 还 可 用 做 从 事 数 字 系 统 设 计 的 工 程 技 术 人 员 的 参 考 书 。未 经 许 可 , 不 得 以 任 何 方 式 复 制 或 抄 袭 本 书 之 部 分 或 全 部 内 容 。 版 权 所 有 , 侵 权 必 究 。图 书 在 版 编 目 ( CIP ) 数 据现 代 电 子 技 术 : V H DL 与 数 字 系 统 设 计 / 杨 刚 ,
4、 龙 海 燕 编 著 .北 京 : 电 子 工 业 出 版 社 , 2004 .4 (高 等 学 校 电 工 电 子 实 践 系 列 )ISBN 7-5053-9812-1 .现 . . . . 杨 . . . 龙 . . . . 数 字 电 路 - 电 路 设 计 - 高 等 学 校 - 教 材 硬 件 描 述 语 言 , V H DL -程 序 设 计 - 高 等 学 校 - 教 材 .TN79中 国 版 本 图 书 馆 CIP 数 据 核 字 ( 2004) 第 028593 号策 划 编 辑 : 章 海 涛 责 任 编 辑 : 王 颖 印 刷 :出 版 发 行 : 电 子 工 业 出
5、版 社北 京 市 海 淀 区 万 寿 路 173 信 箱 邮编 100036经 销 : 各 地 新 华 书 店开 本 : 787980 1/ 16 印 张 : 21 字 数 : 437 千 字版 次 : 2004 年 4 月 第 1 版 2004 年 4 月 第 1 次 印 刷 印 数 : 册 定 价 : 元凡 购 买 电 子 工 业 出 版 社 的 图 书 , 如 有 缺 损 问 题 , 请 向 购 买 书 店 调 换 。 若 书 店售 缺 , 请 与 本 社 发 行 部 联 系。 联 系 电 话 : ( 010 )68279077。 质 量 投 诉 请 发 邮 件 至 zlts ph ei
6、 .com .cn , 盗 版 侵 权 举 报 请 发 邮 件 至 dbqq ph ei .com .cn。前 言V HDL 硬 件 描 述 语 言 是 目 前 国 内 外 数 字 系 统 的 主 流 设 计 语 言 , 也 是 现 代 电 子 技 术 发展 的 重 要 依 托 之 一 。 随 着 片 上 系 统 ( SOC ) 的 不 断 推 陈 出 新 , V H DL 的 语 言 内 涵 也 在 向 外延 伸 , 现 在 已 经 有 不 少 扩 充 子 集 支 持 SOC 的 开 发 。 与 此 同 时 , 各 种 EDA 工 具 广 泛 支 持 V HDL 的 I E E E 标 准
7、, 并 且 近 年 来 在 V HDL 建 模 、 综 合 、 仿 真 、 测 试 和 验 证 上 都 取 得 了 较 大 突 破 。 随 着 FPG A/ CP LD 器 件 规 模 在 千 万 门 级 基 础 上 继 续 扩 大 , 随 着 嵌 入 式 微 处 理 器 ( 如 A RM , Nios , M IPS) 迅 猛 发 展 , V H DL 的 应 用 也 从 传 统 的 数 字 系 统 设 计 , 扩 展 到 超 大规 模 集 成 电 路 设 计 、 嵌 入 式 系 统 设 计 当 中 , 并 在 以 通 信 、 自 动 控 制 、 计 算 机 为 代 表 的 信 息 领 域
8、中 占 据 重 要 地 位 。基 于 V H DL 的 广 泛 应 用 和 发 展 前 景 , 近 年 来 国 内 高 校 纷 纷 开 设 与 V HD L 相 关 的 各种 EDA 教 学 。 我 校 的 V H DL 教 学 开 展 也 较 早 , 通 过 这 些 年 的 教 学 和 实 践 , 我 们 深 刻 体 会 到 借 助 EDA 工 具 开 展 V H DL 教 学 , 对 学 生 掌 握 数 字 电 路 基 础 知 识 , 增 强 实 践 能 力 有 事 半 功 倍 的 效 果 。 另 外 , V H DL 教 学 作 为 信 息 类 专 业 基 础 平 台 课 开 设 , 对
9、 后 续 专 业 课 程 的 学习 有 着 重 要 的 铺 垫 作 用 。 例 如 , 通 过 对 状 态 机 V H DL 设 计 、 存 储 器 V HD L 设 计 , 对 后 续 “计 算 机 组 成 原 理” “、 嵌 入 式 系 统 设 计” 和 “ 计 算 机 控 制 系 统” 等 课 程 的 学 习 而 言 , 无 疑 是 起 着 承 上 启 下 的 作 用 ; 又 如 , 通 过 数 字 信 号 处 理 ( DSP ) 的 V H DL 设 计 , 对 于 后 续 “ 信 号 与 系 统” “数 字 信 号 处 理 原 理” 等 课 程 而 言 , V H DL 提 供 了
10、一 种 理 论 联 系 实 际 的 桥 梁 , 从 而 使 老 师 教 起 来 轻 松 , 学 生 学 起 来 有 兴 趣 。感 谢 电 子 工 业 出 版 社 将 本 书 列 入 其 规 划 出 版 的 高 等 学 校 电 工 电 子 实 践 系 列 教 材 丛 书 中 , 同 时 也 鞭 策 我 们 尽 快 地 总 结 这 些 年 来 的 教 学 经 验 , 同 时 吸 纳 当 前 EDA 技 术 进 展 , 从 而 形 成 教 材 。 经 过 我 们 艰 苦 而 仔 细 的 耕 耘 , 本 书 得 以 按 时 完 稿 。 在 写 作 风 格 上 , 我 们 力 图 从 实 践 角 度 入
11、 手 , 没 有 拘 泥 于 传 统 教 学 方 式 将 V HDL 当 做 一 门 语 言 课 ( 如 C 语 言 ) 来 教 。 读 者 翻 开 本 书 可 以 看 到 , 本 书 实 践 部 分 共 有 108 个 设 计 范 例 , 前 面 的 范 例 是 以数 字 电 路 各 组 成 要 素 为 主 线 , 密 切 结 合 数 字 电 路 基 础 教 学 内 容 来 安 排 的 。 对 学 生 而 言 , 有 了 一 种 比 照 的 基 础 , 就 能 轻 松 入 门 并 动 手 操 作 ; 对 于 V H DL 的 初 学 者 而 言 , 这 样 的 安 排 , 也 能 使 其 巩
12、 固 数 字 电 路 基 础 知 识 并 理 解 V H DL 基 本 组 成 模 块 的 设 计 。 在 掌 握 V H DL 基 本 设 计 以 后 , 读 者 可 以 回 过 头 来 仔 细 阅 读 第 1 章 V H DL 语 法 , 并 结 合 实 例 操 作 。 在 这 之后 , 本 书 安 排 有 状 态 机 设 计 、 存 储 器 设 计 、 DSP 设 计 以 及 数 字 系 统 设 计 实 例 , 读 者 可 结 合EDA 工 具 和 F PGA/ C PLD 开 发 系 统 进 行 实 践 , 参 照 设 计 实 例 先 做 改 动 设 计 , 逐 渐 熟 悉 V HDL
13、 设 计 和 仿 真 方 法 后 , 就 可 独 立 开 发 出 自 己 的 源 程 序 了 。本 书 由 杨 刚 、 龙 海 燕 共 同 编 著 。 四 川 省 自 动 化 仪 表 研 究 所 所 长 、 四 川 大 学 电 气 信 息 学 院 教 授 汪 道 辉 先 生 担 任 本 书 主 审 , 同 时 参 加 本 书 审 稿 工 作 还 有 四 川 大 学 电 气 信 息 学 院 的田 远 富 教 授 、 黄 华 教 授 、 夏 建 刚 副 教 授 , 感 谢 他 们 审 阅 全 书 , 并 提 出 宝 贵 意 见 。 作 者 在 编 写 过 程 中 还 得 到 四 川 大 学 电 气
14、 信 息 学 院 各 位 老 师 和 领 导 的 鼓 励 和 支 持 , 在 此 一 并 表 示 感 谢 !本 书 不 足 之 处 , 恳 请 读 者 批 评 指 正 。作 者2004 年 1 月 于 四 川 大 学目 录第 1 章 VH DL 语 言 基 础 11. 1 概 述 11. 2 V H DL 程 序 结 构 11. 2. 1 V H DL 程 序 的 基 本 结 构 11. 2. 2 实 体 31. 2. 3 结 构 体 51. 2. 4 配 置 71. 3 V H DL 的 设 计 资 源 101. 3. 1 库 101. 3. 2 程 序 包 121. 4 数 据 对 象 、
15、 类 型 及 操 作 符 151. 4. 1 V H DL 文 字 161. 4. 2 V H DL 数 据 对 象 171. 4. 3 V H DL 数 据 类 型 191. 4. 4 V H DL 操 作 符 271. 4. 5 属 性 描 述 与 定 义 语 句 311. 4. 6 V H DL 描 述 方 式 351. 5 V H DL 顺 序 语 句 381. 5. 1 赋 值 语 句 381. 5. 2 转 向 控 制 语 句 401. 5. 3 等 待 语 句 451. 5. 4 子 程 序 调 用 语 句 451. 5. 5 返 回 语 句 461. 5. 6 空 操 作 语
16、句 461. 5. 7 其 他 语 句 471. 6 V H DL 并 行 语 句 481. 6. 1 进 程 语 句 491. 6. 2 块 语 句 521. 6. 3 并 行 信 号 赋 值 语 句 551. 6. 4 并 行 过 程 调 用 语 句 571. 6. 5 元 件 例 化 语 句 581. 6. 6 生 成 语 句 591. 7 子 程 序 611. 7. 1 函 数 621. 7. 2 重 载 函 数 651. 7. 3 过 程 651. 7. 4 重 载 过 程 66第 2 章 组 合 逻 辑 电 路 基 础 实 验 672. 1 基 本 门 电 路 672. 1. 1
17、基 本 门 电 路 描 述 实 验 672. 1. 2 V H DL 实 验 快 速 入 门 682. 2 三 态 门 822. 3 总 线 缓 冲 器 842. 3. 1 单 向 总 线 缓 冲 器 842. 3. 2 双 向 总 线 缓 冲 器 862. 3. 3 74 H C245 双 向 总 线 缓 冲 器 872. 4 数 据 选 择 器 882. 4. 1 四 选 一 数 据 选 择 器 1 882. 4. 2 四 选 一 数 据 选 择 器 2 902. 4. 3 八 选 一 数 据 选 择 器 912. 4. 4 八 选 一 数 据 选 择 器 的 宏 调 用 922. 5 数
18、 据 分 配 器 932. 6 编 码 器 952. 6. 1 八 - 三 优 先 编 码 器 1 952. 6. 2 八 - 三 优 先 编 码 器 2 972. 6. 3 二 - 十 进 制 优 先 编 码 器 982. 7 译 码 器 992. 7. 1 二 - 四 译 码 器 992. 7. 2 三 - 八 译 码 器 1012. 7. 3 两 位 BCD - 七 段 静 态 L ED 译 码 器 1022. 7. 4 十 进 制 - 二 进 制 译 码 器 1042. 8 比 较 器 1052. 9 加 法 器 1072. 9. 1 半 加 器 1072. 9. 2 四 位 全 加
19、器 1082. 9. 3 八 位 全 加 器 1092. 10 减 法 器 1102. 10. 1 半 减 器 1102. 10. 2 四 位 全 减 器 1112. 11 奇 偶 校 验 电 路 和 数 据 检 测 器 1122. 11. 1 奇 偶 校 验 位 发 生 器 1122. 11. 2 奇 偶 校 验 位 检 测 器 1142. 12 移 位 器 1152. 13 补 码 生 成 电 路 1172. 14 锁 存 器 1172. 15 算 术 逻 辑 单 元 A L U 设 计 1192. 15. 1 两 位 算 术 逻 辑 单 元 A L U 设 计 1192. 15. 2 带
20、 进 位 四 位 算 术 逻 辑 单 元 A L U 设 计 121第 3 章 时 序 逻 辑 电 路 基 础 实 验 1253. 1 R S 触 发 器 1253. 2 T 触 发 器 1273. 3 J K 触 发 器 1283. 4 D 触 发 器 1303. 4. 1 D 触 发 器 基 本 设 计 1303. 4. 2 D 触 发 器 宏 调 用 1333. 4. 3 三 级 D 触 发 器 延 迟 电 路 1343. 5 寄 存 器 1353. 5. 1 n 位 寄 存 器 1353. 5. 2 24 位 寄 存 器 1373. 5. 3 24 位 寄 存 器 的 LPM 设 计
21、1383. 5. 4 多 种 功 能 的 寄 存 器 设 计 比 较 1403. 6 移 位 寄 存 器 1433. 6. 1 双 向 移 位 寄 存 器 1433. 6. 2 串 入 串 出 ( SISO ) 移 位 寄 存 器 1443. 6. 3 串 入 并 出 ( SIPO ) 移 位 寄 存 器 1463. 6. 4 并 入 串 出 ( PISO ) 移 位 寄 存 器 1473. 7 异 步 计 数 器 1483. 8 同 步 计 数 器 1503. 8. 1 同 步 二 十 四 进 制 计 数 器 1503. 8. 2 同 步 四 十 进 制 计 数 器 1523. 9 可 逆
22、计 数 器 1543. 10 移 存 型 计 数 器 1553. 10. 1 自 启 动 格 雷 码 钮 环 计 数 器 1553. 10. 2 移 存 型 七 进 制 计 数 器 1573. 11 模 可 变 计 数 器 1593. 11. 1 离 散 模 可 变 计 数 器 1593. 11. 2 模 256 以 内 任 意 可 变 计 数 器 1613. 12 分 频 器 1633. 12. 1 加 法 分 频 器 1633. 12. 2 减 法 分 频 器 1643. 12. 3 半 整 数 分 频 器 1663. 12. 4 积 分 分 频 器 1673. 13 脉 冲 发 生 和
23、整 形 1683. 13. 1 顺 序 脉 冲 发 生 器 1 1683. 13. 2 顺 序 脉 冲 发 生 器 2 1703. 13. 3 由 D 触 发 器 构 成 的 脉 冲 整 形 电 路 1713. 13. 4 脉 冲 整 形 计 数 器 172第 4 章 状 态 机 设 计 1754. 1 M oore 状 态 机 1754. 1. 1 简 单 的 Moore 状 态 机 1754. 1. 2 M oore 状 态 机 设 计 比 较 1774. 1. 3 采 用 Moore 状 态 机 设 计 计 数 器 1804. 2 Mealy 状 态 机 1834. 2. 1 采 用 M
24、ealy 状 态 机 设 计 计 数 器 1834. 2. 2 Mealy 状 态 机 1 1864. 2. 3 Mealy 状 态 机 2 1884. 3 特 定 序 列 脉 冲 发 生 器 1914. 4 循 环 彩 灯 控 制 器 1924. 5 交 通 灯 控 制 器 1944. 5. 1 交 通 灯 控 制 器 1 1944. 5. 2 交 通 灯 控 制 器 2 197第 5 章 存 储 器 设 计 2025. 1 R A M 2025. 1. 1 R A M 的 L PM 设 计 2025. 1. 2 R A M 的 快 速 定 制 2045. 2 双 口 R A M 2085.
25、 2. 1 简 单 的 双 口 R A M 设 计 2085. 2. 2 单 地 址 双 口 R A M 的 L PM 设 计 2105. 2. 3 双 地 址 双 口 R A M 的 L PM 设 计 2125. 2. 4 双 口 R A M 的 宏 调 用 设 计 2145. 3 FIF O 2165. 3. 1 FIF O 的 LPM 设 计 1 2165. 3. 2 FIF O 的 LPM 设 计 2 2185. 4 R O M 2215. 4. 1 简 单 的 R OM 设 计 2215. 4. 2 用 R OM 实 现 九 九 乘 法 表 2225. 5 堆 栈 226第 6 章
26、DSP 设 计 实 例 2296. 1 串 行 数 据 检 测 器 2296. 2 伪 随 机 码 发 生 器 2316. 3 汉 明 编 码 器 和 译 码 器 2326. 3. 1 汉 明 编 码 器 2326. 3. 2 汉 明 译 码 器 2336. 4 循 环 冗 余 校 验 ( CRC) 2356. 5 15 位 流 水 线 加 法 器 2386. 6 乘 法 器 2416. 6. 1 普 通 乘 法 器 2416. 6. 2 移 位 相 加 8 位 乘 法 器 2436. 6. 3 乘 法 器 的 LP M 设 计 2466. 7 除 法 器 2476. 8 F IR 滤 波 器
27、 2496. 8. 1 可 编 程 F IR 滤 波 器 2496. 8. 2 四 抽 头 直 接 形 式 F IR 滤 波 器 2516. 9 IIR 滤 波 器 2536. 9. 1 IIR 滤 波 器 1 2536. 9. 2 IIR 滤 波 器 2 2546. 9. 3 IIR 滤 波 器 3 255第 7 章 数 字 系 统 设 计 实 例 2587. 1 BCD - 七 段 动 态 L ED 译 码 显 示 电 路 2587. 2 汽 车 尾 灯 控 制 电 路 2617. 3 频 率 计 2657. 4 数 字 钟 2727. 5 密 码 锁 2837. 6 8 位 脉 宽 调
28、制 器 2897. 7 硬 件 电 子 琴 2927. 8 函 数 发 生 器 2947. 9 AD0809 模 拟 信 号 采 集 3017. 10 V GA 彩 条 信 号 发 生 器 3057. 11 通 用 异 步 收 发 器 ( U A R T ) 3097. 12 数 字 系 统 设 计 课 题 3137. 12. 1 乒 乓 球 游 戏 机 3137. 12. 2 四 人 抢 答 器 3147. 12. 3 数 字 秒 表 3147. 12. 4 出 租 车 计 费 器 3157. 12. 5 汽 车 停 车 场 停 车 车 位 显 示 系 统 3157. 12. 6 五 层 电
29、 梯 控 制 器 3157. 12. 7 自 动 售 货 机 的 控 制 电 路 316附 录 掌 宇 CIC310 CPLD/ FP GA 开 发 系 统 使 用 简 介 317参 考 文 献 324 1 第 1 章 V H D L 语 言 基 础1. 1 概 述硬 件 描 述 语 言 的 发 展 至 今 已 有 几 十 年 的 历 史 , 并 已 成 功 地 应 用 到 系 统 的 仿 真 、 验 证 和 设 计 、 综 合 等 方 面 。 目 前 常 用 的 硬 件 描 述 语 言 有 V HDL、 V erilog H DL、 ABE L 等 。 其 中 V erilog H DL 起
30、 源 于 集 成 电 路 的 设 计 , ABE L 起 源 于 可 编 程 逻 辑 器 件 的 设 计 , 而 V H DL 则 起 源 于 V H SIC 计 划 , 这 是 美 国 国 防 部 于 1980 年 制 定 的 , 目 标 是 为 下 一 代 集 成 电 路 的设 计 和 制 造 而 制 定 一 种 新 的 描 述 方 法 。 V H SIC 计 划 和 同 期 的 A R PA R ( 先 进 的 计 算 机 体系 结 构 ) 计 划 , 成 为 后 来 信 息 高 速 公 路 计 划 的 基 础 。 V HDL 的 英 文 全 称 为 Very - High - Spee
31、d In tegr ated Circuit H ardw are Descrip tion La nguage , 是 IE E E 标 准 化 的 硬 件 描 述 语 言 , 并 且 已 经 成 为 系 统 描 述 的 国 际 公 认 标 准 , 得 到 众 多 EDA 公 司 的 支 持 。V HDL 有 两 个 标 准 版 本 , 最 早 是 在 1987 年 底 , I E EE 公 布 了 V H DL 的 标 准 版 本 I E E E - 1076 。 1993 年 , IE E E 对 V H DL 进 行 了 修 订 , 从 更 高 的 抽 象 层 次 和 系 统 描 述
32、能 力方 面 扩 展 了 V H DL 的 内 容 , 公 布 了 新 版 本 的 V H DL , 即 IE E E 标 准 的 1076 - 1993 版 本 。 这 两 种 版 本 在 书 写 格 式 上 有 细 微 差 别 , 不 过 绝 大 部 分 EDA 软 件 都 支 持 这 两 种 版 本 的 书写 格 式 。 1997 年 , 能 够 同 时 描 述 数 字 和 模 拟 集 成 电 路 的 V H DL 语 言 标 准 IE E E1076. 1 发 布 , 即 V HD L - A MS。V HDL 语 言 覆 盖 面 广 , 描 述 能 力 强 , 能 支 持 硬 件 的
33、 设 计 、 验 证 、 综 合 和 测 试 , 是 一 种 多 层 次 的 硬 件 描 述 语 言 。 其 设 计 描 述 可 以 是 描 述 电 路 具 体 组 成 的 结 构 描 述 , 也 可 以 是 描 述 电 路 功 能 的 行 为 描 述 。 这 些 描 述 可 以 从 最 抽 象 的 系 统 级 直 到 最 精 确 的 逻 辑 级 , 甚 至 门 级 。运 用 V H DL 语 言 设 计 系 统 一 般 采 用 自 顶 向 下 分 层 设 计 的 方 法 , 首 先 从 系 统 级 功 能 设计 开 始 , 对 系 统 高 层 模 块 进 行 行 为 描 述 和 功 能 仿
34、真 。 系 统 的 功 能 验 证 完 成 后 , 将 抽 象 的 高 层 设 计 自 顶 向 下 逐 级 细 化 , 直 到 与 所 用 可 编 程 逻 辑 器 件 相 对 应 的 逻 辑 描 述 。1. 2 VH DL 程 序 结 构1. 2. 1 VHDL 程 序 的 基 本 结 构V HDL 主 要 用 于 描 述 数 字 系 统 的 结 构 、 行 为 、 功 能 和 接 口 。 除 了 含 有 许 多 具 有 硬 件 特 征 的 语 句 外 , V H DL 的 语 言 形 式 和 句 法 与 一 般 的 计 算 机 高 级 语 言 十 分 相 似 。 V H DL 程 序 的 特
35、 点 是 将 一 项 工 程 设 计 , 或 者 称 为 设 计 实 体 ( 可 以 是 一 个 元 件 、 一 个 电 路 模 块 或 一 个 系 统 ) 分 成 外 部 和 内 部 两 部 分 。 外 部 为 端 口 , 是 可 视 部 分 , 内 部 为 设 计 实 体 的 功 能 和 算 法部 分 , 是 不 可 视 部 分 。 在 对 一 个 设 计 实 体 定 义 了 外 部 界 面 后 , 一 旦 其 内 部 开 发 完 成 后 , 其 他 的 设 计 就 可 以 直 接 调 用 这 个 实 体 。 这 种 将 设 计 实 体 分 成 内 外 部 分 的 概 念 是 V HDL
36、系 2 统 设 计 的 一 个 重 要 特 点 。下 面 是 二 - 四 译 码 器 的 V H DL 描 述 。【 例 1. 2. 1】 V HD L 程 序 的 结 构 示 例 ( 见 2. 7. 1 节 中 “二 - 四 译 码 器 ”)library ieee;use ieee. st d - logic - 1164. all; en tity d24 - conc isport ( : in std - logic - vect or (1 dow nto 0) ;o : ou t std - logic - vector(3 downt o 0) ) ; end d24 - co
37、nc ;a rchitect ure a of d24 - conc is beginprocess ( i ) begincase i iswhen 00 = o o o o o state if count = 7 t hen state y = p ;state = s0 ; 16 end case; end process ;end a ;常 用 的 预 定 义 的 程 序 包 有 4 种 。(1 ) s t d - logic - 1164 程 序 包它 是 I E E E 库 中 最 常 用 的 程 序 包 , 是 I E E E 的 标 准 程 序 包 。 其 中 包 含 了 一
38、 些 数 据 类型 、 子 类 型 和 函 数 的 定 义 , 这 些 定 义 将 V H DL 扩 展 为 一 个 能 描 述 多 值 逻 辑 ( 即 除 具 有 “ 0” 和 “1”以 外 还 有 其 他 的 逻 辑 量 , 如 高 阻 态 “Z”、 不 定 态 “ X”等 ) 的 硬 件 描 述 语 言 , 很 好 地 满 足 了 实 际 数 字 系 统 的 设 计 需 求 。 该 程 序 包 中 用 得 最 多 和 最 广 的 是 定 义 了 满 足 工 业 标 准 的 两 个 数 据 类 型 s t d - logic 和 s td - logic - vect or , 它 们 非
39、 常 适 合 于 F PGA/ C PLD 器 件 中 多 值 逻辑 设 计 结 构 。(2 ) s t d - logic - arit h 程 序 包它 预 先 编 译 在 I E EE 库 中 , 是 Synopsys 公 司 的 程 序 包 。 此 程 序 包 在 s td - logic - 1164 程 序 包 的 基 础 上 扩 展 了 三 个 数 据 类 型 uns igned、 sign ed 和 small - in t , 并 为 其 定 义 了 相 关 的 算 术 运 算 符 和 转 换 函 数 。(3 ) s t d - logic - u nsigned 和 s t
40、d - logic - sign ed 程 序 包这 两 个 程 序 包 都 是 Synopsys 公 司 的 程 序 包 , 都 预 先 编 译 在 IE E E 库 中 。 这 些 程 序 包重 载 了 可 用 于 in teg er 型 及 s td - logic 和 st d - logic - vect or 型 混 合 运 算 的 运 算 符 , 并 定 义了 一 个 由 st d - logic - vect or 型 到 in teger 型 的 转 换 函 数 。 这 两 个 程 序 包 的 区 别 是 s td - logic - sign ed 中 定 义 的 运 算
41、符 考 虑 到 了 符 号 , 是 有 符 号 数 的 运 算 , 而 s t d - logic - unsign ed 则 是 无 符 号 数 的 运 算 。程 序 包 st d - logic - a rit h、 s t d - logic - un signed 和 st d - logic - signed 虽 然 未 成 为 I E E E 标 准 , 但 已 经 成 为 事 实 上 的 工 业 标 准 , 绝 大 多 数 的 V H DL 综 合 器 和 V H DL 仿 真 器 都 支 持它 们 。(4 ) s ta ndard 和 te xtio 程 序 包这 两 个 程
42、序 包 是 s t d 库 中 的 预 编 译 程 序 包 。 s ta ndard 程 序 包 中 定 义 了 许 多 基 本 的 数 据 类 型 、 子 类 型 和 函 数 。 它 是 V HDL 标 准 程 序 包 , 实 际 应 用 中 已 隐 性 地 打 开 了 , 故 不 必 再用 u se 语 句 另 作 声 明 。 tex tio 程 序 包 定 义 了 支 持 文 本 文 件 操 作 的 许 多 类 型 积 子 程 序 。 在使 用 本 程 序 包 之 前 , 需 加 语 句 use s t d. tex tio. all。te xtio 程 序 包 主 要 供 仿 真 器
43、使 用 。 可 以 用 文 本 编 辑 器 建 立 一 个 数 据 文 件 , 文 件 中 包含 仿 真 时 需 要 的 数 据 , 然 后 仿 真 时 用 t ex tio 程 序 包 中 的 子 程 序 存 取 这 些 数 据 。 综 合 器 中 , 此 程 序 包 被 忽 略 。1. 4 数 据 对 象 、 类 型 及 操 作 符V HDL 语 言 的 组 成 元 素 , 主 要 有 数 据 对 象 、 数 据 类 型 和 各 类 操 作 数 及 运 算 操 作 符 。 17 其 中 数 据 对 象 包 括 变 量 ( variable ) 、 信 号 ( signal) 和 常 数 (
44、 cons tan t ) 三 种 。 V H DL 语 言 的 功 能 强 大 还 体 现 在 它 具 有 丰 富 的 属 性 描 述 , 以 及 可 以 采 用 行 为 、 数 据 流 、 结 构 描 述 方 式 灵 活 实 现 设 计 意 图 。1. 4. 1 VHDL 文 字V HDL 文 字 主 要 包 括 数 值 和 标 识 符 。 数 值 型 文 字 主 要 有 数 字 型 、 字 符 串 型 、 位 串 型 。1. 数 字 型 文 字数 字 型 文 字 的 值 有 多 种 表 达 方 式 , 现 列 举 如 下 。(1 ) 整 数 文 字 : 整 数 文 字 都 是 十 进 制
45、 的 数 , 如 :5 , 678 , 0 , 156e2 ( = 15600 ) , 45 - 234 - 287( = 45234287 )数 字 间 的 下 划 线 仅 仅 是 为 了 提 高 文 字 的 可 读 性 , 相 当 于 一 个 空 的 间 隔 符 , 而 没 有 其 他 的 意 义 , 因 而 不 影 响 文 字 本 身 的 数 值 。(2 ) 实 数 文 字 : 实 数 文 字 也 都 是 十 进 制 的 数 , 但 必 须 带 有 小 数 点 , 如 : 873. 45。(3 ) 以 数 制 基 数 表 示 的 文 字 : 用 这 种 方 式 表 示 的 数 由 五 个
46、 部 分 组 成 。 第 一 部 分 , 用 于 进 制 数 标 明 数 制 进 位 的 基 数 ; 第 二 部 分 , 数 制 隔 离 符 号 “ # ”; 第 三 部 分 , 表 达 的 文 字 ; 第 四 部 分 , 指 数 隔 离 符 号 # ; 第 五 部 分 , 用 十 进 制 表 示 的 指 数 部 分 , 这 一 部 分 的 数 如 果 是 0 则 可 以 省 去 不 写 。 例 如 :10 # 670 - - ( 十 进 制 数 表 示 , 等 于 670)16 # f. 01 # e + 2 - - ( 十 六 进 制 数 表 示 , 等 于 3841. 00) (4 )
47、物 理 量 文 字 ( V HDL 综 合 器 不 接 受 此 类 文 字 ) 。 如 ,60 s (60 秒 ) ; 10 m ( 10 米 ) , k ( 千 欧 姆 ) , 177 A ( 177 安 培 )2. 字 符 串 型 文 字字 符 是 用 单 引 号 引 起 来 的 ASCII 字 符 , 可 以 是 数 值 , 也 可 以 是 符 号 或 字 母 , 如 “ Z”。 而 字 符 串 则 是 一 维 的 字 符 数 组 , 须 放 在 双 引 号 中 。 V HD L 中 有 两 种 类 型 的 字 符 串 : 文 字 字 符 串 和 数 位 字 符 串 。(1 ) 文 字
48、字 符 串 : 文 字 字 符 串 是 用 双 引 号 引 起 来 的 一 串 文 字 , 如 :“e r ror”。(2 ) 数 位 字 符 串 : 数 位 字 符 串 也 称 位 矢 量 , 是 预 定 义 的 数 据 类 型 bit 的 一 位 数 组 , 它 们 所 代 表 的 是 二 进 制 、 八 进 制 或 十 六 进 制 的 数 组 , 其 位 矢 量 的 长 度 即 为 等 值 的 二 进 制 数 的 位 数 。 数 位 字 符 串 的 表 示 首 先 要 有 计 算 基 数 , 然 后 将 该 基 数 表 示 的 值 放 在 双 引 号 中 , 基 数 符 以 “ b”(
49、二 进 制 ) “o”( 八 进 制 ) 和 “ x”( 十 六 进 制 ) 表 示 。3. 标 识 符标 识 符 用 来 定 义 常 数 、 变 量 、 信 号 、 端 口 、 子 程 序 或 参 数 的 名 字 。 V H DL 的 基 本 标 识符 就 是 以 英 文 字 母 开 头 , 不 连 续 使 用 下 划 线 “ - ”, 不 以 下 划 线 “ - ”结 尾 的 , 由 26 个 大 小 写 18 英 文 字 母 、 数 字 0 9 以 及 下 划 线 “ - ”组 成 的 字 符 串 。 V HD L 93 标 准 还 支 持 扩 展 标 识 符 , 但 是 目 前 仍 有 许 多 V H DL 工 具 不 支 持 扩 展 标 识 符 。 标 识 符 中 的 英 语 字 母 不 分 大 小 写 。 V HDL 的 保 留 字 不 能 作 为 标 识 符 使 用 。4. 下 标 名 及 下 标 段 名下 标 名 用 于 指 示 数 组 型 变 量 或 信 号 的 某 一 元 素 , 而 下 标 段 名 则 用 于 指 示 数 组 型 变 量或 信 号 的 某 一 段