图书目录

目    录

第1章  EDA技术概述 1

1.1  EDA技术 1

1.2  EDA技术应用对象 2

1.3  硬件描述语言VHDL 3

1.4  EDA技术的优势 4

1.5  面向FPGA的EDA开发流程 5

1.5.1  设计输入 5

1.5.2  综合 6

1.5.3  适配(布线布局) 8

1.5.4  仿真 8

1.5.5  RTL描述 9

1.6  可编程逻辑器件 9

1.6.1  PLD的分类 10

1.6.2  PROM可编程原理 11

1.6.3  GAL 12

1.7  CPLD的结构与可编程原理 13

1.8  FPGA的结构与工作原理 16

1.8.1  查找表逻辑结构 16

1.8.2  Cyclone III系列器件的结构原理 17

1.9  硬件测试技术 19

1.9.1  内部逻辑测试 19

1.9.2  JTAG边界扫描测试 20

1.10  编程与配置 20

1.11  Quartus II 21

1.12  IP核 23

1.13  EDA的发展趋势 23

习题 25

第2章  VHDL程序结构与数据对象 26

2.1  VHDL程序结构 26

2.2  VHDL程序基本构建 28

2.2.1  实体和端口模式 28

2.2.2  结构体 29

2.2.3  库和库的种类 30

2.2.4  库和程序包的调用方法 32

2.2.5  配置 33

2.3  VHDL文字规则 33

2.3.1  数字 34

2.3.2  字符串 34

2.3.3  关键词 35

2.3.4  标识符及其表述规则 35

2.3.5  文件取名和存盘 36

2.3.6  规范的程序书写格式 36

2.4  VHDL数据对象 37

2.4.1  常数 37

2.4.2  变量 37

2.4.3  信号 38

习题 40

第3章  VHDL数据类型与顺序语句 41

3.1  VHDL数据类型 41

3.1.1  BIT和BIT_VECTOR类型 42

3.1.2  STD_LOGIC和STD_LOGIC_VECTOR类型 42

3.1.3  整数类型INTEGER 44

3.1.4  布尔数据类型BOOLEAN 45

3.1.5  SIGNED和UNSIGNED类型 45

3.1.6  其他预定义类型 47

3.1.7  数据类型转换函数 48

3.2  VHDL最常用的顺序语句 50

3.2.1  赋值语句 50

3.2.2  CASE语句 51

3.2.3  PROCESS语句 52

3.2.4  并置操作符& 53

3.2.5  IF语句 53

3.3  IF语句使用示例 54

3.3.1  D触发器的VHDL描述 55

3.3.2  含异步复位和时钟使能的D触发器的VHDL描述 57

3.3.3  基本锁存器的VHDL描述 58

3.3.4  含清0控制的锁存器的VHDL描述 60

3.3.5  VHDL实现时序电路的不同表述方式 60

3.3.6  4位二进制加法计数器设计 62

3.3.7  计数器更常用的VHDL表达方式 63

3.3.8  实用计数器的VHDL设计 64

3.3.9  含同步并行预置功能的8位移位寄存器设计 67

3.3.10  优先编码器设计 68

3.4  VHDL其他顺序语句 69

3.4.1  LOOP循环语句 69

3.4.2  NEXT语句 70

3.4.3  EXIT语句 71

3.4.4  WAIT语句 72

3.4.5  GENERIC参数定义语句 75

3.4.6  REPORT语句 75

3.4.7  断言语句 76

3.4.8  端口数据含1个数统计电路模块设计 78

习题 79

第4章  时序仿真与硬件实现 80

4.1  VHDL程序输入与仿真测试 80

4.1.1  编辑和输入设计文件 80

4.1.2  创建工程 81

4.1.3  全程编译前约束项目设置 82

4.1.4  全程综合与编译 83

4.1.5  仿真测试 84

4.1.6  RTL图观察器应用 86

4.2  引脚锁定与硬件测试 87

4.2.1  引脚锁定 87

4.2.2  编译文件下载 88

4.2.3  JTAG间接编程模式 89

4.2.4  USB-Blaster驱动程序安装方法 90

4.3  电路原理图设计流程 91

4.3.1  用原理图输入方式设计半加器 91

4.3.2  完成全加器顶层设计 93

4.3.3  对全加器进行时序仿真和硬件测试 93

4.4  利用属性表述实现引脚锁定 94

4.5  宏模块逻辑功能查询 95

4.6  SignalTap II的使用方法 95

4.7  编辑SignalTap II的触发信号 100

习题 100

实验与设计 101

实验4-1  多路选择器设计实验 101

