《FPGA应用开发实战技巧精粹》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:杨跃编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2009
  • ISBN:9787115196613
  • 页数:365 页
图书介绍:本书着眼于实践,着重介绍了FPGA设计开发的技巧。包括Xilinx开发软件ISE的使用技巧、Altera开发软件Quartus的使用技巧、仿真工具ModelSim的使用技巧和综合工具Synplify的使用技巧,还介绍了设计数字电路的一般技巧。本书立足于实际,介绍的技巧都是在实际开发中经常使用到的,作者结合多年的工作经验组织编写了各个技巧,并且提供了具体的使用方法和实例。读者可以参考书中的技巧,通过实际动手操作掌握各个技巧的使用方法,并且在实际开发工作中使用。本书可以作为高等院校电子工程、通信工程、计算机、自动化等专业的教材,也可以作为电子工程师的参考手册。

第1章 基础知识 1

1.1 FPGA简介 1

1.2 FPGA基本结构 2

1.2.1 FPGA的基本结构 2

1.2.2 Altera FPGA基本结构 2

1.2.3 Xilinx FPGA基本结构 5

1.3 FPGA的应用 7

1.4 FPGA设计流程 7

1.5 FPGA的常用开发工具 10

1.6 FPGA设计技术展望 11

1.6.1 未来可编程器件的发展趋势 11

1.6.2 未来EDA设计方法的发展趋势 12

第2章 Xilinx FPGA设计技巧 14

2.1 ISE基本使用技巧 14

2.1.1 新建项目的技巧 14

2.1.2 新建HDL文件的技巧 15

2.1.3 添加HDL文件的技巧 16

2.1.4 新建原理图设计的技巧 16

2.1.5 在原理图中调用模块的技巧 17

2.1.6 编辑原理图的技巧 18

2.1.7 用Constraints Editor设置约束的技巧 20

2.1.8 用PACE设置引脚与区域约束的技巧 23

2.1.9 使用XST进行综合的技巧 26

2.1.10 设计实现的技巧 29

2.1.11 生成下载文件的技巧 30

2.1.12 下载FPGA的技巧 32

2.2 仿真验证技巧 34

2.2.1 新建测试平台的技巧 34

2.2.2 图形化编辑激励信号的技巧 36

2.2.3 在ISE中仿真的技巧 37

2.2.4 在ISE中调用ModelSim的技巧 38

2.2.5 使用ModelSim行为仿真的技巧 39

2.3 命令行方式使用ISE的技巧 43

2.3.1 调用命令行的技巧 43

2.3.2 命令行的语法技巧 44

2.3.3 NGDBUILD命令使用技巧 45

2.3.4 MAP命令使用技巧 47

2.3.5 PAR命令使用技巧 49

2.3.6 BITGEN命令使用技巧 50

2.3.7 TRACE命令使用技巧 51

2.3.8 DATA2MEM命令使用技巧 52

2.3.9 自动执行命令行的技巧 52

2.4 CORE Generator使用技巧 55

2.4.1 新建CORE Generator项目的技巧 55

2.4.2 新建IP的技巧 58

2.4.3 修改已有IP的参数的技巧 59

2.4.4 Architecture Wizard使用技巧 60

2.4.5 在设计中例化IP的技巧 62

2.4.6 选择不同版本IP的技巧 63

2.5 使用Xilinx硬件资源的技巧 64

2.5.1 DCM使用技巧 64

2.5.2 PMCD使用技巧 66

2.5.3 BLOCK RAM使用技巧 69

2.5.4 分布式RAM使用技巧 72

2.5.5 FIFO使用技巧 72

2.5.6 IDDR使用技巧 74

2.5.7 ODDR使用技巧 79

2.6 设置约束的技巧 82

2.6.1 使用UCF文件的技巧 82

2.6.2 编写UCF文件的语法技巧 83

2.6.3 设置TNM_NET分组约束的技巧 84

2.6.4 设置TNM分组约束的技巧 84

2.6.5 设置TIMESPEC时序约束的技巧 85

