书籍详情
FPGA设计技巧与案例开发详解(第2版)
作者:韩彬
出版社:电子工业出版社
出版时间:2015-12-01
ISBN:9787121278969
定价:¥88.00
购买这本书可以去
内容简介
本书由浅入深、由表及里,从FPGA技术的探索到资源的发现与利用,从硬件版图规划与设计到逻辑电路验证与实现,从模块化功能的研究与积累到系统集成的综合与Timingquest时序优化,系统、全面地介绍Altera FPGA的开发流程。本书的所有例程均经过千锤百炼,相关FPGA设计的资源均由笔者多年整理归纳,希望读者能够妥善利用。
作者简介
韩彬,网名CrazyBingo,2012年于杭州电子科技大学获得学士学位,2015年于西安电子科技大学获得硕士学位,长期从事FPGA逻辑驱动电路开发,对LCD显示控制器与摄像头采集系统、硬件加速实现有丰富的开发经验与技术积累。编写过多份FPGA学习教程,常年活跃于各大博客论坛(尤其是ChinaAET)技术群等,在第一版《FPGA设计技巧与案例开发详解》的基础上,呕心沥血,携友再创该书第二版。
目录
目 录第1章 浅谈FPGA技术、优势、学习途径 (1)1.1 FPGA的诞生、发展 (1)1.1.1 FPGA的诞生 (1)1.1.2 FPGA的发展与未来 (4)1.1.3 博弈,在入门之前 (7)1.2 Altera FPGA介绍及发展、应用 (8)1.2.1 Altera公司介绍 (8)1.2.2 Altera产品介绍 (9)1.2.3 Altera FPGA的开发平台 (15)1.2.4 Altera FPGA的动态与应用 (17)1.2.5 Altera FPGA的应用 (20)1.2.6 对比ARM与DSP,认清FPGA (23)1.3 善用网络资源,不断总结自我 (26)第2章 Quartus II 13.0套件的下载及安装 (29)2.1 写在前面的话 (29)2.2 Quartus II 13.0软件下载 (30)2.3 Quartus II 13.0组件安装 (32)2.4 Quartus II 13.0 Device安装 (36)2.5 USB Blaster下载器驱动程序的安装 (39)第3章 Verilog HDL语法简介 (43)3.1 What is Verilog HDL? (43)3.2 设计层次 (44)3.3 设计流程 (44)3.4 基本语法介绍 (46)3.4.1 模块module (46)3.4.2 注释 (47)3.4.3 大小写 (47)3.4.4 参数声明parameter (48)3.4.5 预处理指令 (48)3.4.6 常量 (49)3.4.7 变量 (50)3.4.8 运算符 (51)3.5 Verilog HDL建模 (54)3.5.1 结构建模 (54)3.5.2 数据流建模 (56)3.5.3 行为建模 (57)3.5.4 关于状态机 (66)第4章 MAX II CPLD/Cyclone II/IV FPGA设 PCB Layout设计 (76)4.1 浅谈PCB Layout (76)4.2 MAX II CPLD核心电路设计 (77)4.2.1 MAX II CPLD背景及简介 (77)4.2.2 EPM240T100C5N设计需求研究及分析 (79)4.2.3 EPM240T100C5N核心板原理图设计 (83)4.2.4 EPM240T100C5N核心板布局布线 (87)4.3 Cyclone II FPGA核心电路设计 (88)4.3.1 Cyclone II FPGA背景及简介 (88)4.3.2 Cyclone II数据手册解读与EP2C8Q208C8N的设计研究 (89)4.3.3 EP2C8Q208C8N核心板原理图设计 (101)4.3.4 FPGA核心板Layout注意事项 (110)4.4 Cyclone IV FPGA核心电路设计 (113)4.4.1 Cyclone IV FPGA简介 (113)4.4.2 Cyclone IV FPGA数据手册分析与EP4CE6E22C8N的设计研究 (115)4.4.3 Cyclone IV FPGA核心电路设计 (121)4.5 FPGA/CPLD电路焊接、调试经验总结 (124)4.6 本书配套FPGA开发平台硬件介绍 (128)4.6.1 VIP_Board 3.0硬件资源介绍 (128)4.6.2 VIP_Board 3.0相关外设实物介绍 (130)第5章 Verilog HDL设计与Testbench 文件架构 (134)5.1 Verilog HDL设计 (134)5.1.1 Verilog HDL与VHDL的对比 (134)5.1.2 Verilog HDL的发展 (135)5.1.3 Verilog HDL代码设计风格 (136)5.2 Testbench文件架构 (141)5.2.1 Testbench的介绍 (141)5.2.2 Testbench代码设计风格 (142)5.3 Quartus II工程目录文件夹的定制 (145)第6章 4位计数器的设计与仿真验证 (147)6.1 写在前面的话 (147)6.2 FPGA/CPLD开发流程 (147)6.3 基于Quartus II 13.0的4位计数器设计流程 (149)6.3.1 Quartus II 工程的创建 (149)6.3.2 4位计数器的逻辑电路设计 (152)6.3.3 Quartus II编译流程与工程设置分析 (155)6.4 基于Modelsim-Altera 10.1d的4位计数器仿真验证流程 (166)6.4.1 关于FPGA设计的各种仿真概念分析 (167)6.4.2 Modelsim版本的简要介绍 (168)6.4.3 Modelsim工程的创建 (168)6.4.4 Testbench激励文件的编写 (171)6.4.5 Modelsim波形的仿真与分析 (174)6.5 设计思路的验证与总结 (182)第7章 LED驱动电路设计 (183)7.1 LED驱动电路设计方案1—入门 (183)7.1.1 LED驱动电路设计方案 (183)7.1.2 8位LED的自加显示实验 (185)7.2 LED驱动电路设计方案2—升级 (196)7.2.1 LED电路设计方案 (196)7.2.2 74HC595驱动分析与实现 (198)7.3 8位LED跑马灯显示实验 (208)7.4 LED特效呼吸灯的设计 (215)7.4.1 PWM协议的基本介绍 (215)7.4.2 LED呼吸灯的设计 (216)第8章 独立按键与矩阵键盘的FPGA驱动电路实现 (227)8.1 按键及其工作模式介绍 (227)8.1.1 按键抖动原理分析 (228)8.1.2 硬件消抖动 (228)8.1.3 软件消抖动 (230)8.2 独立按键的FPGA驱动电路设计 (230)8.2.1 独立按键电路设计 (230)8.2.2 FSM状态机的Verilog HDL介绍 (231)8.2.3 FPGA按键驱动设计方案1 (234)8.2.4 FPGA按键驱动设计方案2 (248)8.3 矩阵键盘的FPGA驱动电路设计 (252)8.3.1 工作原理及电路设计 (252)8.3.2 FPGA矩阵键盘驱动设计 (255)第9章 “Hello World”的LCD1602显示驱动实现 (267)9.1 LCD1602介绍及硬件设计 (267)9.1.1 LCD1602字符液晶介绍 (267)9.1.2 LCD1602硬件电路设计 (268)9.1.3 LCD1602的时序及初始化分析 (271)9.2 LCD1602的FPGA驱动电路实现 (275)9.2.1 LCD1602的C语言实现方案 (276)9.2.2 LCD1602的Verilog HDL实现方案 (277)第10章 优化设计FPGA全局时钟管理模块 (290)10.1 异步复位,同步释放机制 (290)10.1.1 组合电路中的竞争-冒险 (291)10.1.2 时序电路中的竞争-冒险 (292)10.2 无PLL的全局时钟管理模块设计 (296)10.3 Quartus II IP核介绍及PLL的定制 (305)10.3.1 Quartus II IP核的介绍 (305)10.3.2 PLL IP核的定制与分析 (311)10.4 带PLL的全局时钟管理模块设计 (319)第11章 基于FPGA与MCU通信的SPI协议设计 (325)11.1 SPI总线协议介绍及硬件的设计 (325)11.1.1 SPI总线协议介绍 (325)11.1.2 STM8的硬件电路设计 (327)11.1.3 SPI总线协议时序分析 (329)11.2 SPI总线协议的通信实现 (330)11.2.1 STM8的SPI总线收发设计 (330)11.2.2 边沿检测电路的FPGA实现 (332)11.2.3 SPI通信的数据接收模块设计 (334)11.2.4 SPI通信的数据发送模块设计 (343)第12章 基于FPGA与PC通信的UART串口设计 (351)12.1 追根溯源透析串口通信 (351)12.1.1 串口通信简介 (351)12.1.2 串口波特率 (354)12.1.3 串口协议分析 (354)12.2 串口电路的设计 (355)12.2.1 TTL转RS-232电路的设计 (355)12.2.2 USB→UART转换电路设计 (356)12.2.3 UART电路的调试 (357)12.3 细说真正的任意分频 (358)12.3.1 分频电路的重要性 (358)12.3.2 任意频率发生器原理 (358)12.3.3 任意频率发生器的验证 (360)12.4 串口通信的硬件实现 (364)12.4.1 uart_receiver接收模块的设计 (364)12.4.2 uart_transfer发送模块的设计 (372)12.4.3 PC2FPGA UART联调测试 (376)第13章 基于FPGA的VGA驱动显示设计 (383)13.1 VGA接口、时序及驱动电路设计 (383)13.1.1 VGA接口介绍 (383)13.1.2 VGA时序分析 (385)13.1.3 RGB三原色模型 (388)13.1.4 VGA驱动电路设计 (391)13.2 VGA驱动的FPGA实现 (396)13.2.1 VGA驱动时序电路的设计 (396)13.2.2 任意分辨率的VGA显示控制器设计 (408)13.3 “Hello World”的VGA显示驱动实现 (411)13.3.1 “Hello World”字模的提取 (411)13.3.2 C2Mif软件的介绍与Mif文件的生成 (414)13.3.3 VGA字符显示的FPGA实现 (418)13.4 彩色图像的VGA显示驱动实现 (422)13.4.1 彩色图像显示的理论分析 (422)13.4.2 彩色图像的数据提取 (423)13.4.3 VGA彩色图像显示的FPGA实现 (424)第14章 基于SDRAM的VGA显示控制器的设计与实现 (427)14.1 跨时钟域数据交互 (427)14.2 SDRAM的介绍及其控制器的移植与优化 (431)14.2.1 SDRAM的特性及时序驱动介绍 (431)14.2.2 SDRAM的硬件驱动电路设计 (435)14.2.3 SDRAM控制器的移植与优化 (437)14.2.4 Sdram_Control_2Port的封装与协议制定 (454)14.3 基于SDRAM的VGA显示控制器的实现 (459)第15章 基于OV7725的摄像头视频图像采集系统 (471)15.1 系统框架设计思路分析 (472)15.1.1 系统框架分析 (472)15.1.2 算法的实现流程 (473)15.2 OV7725摄像头介绍与视频采集实现 (476)15.2.1 CMOS摄像头的简介 (476)15.2.2 OV7725的特性介绍及驱动电路设计 (478)15.2.3 OV7725 SCCB接口及寄存器介绍 (483)15.2.4 OV7725感光阵列与视频时序分析 (492)15.2.5 OV7725寄存器I2C初始化设计 (495)15.2.6 OV7725的视频采集模块设计 (510)15.3 OV7725视频图像显示的实现 (527)15.4 本章小结 (537)第16章 TimeQuest的分析与实践 (539)16.1 写在前面的话 (539)16.2 保持裕量和建立裕量的深刻理解 (539)16.3 时钟约束—内对内模型 (542)16.3.1 内对内模型公式分析 (542)16.3.2 约束时钟及PLL (543)16.4 output引脚约束—内对外模型 (553)16.4.1 内对外模型公式分析 (553)16.4.2 output引脚约束 (554)16.5 input引脚约束—外对内模型 (556)16.6 阶段性小总结 (557)16.7 约束异常 (557)16.7.1 Set Multicycle Path (557)16.7.2 Set False Path (562)16.8 决战SDRAM时序
猜您喜欢