实验4-2  十六进制7段数码显示译码器设计 102

实验4-3  计数器设计实验 103

实验4-4  硬件消抖动电路设计 103

实验4-5  应用宏模块设计数字频率计 104

实验4-6  数码扫描显示电路设计 108

实验4-7  串行静态显示控制电路设计 108

实验4-8  不同类型的移位寄存器设计实验 109

第5章  VHDL并行语句 110

5.1  并行信号赋值语句 110

5.1.1  简单信号赋值语句 110

5.1.2  条件信号赋值语句 111

5.1.3  选择信号赋值语句 112

5.1.4  块语句 113

5.1.5  元件例化语句 113

5.1.6  全加器设计与例化语句应用 114

5.1.7  生成语句 116

5.1.8  GENERIC参数传递映射语句及其使用方法 118

5.1.9  数据类型定义语句 120

5.1.10  VHDL的存储器描述 123

5.1.11  信号属性及属性函数 124

5.2  VHDL运算操作符 127

5.2.1  逻辑操作符 127

5.2.2  关系操作符 129

5.2.3  算术操作符 130

5.2.4  省略赋值操作符 133

5.3  keep属性应用 133

5.4  SignalProbe使用方法 134

习题 136

实验与设计 137

实验5-1  8位加法器设计实验 137

实验5-2  高速硬件除法器设计 137

实验5-3  移位相加型8位硬件乘法器设计 138

实验5-4  基于VHDL代码的频率计设计 139

实验5-5  VGA彩条信号显示控制电路设计 140

第6章  LPM宏模块应用 145

6.1  LPM计数器模块调用 145

6.1.1  计数器模块文本的调用与参数设置 145

6.1.2  创建工程与仿真测试 148

6.2  乘法器的VHDL代码表述和相关属性设置 148

6.3  LPM 随机存储器的设置和调用 149

6.3.1  存储器初始化文件 149

6.3.2  LPM_RAM的设置和调用 151

6.3.3  仿真测试RAM宏模块 152

6.3.4  存储器配置文件属性定义和结构设置 153

6.4  LPM_ROM的定制和使用示例 154

6.4.1  LPM_ROM的定制调用和测试 154

6.4.2  简易正弦信号发生器设计 155

6.4.3  正弦信号发生器硬件实现和测试 156

6.5  在系统存储器数据读写编辑器应用 156

6.6  LPM嵌入式锁相环调用 158

6.7  In-System Sources and Probes Editor使用方法 160

6.8  DDS实现原理与应用 162

6.8.1  DDS原理 163

6.8.2  DDS信号发生器设计示例 164

习题 166

实验与设计 166

实验6-1  查表式硬件运算器设计 166

实验6-2  正弦信号发生器设计 167

实验6-3  DDS正弦信号发生器设计 167

实验6-4  简易逻辑分析仪设计 168

实验6-5  移相信号发生器设计 169

实验6-6  VGA简单图像显示控制模块设计 169

实验6-7  AM幅度调制信号发生器设计 170

第7章  VHDL设计深入 172

7.1  进程中的信号赋值与变量赋值 172

7.2  含高阻输出的电路设计 176

7.2.1  三态门设计 177

7.2.2  双向端口的设计方法 177

7.2.3  三态总线电路设计 179

7.3  资源优化 180

7.3.1  资源共享 181

7.3.2  逻辑优化 182

7.3.3  串行化 183

7.4  速度优化 185

7.4.1  流水线设计 185

7.4.2  关键路径法 187

7.5  仿真延时 188

7.5.1  固有延时 188

7.5.2  传输延时 189

7.5.3  仿真δ 189

习题 190

实验与设计 191

实验7-1  4X4阵列键盘键信号检测电路设计 191

实验7-2  乐曲硬件演奏电路设计 192

实验7-3  PS2键盘控制模型电子琴电路设计 195

实验7-4  直流电机综合测控系统设计 197

实验7-5  SPWM脉宽调制控制系统设计 199

实验7-6  VGA动画图像显示控制电路设计 201

第8章  VHDL状态机设计与应用 202

8.1  VHDL状态机的一般形式 202

8.1.1  状态机的特点与优势 202

8.1.2  VHDL状态机的一般结构 203

8.1.3  状态机设计初始约束与表述 206

8.2  Moore型状态机的设计 207

8.2.1  多进程状态机 208

8.2.2  序列检测器之状态机设计 211

8.3  Mealy型状态机的设计 212

8.4  状态编码 216

8.4.1  直接输出型编码 216

8.4.2  顺序编码 218