2.6.6 设置AREA_GROUP约束的技巧 85

2.6.7 设置DRIVE约束的技巧 87

2.6.8 设置IBUF_DELAY_VALUE约束的技巧 87

2.6.9 设置IFD_DELAY_VALUE约束的技巧 88

2.6.10 设置IOBDELAY约束的技巧 88

2.6.11 设置KEEP约束的技巧 89

2.6.12 设置IOSTANDARD约束的技巧 89

2.6.13 设置KEEP_HIERARCHY约束的技巧 90

2.6.14 设置IOB约束的技巧 91

2.6.15 设置LOC约束的技巧 92

2.6.16 设置OFFSET约束的技巧 94

2.6.17 设置PERIOD约束的技巧 97

2.6.18 设置PIN约束的技巧 99

2.6.19 设置TIMEGRP约束的技巧 99

2.7 Chipscope调试技巧 100

2.7.1 使用Chipscope Inserter的技巧 101

2.7.2 生成ChipScope下载文件的技巧 105

2.7.3 使用ChipScope下载FPGA的技巧 106

2.7.4 使用ChipScope Analyzer的技巧 107

2.7.5 直接从ISE调用ChipScope的技巧 109

2.7.6 使用ICON Core的技巧 110

2.7.7 使用ILA Core的技巧 112

第3章 Altera FPGA设计技巧 116

3.1 使用Altera器件的技巧 116

3.1.1 PLL的使用技巧 116

3.1.2 LVDS的使用技巧 118

3.1.3 FIFO的使用技巧 121

3.1.4 Embedded RAM的使用技巧 122

3.1.5 Shift Register的使用技巧 124

3.1.6 动态相位对准(DPA)的使用技巧 125

3.1.7 Virtual JTAG的使用技巧 126

3.1.8 DSP块的使用技巧 127

3.2 使用Quartus开发的基本技巧 128

3.2.1 运行新项目向导的技巧 128

3.2.2 设置项目参数的技巧 129

3.2.3 添加HDL设计的技巧 131

3.2.4 新建HDL设计的技巧 132

3.2.5 运行时序向导设置时序约束的技巧 132

3.2.6 编译设计的技巧 134

3.2.7 配置FPGA的技巧 135

3.3 使用Quartus输入设计的技巧 136

3.3.1 使用版本兼容的设计的技巧 136

3.3.2 使用Block Editor的技巧 137

3.3.3 使用Text Editor的技巧 138

3.3.4 使用Symbol Editor的技巧 138

3.3.5 使用Megafunction的技巧 140

3.3.6 使用语言模板的技巧 140

3.4 使用Quartus综合的技巧 142

3.4.1 设置综合属性的技巧 142

3.4.2 综合VHDL和Verilog设计的技巧 142

3.4.3 使用编译指令和属性的技巧 143

3.4.4 使用逻辑选项的技巧 143

3.4.5 优化综合网表的技巧 146

3.4.6 检查设计可靠性的技巧 147

3.4.7 查看状态机综合结果的技巧 148

3.4.8 查看综合报告的技巧 149

3.4.9 使用增量综合的技巧 151

3.5 使用Quartus布局布线的技巧 151

3.5.1 配置编译器的技巧 151

3.5.2 创建引脚分配的技巧 153

3.5.3 查看编译结果的技巧 154

3.5.4 设置布局布线选线的技巧 155

3.5.5 使用资源优化向导的技巧 157

3.6 时序分析的技巧 159

3.6.1 查看时序分析结果的技巧 159

3.6.2 执行多时钟时序分析的技巧 160

3.6.3 设定多周期路径的技巧 161

3.6.4 查看特殊路径时序结果的技巧 161

3.6.5 使用时序优化器的技巧 163

3.6.6 使用LogicLock改善时序要求的技巧 164

3.6.7 使用渐进式编译改善时序的技巧 165

3.7 使用Quartus仿真的技巧 166

3.7.1 设置仿真工具的技巧 166

3.7.2 创建波形文件的技巧 167

3.7.3 生成仿真输出文件的技巧 167

