VHDL入门与应用 陈雪松 滕立中 编著 本书较为系统地介绍了标准硬件描述语言VHDL,以及用VHDL进行半定制ASIC开发的基本流程﹑相关器件和软件。全书分为三个部分:第一部分主要介绍了VHDL语言的基本语法知识和一些典型实例;第二部分介绍了两个较为常用的VHDL开发工具软件包MAX+plusⅡ和Quartus的使用;最后一部分介绍了半定制ASIC(包括FPGA和CPLD)开发的一些高级技巧及当今在这一领域的一些最新发展。 本书既阐述了基本语言知识与设计理论,又给出了设计的具体实例与工具介绍,内容翔实而不繁杂。特别适合从事电子系统硬件设计的工程技术人员学习参考,也可供大专院校相关专业作为教材使用。 第1章 绪论 1 1.1 EDA工具的历史及现状 1 1.2 硬件描述语言HDL 2 1.3 VHDL简述 3 1.3.1 VHDL的诞生 3 1.3.2 VHDL语言特点 3 1.3.3 VHDL设计简述 4 1.3.4 VHDL的结构体描述 5 1.4 一个简单实例 6 1.5 小结 8 第2章 VHDL语言基础 9 2.1 VHDL程序设计基本结构 9 2.1.1 实体声明 9 2.1.2 结构体 11 2.1.3 配置 17 2.1.4 程序包 21 2.2 VHDL中的数据 23 2.2.1 标志符 23 2.2.2 数据对象 23 2.2.3 VHDL数据类型 24 2.2.4 用户自定义类型 27 2.2.5 类型声明与子类型声明的地方 34 2.3 VHDL中的表达式 34 2.3.1 操作符 35 2.3.2 操作数 39 2.4 小结 49 第3章 VHDL中的描述语句 51 3.1 顺序描述语句 51 3.1.1 对象与赋值语句 51 3.1.2 变量赋值与信号赋值 54 3.1.3 if语句 58 3.1.4 case语句 58 3.1.5 loop语句 61 3.1.6 子程序 63 3.1.7 return语句 64 3.1.8 wait语句 64 3.1.9 null语句 65 3.2 并行描述语句 66 3.2.1 进程语句 66 3.2.2 块语句 69 3.2.3 顺序描述语句的并行版本 71 3.2.4 组件例化语句 75 3.2.5 生成语句 76 3.3 子程序 79 3.3.1 子程序声明 80 3.3.2 子程序主体 81 3.3.3 子程序重载 82 3.3.4 决断函数 83 3.4 小结 85 第4章 编程实例 87 4.1 编码器 87 4.2 译码器 89 4.3 加法器 92 4.4 寄存器 94 4.5 移位寄存器 95 4.6 计数器 97 4.7 串并转换器 100 4.8 并串转换器 107 4.9 存储器的实现和应用 108 4.10 信号发生器 111 4.11 更为复杂的信号发生器 115 4.12 序列计数器 118 4.13 一个具有层次化的设计示例----微处理器 123 4.13.1 AM2901结构简介 123 4.13.2 为AM2901建立一个程序包 126 4.13.3 AM2901功能设计 130 4.13.4 AM2901顶层数据包 137 4.13.5 AM2901顶层实体 138 4.14 小结 140 第5章 MAX+plusⅡ及其应用 141 5.1 MAX+plusⅡ简介与应用例解 141 5.2 安装MAX+plusⅡ 9.4 142 5.3 启动MAX+plusⅡ 144 5.4 感性认识----编写一个计数器counter 145 5.4.1 建立VHDL语言的设计输入文件 145 5.4.2 建立工程 147 5.4.3 设置编译选项,编译综合工程 148 5.4.4 仿真 152 5.4.5 器件编程 155 5.5 利用Altera公司的库快速生成程序 155 5.6 小结 162 第6章 Quartus及其应用 165 6.1 Quartus 2000.02 版软件包 165 6.2 安装Quartus 2000.02 166 6.3 感性认识----编写一个除法小程序 168 6.3.1 使用向导建立工程divide 168 6.3.2 建立设计输入文件divider.vhd 170 6.3.3 设定编译选项 173 6.3.4 编译文件 175 6.3.5 编辑波形仿真文件 175 6.3.6 进行仿真并分析结果 178 6.4 除法器电路的一些改进 180 6.5 Quartus中Altera库函数 184 6.5.1 直接调用方式 185 6.5.2 使用Quartus的Megawizard Plus_In Manager 186 6.6 小结 192 第7章 VHDL编程指南 193 7.1 一些相关设计理论 193 7.1.1 使用自顶向下的系统级设计方法 193 7.1.2 使用状态机的设计方法 197 7.1.3 使用流水线的设计方法 202 7.2 设计中的一些重要概念 206 7.2.1 组合逻辑和时序逻辑 206 7.2.2 Latch和Flip_flop 207 7.2.3 资源库的使用 210 7.2.4 片内存储器RAM的使用 213 7.2.5 高阻状态设置 218 7.3 可编程逻辑器件CPLD和FPGA 223 7.3.1 CPLD简介 223 7.3.2 FPGA简介 226 7.4 小结 228 附录A VHDL保留字 229 附录B 部分FPGA厂家名录 230 附录C EDA工具软件一览表 231 C.1 VHDL编辑软件一览表 231 C.2 RTL级综合工具软件一览表 232 C.3 VHDL仿真工具软件一览表 233 C.4 FPGA编程软件一览表 234 附录D 预定义的程序包 235 D.1 std_logic_1164程序包 235 D.2 std_logic_arith程序包 239 D.3 std_logic_unsigned程序包 245 D.4 std_logic_signed程序包 246 附录E VHDL语法的BNF范式表示 248 参考文献 257 后 记 258