8.4.3  一位热码状态编码 218

8.4.4  状态编码设置 218

8.5  安全状态机设计 220

8.5.1  程序直接导引法 221

8.5.2  状态编码监测法 221

8.5.3  借助EDA优化控制工具生成安全状态机 222

习题 222

实验与设计 222

实验8-1  序列检测器设计 222

实验8-2  并行ADC采样控制电路实现与硬件验证 223

实验8-3  数据采集模块设计 224

实验8-4  五功能智能逻辑笔设计 225

实验8-5  串行ADC/DAC采样或信号输出控制电路设计 226

第9章  基于VHDL的实用CPU创新设计 227

9.1  KX9016的结构与特色 227

9.2  KX9016基本硬件系统设计 230

9.2.1  单步节拍发生模块 230

9.2.2  运算器 230

9.2.3  比较器 231

9.2.4  基本寄存器与寄存器阵列组 232

9.2.5  移位器 235

9.2.6  程序与数据存储器 236

9.3  KX9016v1指令系统设计 236

9.3.1  指令格式 237

9.3.2  指令操作码 238

9.3.3  软件程序设计实例 239

9.3.4  KX9016 v1控制器设计 240

9.3.5  指令设计实例详解 244

9.4  KX9016的时序仿真与硬件测试 245

9.4.1  时序仿真与指令执行波形分析 245

9.4.2  CPU工作情况的硬件测试 247

9.5  KX9016应用程序设计实例和系统优化 249

9.5.1  除法算法及其硬件实现 249

9.5.2  乘法算法及其硬件实现 250

9.5.3  KX9016v1的硬件系统优化 251

习题 252

实验与设计 253

实验9-1  16位CPU验证性设计综合实验 253

实验9-2  新指令设计及程序测试实验 253

实验9-3  16位CPU的优化设计与创新 254

实验9-4  CPU创新设计竞赛 255

第10章  VHDL TEST BENCH仿真 256

10.1  VHDL行为仿真流程 257

10.2  VHDL测试基准实例 259

10.3  VHDL Test Bench测试流程 261

10.4  VHDL子程序 263

10.4.1  函数 264

10.4.2  重载函数 266

10.4.3  决断函数 269

10.4.4  过程 269

10.4.5  重载过程 271

10.4.6  子程序调用语句 272

10.4.7  RETURN语句 274

10.4.8  并行过程调用语句 275

10.5  VHDL程序包 276

习题 279

实验与设计 279

第11章  DSP BUIDER设计初步 280

11.1  MATLAB/DSP Builder及其设计流程 280

11.2  正弦信号发生器设计 283

11.2.1  建立设计模型 283

11.2.2  Simulink模型仿真 289

11.2.3  SignalCompiler使用方法 292

11.2.4  使用ModelSim进行RTL级仿真 293

11.2.5  使用Quartus II实现时序仿真 294

11.2.6  硬件测试与硬件实现 295

11.3  DSP Builder层次化设计 296

11.4  基于DSP Builder的DDS设计 299

11.4.1  DDS模块设计 299

11.4.2  FSK调制器设计 301

11.4.3  正交信号发生器设计 303

11.4.4  数控移相信号发生器设计 304

11.4.5  幅度调制信号发生器设计 304

11.5  数字编码与译码器设计 306

11.5.1  伪随机序列 306

11.5.2  帧同步检出 307

11.6  HIL硬件仿真 309

习题 313

实验与设计 314

实验11-1  利用MATLAB/DSP Builder设计基本电路模块 314

实验11-2  基于DSP Builder的DDS应用模型设计 315

实验11-3  编译码器设计实验 316

实验11-4  HIL硬件环仿真实验 317

实验11-5  DSP Builder状态机应用实验 317

第12章  DSP BUILDER设计深入 319

12.1  FIR数字滤波器设计 319

12.1.1  FIR滤波器原理 319

12.1.2  使用DSP Builder设计FIR滤波器 320

12.1.3  使用MATLAB的滤波器设计工具 324

12.1.4  使用FIR IP Core设计FIR滤波器 328

12.2  HDL模块插入仿真与设计 332

12.3  正交幅度调制与解调模型设计 335

12.4  NCO IP核应用 337

12.5  基于IP的数字编译码器设计 339

习题 340

实验与设计 341

实验12-1  FIR数字滤波器设计实验 341

实验12-2  编译码器与调制解调模块设计实验 342

实验12-3  HDL Import模块应用实验 342

附录A  EDA开发系统及相关软硬件 343

参考文献 349

  

  

·XII·

  

  ·XIII·