3.7.4 生成仿真库的技巧 168

3.7.5 分析仿真结果的技巧 170

3.7.6 使用仿真器工具的技巧 170

3.8 使用Quartus下载的技巧 172

3.8.1 创建下载文件的技巧 172

3.8.2 加载文件格式转换的技巧 173

3.8.3 使用Programmer配置器件的技巧 174

3.8.4 建立辅助下载文件的技巧 175

3.9 SignalTap II调试技巧 176

3.9.1 设置和运行Logic Analyzer的技巧 176

3.9.2 增量式编译使用Signal TapII的技巧 178

3.9.3 使用外部逻辑分析仪的技巧 178

3.9.4 使用SignalProbe的技巧 179

3.9.5 使用RTL查看器的技巧 180

3.9.6 使用技术映射查看器的技巧 181

3.9.7 使用芯片编辑器的技巧 182

3.10 使用Altera IP Core的技巧 183

3.10.1 启动Mega Wizard Plug-In的技巧 183

3.10.2 充分利用IP宏功能的技巧 184

3.10.3 生成所需IP的技巧 185

3.10.4 例化IP的技巧 187

3.10.5 推断IP宏功能的技巧 187

3.10.6 使用黑盒子方式例化宏功能的技巧 188

3.10.7 按推断进行例化的技巧 188

3.10.8 使用Clear-Box的技巧 188

3.11 设置约束的技巧 189

3.11.1 设置引脚约束的技巧 189

3.11.2 使用Assignment Editor的技巧 189

3.11.3 设置时间约束的技巧 190

3.11.4 设置位置约束的技巧 192

3.11.5 设置区域的技巧 192

3.11.6 导出和导入约束文件的技巧 193

3.11.7 验证引脚分配的技巧 194

第4章 逻辑电路设计技巧 196

4.1 FPGA设计的基本技巧 196

4.1.1 Top-Down方式的设计技巧 196

4.1.2 Bottom-Up方式的设计技巧 198

4.1.3 VHDL设计FPGA的技巧 198

4.1.4 Verilog HDL设计FPGA的技巧 200

4.1.5 状态机设计的技巧 206

4.2 数字系统设计技巧 207

4.2.1 同步电路设计技巧 207

4.2.2 异步时钟域数据同步的技巧 209

4.2.3 亚稳态 211

4.2.4 系统原则的技巧 211

4.2.5 硬件设计原则的技巧 213

4.2.6 选择if语句与case语句的技巧 214

4.2.7 分离组合电路与时序电路的技巧 216

4.2.8 乒乓操作的技巧 219

4.2.9 串并转换的技巧 221

4.2.10 流水线操作设计的技巧 221

4.3 代码风格技巧 222

4.3.1 VHDL的编码风格技巧 222

4.3.2 Verilog HDL的编码风格技巧 233

4.3.3 命名的技巧 240

4.3.4 添加注释的技巧 241

4.3.5 模块划分的技巧 242

4.3.6 模块重用的技巧 243

4.3.7 编写可综合代码的技巧 244

4.4 提高速度的技巧 246

4.4.1 设置速度约束的技巧 246

4.4.2 专用资源提高速度的技巧 247

4.4.3 分配关键路径的技巧 247

4.4.4 进行特殊约束的技巧 249

4.4.5 减少逻辑级数的技巧 249

4.4.6 分割组合逻辑的技巧 250

4.4.7 转移组合逻辑的技巧 251

4.5 降低面积的技巧 252

4.5.1 模块划分的技巧 252

4.5.2 复用模块的技巧 253

4.5.3 利用代码风格降低面积的技巧 254

4.5.4 使用分布式RAM的技巧 255

4.5.5 布局布线的技巧 256

4.5.6 面积和速度的平衡与互换技巧 257

第5章 ModelSim仿真技巧 259

5.1 ModelSim介绍 259

5.2 图形界面使用技巧 260

5.2.1 使用Wizard创建工程的技巧 260

5.2.2 编译文件的技巧 262

5.2.3 启动仿真的技巧 262

