图书目录

 目录 第 1章概述.................................................................................................................... 1  1.1  EDA技术 ....................................................................................................................... 1  1.2  EDA技术应用对象 ....................................................................................................... 3  1.3常用的硬件描述语言 .................................................................................................... 4  1.4  EDA技术的优势 ........................................................................................................... 6  1.5面向 FPGA的开发流程 ................................................................................................ 7  1.5.1  设计输入 ............................................................................................................. 7  1.5.2  综合 ..................................................................................................................... 8  1.5.3  适配(布局布线) ........................................................................................... 10  1.5.4  仿真与时序分析 ............................................................................................... 10  1.5.5  RTL描述 ........................................................................................................... 11  1.6可编程逻辑器件 .......................................................................................................... 11  1.6.1  PLD的分类 ...................................................................................................... 11  1.6.2  PROM可编程原理 ........................................................................................... 12  1.6.3 GAL ................................................................................................................... 14  1.7 CPLD的结构与可编程原理 ....................................................................................... 15  1.8 FPGA的结构与工作原理 ........................................................................................... 18  1.8.1  查找表逻辑结构 ............................................................................................... 18  1.8.2  Cyclone 4E/10 LP系列器件的结构原理 ......................................................... 19  1.8.3  内嵌 Flash的 FPGA器件 ................................................................................ 22  1.8.4  Artix-7系列 FPGA的基本结构 ...................................................................... 22  1.8.5  主要 FPGA生产厂商 ....................................................................................... 26  1.9硬件测试技术 .............................................................................................................. 27  1.9.1  内部逻辑测试 ................................................................................................... 27  1.9.2  JTAG边界扫描测试......................................................................................... 27  1.10编程与配置 ................................................................................................................ 28  1.11  Quartus ....................................................................................................................... 29  1.12 IP核 ........................................................................................................................... 31  1.13主要 EDA软件公司 .................................................................................................. 31  1.14 EDA的发展趋势 ....................................................................................................... 32  习题 ....................................................................................................................................... 33  第 2章程序结构与数据对象......................................................................................... 34  2.1  VHDL程序结构 .......................................................................................................... 34  ·VI· EDA技术与 VHDL(第 6版)  2.2  VHDL程序基本构建 .................................................................................................. 36  2.2.1  实体和端口模式 ............................................................................................... 36  2.2.2  结构体 ............................................................................................................... 37  2.2.3  库和库的种类 ................................................................................................... 38  2.2.4  库和程序包的调用方法 ................................................................................... 39  2.2.5  配置 ................................................................................................................... 41  2.3  VHDL文字规则 .......................................................................................................... 41  2.3.1  数字 ................................................................................................................... 41  2.3.2  字符串 ............................................................................................................... 42  2.3.3  关键词 ............................................................................................................... 43  2.3.4  标识符及其表述规则 ....................................................................................... 43  2.3.5  文件取名和存盘 ............................................................................................... 44  2.3.6  规范的程序书写格式 ....................................................................................... 44  2.4  VHDL数据对象 .......................................................................................................... 44  2.4.1  常数 ................................................................................................................... 44  2.4.2  变量 ................................................................................................................... 45  2.4.3  信号 ................................................................................................................... 46 习题 ....................................................................................................................................... 47  第 3章数据类型与顺序语句......................................................................................... 49  3.1  VHDL数据类型 .......................................................................................................... 49  3.1.1  BIT和 BIT_VECTOR类型 ............................................................................. 50  3.1.2  STD_LOGIC和 STD_LOGIC_VECTOR类型 ............................................... 50  3.1.3  整数类型 INTEGER ......................................................................................... 52  3.1.4  布尔数据类型 BOOLEAN ............................................................................... 52  3.1.5  SIGNED和 UNSIGNED类型 ......................................................................... 53  3.1.6  其他预定义类型 ............................................................................................... 55  3.1.7  数据类型转换函数 ........................................................................................... 56  3.2常用顺序语句 .............................................................................................................. 58  3.2.1  赋值语句 ........................................................................................................... 58  3.2.2  CASE语句 ........................................................................................................ 58  3.2.3  PROCESS语句 ................................................................................................. 60  3.2.4  并置操作符 & .................................................................................................... 61  3.2.5  IF语句 .............................................................................................................. 61  3.3 IF语句使用示例 ......................................................................................................... 62  3.3.1  D触发器的 VHDL描述 .................................................................................. 62  3.3.2  含异步复位和时钟使能 D触发器的描述 ...................................................... 65  3.3.3  基本锁存器的描述 ........................................................................................... 66  3.3.4  含清零控制锁存器的描述 ............................................................................... 68  3.3.5  实现时序电路的不同表述方式 ....................................................................... 68  3.3.6  4位二进制加法计数器设计 ............................................................................ 69  3.3.7  计数器更常用的 VHDL表达方式 .................................................................. 70  3.3.8  设计一个实用计数器 ....................................................................................... 72  3.3.9  含同步并行预置功能的 8位移位寄存器设计 ............................................... 74  3.3.10优先编码器设计 ............................................................................................. 76  3.4  VHDL其他顺序语句 .................................................................................................. 77  3.4.1  LOOP循环语句 ............................................................................................... 77  3.4.2  NEXT语句 ....................................................................................................... 78  3.4.3  EXIT语句 ......................................................................................................... 78  3.4.4  WAIT语句 ........................................................................................................ 79  3.4.5  GENERIC参数定义语句 ................................................................................. 82  3.4.6  REPORT语句 ................................................................................................... 82  3.4.7  断言语句 ........................................................................................................... 83  3.4.8  端口数据含“ 1”个数的统计电路模块设计 ................................................. 85  习题 ....................................................................................................................................... 86  第 4章仿真与硬件实现 ................................................................................................ 87  4.1代码编辑输入和系统编译 .......................................................................................... 87  4.1.1  编辑和输入设计文件 ....................................................................................... 87  4.1.2  创建工程 ........................................................................................................... 88  4.1.3  约束项目设置 ................................................................................................... 90  4.1.4  全程综合与编译 ............................................................................................... 91  4.1.5  RTL图观察器应用 ........................................................................................... 92  4.2波形仿真 ...................................................................................................................... 93  4.3基于 ModelSim手动流程的仿真 ............................................................................... 96  4.4硬件测试 .................................................................................................................... 101  4.4.1  引脚锁定 ......................................................................................................... 101  4.4.2  编译文件下载 ................................................................................................. 102  4.4.3  通过 JTAG口对配置芯片进行间接编程 ...................................................... 104  4.4.4  USB-Blaster驱动程序安装方法 .................................................................... 105  4.5层次化设计流程 ........................................................................................................ 105  4.5.1  设计一个半加器 ............................................................................................. 105  4.5.2  完成全加器顶层设计 ..................................................................................... 107  4.5.3  对全加器进行时序仿真和硬件测试 ............................................................. 108  4.6利用属性表述实现引脚锁定 .................................................................................... 109  4.7  Signal Tap逻辑分析仪的用法 .................................................................................. 110  4.8编辑 Signal Tap的触发信号 ..................................................................................... 115  4.9  Vivado平台仿真与硬件实现 ................................................................................... 116  4.9.1  创建工程 ......................................................................................................... 116  4.9.2  编辑和输入设计文件 ..................................................................................... 119  ·VIII· EDA技术与 VHDL(第 6版)  4.9.3  全程综合编译与实现 ..................................................................................... 120  4.9.4  RTL图观察器应用 ......................................................................................... 122  4.9.5  仿真 ................................................................................................................. 123  4.9.6  硬件测试 ......................................................................................................... 124  习题 ..................................................................................................................................... 125  实验与设计 ......................................................................................................................... 126  实验 4-1多路选择器设计实验 ............................................................................... 126  实验 4-2十六进制 7段数码显示译码器设计 ....................................................... 126  实验 4-3简易数字频率计设计 ............................................................................... 128  实验 4-4计数器设计实验 ....................................................................................... 131  实验 4-5数码扫描显示电路设计 ........................................................................... 131  实验 4-6硬件消抖动电路设计 ............................................................................... 132  实验 4-7串行静态显示控制电路设计 ................................................................... 133  第 5章并行语句 ........................................................................................................ 134  5.1并行信号赋值语句 .................................................................................................... 134  5.1.1  简单信号赋值语句 ......................................................................................... 134  5.1.2  条件信号赋值语句 ......................................................................................... 135  5.1.3  选择信号赋值语句 ......................................................................................... 136  5.1.4  块语句 ............................................................................................................. 136  5.1.5  元件例化语句 ................................................................................................. 137  5.1.6  例化语句应用示例 ......................................................................................... 138  5.1.7  生成语句 ......................................................................................................... 140  5.1.8  GENERIC参数传递映射语句及其使用方法 ............................................... 142  5.1.9  数据类型定义语句 ......................................................................................... 144  5.1.10 VHDL的存储器描述 ................................................................................... 147  5.1.11信号属性及属性函数 ................................................................................... 148  5.2  VHDL运算操作符 .................................................................................................... 150  5.2.1  逻辑操作符 ..................................................................................................... 150  5.2.2  关系操作符 ..................................................................................................... 152  5.2.3  算术操作符 ..................................................................................................... 153  5.2.4  省略赋值操作符 ............................................................................................. 156  5.3 keep属性应用 ........................................................................................................... 157  5.4  SignalProbe使用方法 ............................................................................................... 158  习题 ..................................................................................................................................... 160  实验与设计 ......................................................................................................................... 161  实验 5-1 8位加法器设计实验 ................................................................................ 161  实验 5-2高速硬件除法器设计 ............................................................................... 161  实验 5-3移位相加型 8位硬件乘法器设计 ........................................................... 162  实验 5-4基于 VHDL代码的频率计设计 .............................................................. 162  实验 5-5  VGA彩条信号显示控制电路设计 ......................................................... 164  实验 5-6不同类型的移位寄存器设计实验 ........................................................... 167  第 6章 IP核的应用 .................................................................................................... 168  6.1调用计数器宏模块示例 ............................................................................................ 168  6.1.1  计数器 LPM模块文本代码的调用 ............................................................... 168  6.1.2  LPM计数器代码与参数传递语句应用 ........................................................ 169  6.1.3  创建工程与仿真测试 ..................................................................................... 172  6.2利用属性控制乘法器构建的示例 ............................................................................ 172  6.3片内 RAM IP用法 .................................................................................................... 173  6.3.1  初始化文件及其生成 ..................................................................................... 174  6.3.2  片内 RAM IP的设置与调用 ......................................................................... 175  6.3.3  测试片内 RAM ............................................................................................... 177  6.3.4  用 VHDL代码描述存储器以及用初始化文件加载表述 ............................ 178  6.3.5  片内存储器设计的结构控制 ......................................................................... 179  6.4片内 ROM IP使用示例 ............................................................................................ 180  6.4.1  简易正弦信号发生器设计 ............................................................................. 180  6.4.2  正弦信号发生器硬件实现和测试 ................................................................. 182  6.5在系统存储器数据读写编辑器应用 ........................................................................ 183  6.6嵌入式锁相环调用 .................................................................................................... 184  6.6.1  建立嵌入式锁相环元件 ................................................................................. 184  6.6.2  测试锁相环 ..................................................................................................... 187  6.7 In-System Sources and Probes Editor用法 ............................................................... 187  6.8  Vivado中 IP模块用法 .............................................................................................. 190  6.9  DDS实现原理与应用 ............................................................................................... 190  6.9.1  DDS原理 ........................................................................................................ 191  6.9.2  DDS信号发生器设计示例 ............................................................................ 192  习题 ..................................................................................................................................... 193  实验与设计 ......................................................................................................................... 194  实验 6-1查表式硬件运算器设计 ........................................................................... 194  实验 6-2正弦信号发生器设计 ............................................................................... 194  实验 6-3简易逻辑分析仪设计 ............................................................................... 195  实验 6-4  DDS正弦信号发生器设计 ...................................................................... 196  实验 6-5移相信号发生器设计 ............................................................................... 197  实验 6-6  VGA简单图像显示控制模块设计 ......................................................... 197  实验 6-7  AM幅度调制信号发生器设计 ............................................................... 198  第 7章 VHDL设计深入 .............................................................................................. 200  7.1进程中的信号赋值与变量赋值 ................................................................................ 200  7.2含高阻输出的电路设计 ............................................................................................ 204  7.2.1  三态门设计 ..................................................................................................... 204  ·X· EDA技术与 VHDL(第 6版)  7.2.2  双向端口的设计方法 ..................................................................................... 205  7.2.3  三态总线电路设计 ......................................................................................... 206  7.3资源优化 .................................................................................................................... 208  7.3.1  资源共享 ......................................................................................................... 208  7.3.2  逻辑优化 ......................................................................................................... 210  7.3.3  串行化 ............................................................................................................. 211  7.4速度优化 .................................................................................................................... 212  7.4.1  流水线设计 ..................................................................................................... 213  7.4.2  关键路径法 ..................................................................................................... 215  7.5仿真延时 .................................................................................................................... 215  7.5.1  固有延时 ......................................................................................................... 216  7.5.2  传输延时 ......................................................................................................... 216  7.5.3  仿真 δ .............................................................................................................. 217  习题 ..................................................................................................................................... 217  实验与设计 ......................................................................................................................... 218  实验 7-1 4×4阵列键盘键信号检测电路设计 ........................................................ 219  实验 7-2乐曲硬件演奏电路设计 ........................................................................... 219  实验 7-3 PS2键盘控制模型电子琴电路设计 ....................................................... 222  实验 7-4直流电机综合测控系统设计 ................................................................... 224  实验 7-5  VGA动画图像显示控制电路设计 ......................................................... 226  第 8章状态机设计技术 .............................................................................................. 227  8.1  VHDL状态机的一般形式 ........................................................................................ 227  8.1.1  状态机的特点与优势 ..................................................................................... 227  8.1.2  VHDL状态机的一般结构 ............................................................................. 228  8.1.3  状态机设计初始约束与表述 ......................................................................... 232  8.2 Moore型状态机的设计 ............................................................................................ 233  8.2.1  多进程状态机 ................................................................................................. 233  8.2.2  序列检测器之状态机设计 ............................................................................. 236  8.3 Mealy型状态机的设计 ............................................................................................. 237  8.4状态编码 .................................................................................................................... 240  8.4.1  直接输出型编码 ............................................................................................. 240  8.4.2  顺序编码 ......................................................................................................... 242  8.4.3  一位热码编码 ................................................................................................. 243  8.4.4  状态编码设置 ................................................................................................. 243  8.5安全状态机设计 ........................................................................................................ 244  8.5.1  程序直接导引法 ............................................................................................. 245  8.5.2  状态编码监测法 ............................................................................................. 245  8.5.3  借助 EDA优化控制工具生成安全状态机 ................................................... 246  习题 ..................................................................................................................................... 246  实验与设计 ......................................................................................................................... 247  实验 8-1序列检测器设计 ....................................................................................... 247  实验 8-2并行 ADC采样控制电路实现与硬件验证 ............................................ 247  实验 8-3数据采集模块设计 ................................................................................... 248  实验 8-4五功能智能逻辑笔设计 ........................................................................... 249  实验 8-5串行 ADC/DAC采样或信号输出控制电路设计 ................................... 250  第 9章 16/32位 CPU创新设计 .................................................................................. 251  9.1  KX9016的结构与特色 ............................................................................................. 251  9.2  KX9016基本硬件系统设计 ..................................................................................... 254  9.2.1  单步节拍发生模块 ......................................................................................... 254  9.2.2  运算器 ............................................................................................................. 254  9.2.3  比较器 ............................................................................................................. 255  9.2.4  基本寄存器与寄存器阵列组 ......................................................................... 256  9.2.5  移位器 ............................................................................................................. 260  9.2.6  程序与数据存储器 ......................................................................................... 260  9.3  KX9016指令系统设计 ............................................................................................. 261  9.3.1  指令格式 ......................................................................................................... 261  9.3.2  指令操作码 ..................................................................................................... 262  9.3.3  软件程序设计实例 ......................................................................................... 263  9.3.4  KX9016系统控制器设计 .............................................................................. 267  9.3.5  指令设计实例详解 ......................................................................................... 269  9.4  KX9016的时序仿真与硬件测试 ............................................................................. 270  9.4.1  时序仿真与指令执行波形分析 ..................................................................... 270  9.4.2  CPU工作情况的硬件测试 ............................................................................ 271  9.5  KX9016应用程序设计实例和系统优化 ................................................................. 274  9.5.1  乘法算法及其硬件实现 ................................................................................. 274  9.5.2  除法算法及其硬件实现 ................................................................................. 275  9.5.3  KX9016的硬件系统优化 .............................................................................. 276  9.6  32位 RISC-V处理器设计 ........................................................................................ 277  9.6.1  RISC-V基本结构与基本整数指令集 RV32I................................................ 277  9.6.2  32位乘法指令集 RV32M .............................................................................. 280  9.6.3  16位压缩指令集 RVC ................................................................................... 280  习题 ..................................................................................................................................... 281  实验与设计 ......................................................................................................................... 282  实验 9-1 16位 CPU验证性设计综合实验 ............................................................ 282  实验 9-2新指令设计及程序测试实验 ................................................................... 282  实验 9-3 16位 CPU的优化设计与创新 ................................................................ 283  第 10章 VHDL仿真 ................................................................................................... 285  10.1 VHDL仿真流程 ...................................................................................................... 286  ·XII· EDA技术与 VHDL(第 6版)  10.2 VHDL测试基准实例 .............................................................................................. 287  10.3 VHDL Test Bench测试流程 ................................................................................... 289  10.4 VHDL子程序 .......................................................................................................... 292  10.4.1  函数 ............................................................................................................... 292  10.4.2  重载函数 ....................................................................................................... 294  10.4.3  决断函数 ....................................................................................................... 297  10.4.4  过程 ............................................................................................................... 297  10.4.5  重载过程 ....................................................................................................... 299  10.4.6  子程序调用语句 ........................................................................................... 300  10.4.7  RETURN语句 .............................................................................................. 302  10.4.8  并行过程调用语句 ....................................................................................... 302  10.5 VHDL程序包 .......................................................................................................... 304  习题 ..................................................................................................................................... 306  实验与设计 ......................................................................................................................... 307  实验 10-1  在 ModelSim上对 VHDL Test Bench进行仿真 .................................. 307  第 11章 DSP Builder系统设计方法 ........................................................................... 308  11.1  MATLAB/DSP Builder及其设计流程 ................................................................... 308  11.2正弦信号发生器设计 .............................................................................................. 310  11.2.1建立设计模型 ............................................................................................... 311  11.2.2 Simulink模型仿真 ....................................................................................... 317  11.2.3 Signal Compiler使用方法 ............................................................................ 321  11.2.4使用 ModelSim进行 RTL级仿真 ............................................................... 322  11.2.5使用 Quartus实现时序仿真 ......................................................................... 323  11.2.6硬件测试与硬件实现 ................................................................................... 324  11.3  DSP Builder层次化设计 ......................................................................................... 326  11.4基于 DSP Builder的 DDS设计 .............................................................................. 329  11.4.1 DDS模块设计 .............................................................................................. 329  11.4.2  FSK调制器设计 ........................................................................................... 332  11.4.3正交信号发生器设计 ................................................................................... 334  11.4.4数控移相信号发生器设计 ........................................................................... 335  11.4.5幅度调制信号发生器设计 ........................................................................... 335  11.5  FIR数字滤波器设计 ............................................................................................... 336  11.5.1 FIR滤波器原理 ............................................................................................ 337  11.5.2使用 DSP Builder设计 FIR滤波器 ............................................................. 337  11.5.3使用 MATLAB的滤波器设计工具 ............................................................. 342  11.5.4使用 FIR IP Core设计 FIR滤波器 .............................................................. 347  11.6  HDL模块插入仿真及其设计 ................................................................................. 351  习题 ..................................................................................................................................... 353  实验与设计 ......................................................................................................................... 354  实验 11-1利用 MATLAB/DSP Builder设计基本电路模块 ................................. 354  实验 11-2基于 DSP Builder的 DDS应用模型设计 ............................................. 355  实验 11-3 FIR数字滤波器设计实验 ...................................................................... 357  实验 11-4  HDL Import模块应用实验 .................................................................... 358  附录 A EDA教学实验平台系统及相关软件 ................................................................. 359  A.1 KX系列 EDA-FPGA教学综合实验平台 ............................................................... 360  A.1.1  模块化自主创新实验设计结构 .................................................................... 360  A.1.2  动态配置 I/O高效实验控制系统 ................................................................. 361  A.1.3  不同厂家不同功能类型的 FPGA核心板 .................................................... 362  A.1.4  引脚对照表 .................................................................................................... 363  A.2部分实验扩展模块 ................................................................................................... 364  A.3 MIF文件生成器使用方法 ....................................................................................... 364  A.4  HX1006A及其引脚锁定工具软件 ......................................................................... 366  参考文献 ....................................................................................................................... 367