5.2.4 产生信号激励的技巧 263

5.2.5 查看波形的技巧 265

5.3 编译ModelSim仿真库的技巧 265

5.3.1 在ModelSim中编译Xilinx仿真库的技巧 266

5.3.2 在ISE中编译Xilinx仿真库的技巧 267

5.3.3 使用脚本编译Xilinx仿真库的技巧 269

5.3.4 在ModelSim中编译Altera仿真库的技巧 270

5.4 使用FPGA开发工具调用ModelSim的技巧 271

5.4.1 在ISE中调用ModelSim的技巧 271

5.4.2 在Quarthus中调用ModelSim的技巧 273

5.5 命令行方式仿真技巧 277

5.5.1 VLIB命令使用技巧 277

5.5.2 VMAP命令使用技巧 278

5.5.3 VCOM命令使用技巧 278

5.5.4 VLOG命令使用技巧 280

5.5.5 VSIM命令使用技巧 281

5.5.6 FORCE命令使用技巧 282

5.5.7 ADD WAVE命令使用技巧 284

5.5.8 RUN命令使用技巧 286

5.5.9 DO文件使用技巧 287

5.6 ModelSim脚本仿真技巧 287

5.6.1 Testbench的创建技巧 287

5.6.2 ModelSim DO脚本文件编写技巧 298

5.6.3 运行ModelSim DO脚本的技巧 301

第6章 Synplify综合工具使用技巧 302

6.1 Synplify Pro基本使用技巧 302

6.1.1 新建HDL源文件的技巧 302

6.1.2 使用文本编辑器的技巧 304

6.1.3 检查HDL源文件的技巧 304

6.1.4 使用外部文本编辑器的技巧 306

6.1.5 设置工程参数的技巧 307

6.1.6 综合及查看综合结果的技巧 308

6.1.7 混合语言综合的技巧 311

6.1.8 新建设计实现的技巧 313

6.2 分析综合结果的技巧 313

6.2.1 使用日志观察窗口的技巧 313

6.2.2 使用信息查看器的技巧 314

6.2.3 分析关键路径时序的技巧 316

6.2.4 使用Stand-alone时序分析的技巧 317

6.3 利用脚本运行Synplify的技巧 319

6.3.1 使用add_file命令的技巧 319

6.3.2 使用assign_to_region命令的技巧 320

6.3.3 指定constraint_file命令的技巧 321

6.3.4 使用create_region命令的技巧 322

6.3.5 使用gen_env命令的技巧 322

6.3.6 使用impl命令的技巧 322

6.3.7 使用project命令的技巧 324

6.3.8 使用project_file命令的技巧 326

6.4 综合属性Attribute 327

6.4.1 添加综合属性的技巧 327

6.4.2 使用SCOPE窗口的技巧 328

6.4.3 使用altera_chip_pin_lc属性的技巧 329

6.4.4 使用black_box_pad_pin属性的技巧 330

6.4.5 使用black_box_tri_pins属性的技巧 332

6.4.6 使用syn_allow_retiming属性的技巧 333

6.4.7 使用syn_black_box属性的技巧 334

6.4.8 使用syn_encoding属性的技巧 335

6.4.9 使用syn_hier属性的技巧 337

6.4.10 使用syn_netlist_hierarchy属性的技巧 338

6.4.11 使用syn_ramstyle属性的技巧 339

6.4.12 使用syn_loc属性的技巧 340

6.4.13 使用syn_noclockbuf属性的技巧 341

6.4.14 使用syn_keep属性的技巧 343

6.4.15 使用syn_noprune属性的技巧 346

6.4.16 使用syn_preserve属性的技巧 350

6.4.17 使用translate_off/translate_on属性的技巧 352

6.5 Synplify的高级综合技巧 354

6.5.1 共享资源的技巧 354

6.5.2 使用流水线的技巧 355

6.5.3 使用Retiming的技巧 357

6.5.4 插入探针Probes的技巧 358

6.5.5 使用推论RAM的技巧 359

6.5.6 使用推论移位寄存器的技巧 363