全书从实用的角度出发,通过大量工程实例,详细介绍了FPGA项目程序设计的方法与技巧。全书共分为4篇25章,第1篇为FPGA基础知识篇,简要介绍了FPGA硬件结构、 VHDL语言编程基础,以及FPGA常用开发工具等;第2篇为FPGA 数字系统程序实例,通过矩阵键盘扫描接口设计、PS/2键盘接口设计、点阵发光管扫描接口设计、VGA彩条信号发生器、6层电梯控制器、两种分频器设计、波形信号发生器的设计、交通灯控制的设计、常见的两种数字滤波器的设计、快速傅里叶变换FFT的设计、数字式频率合成器DSS的设计、数字电压计的设计等实例,详细介绍了FPGA数字系统项目开发的技术和技巧;第3篇为FPGA通信系统程序实例,包括串行通信接口UART设计、ASK编码器与译码器设计、FSK编码器与译码器设计、CMI编码器与译码器设计、曼彻斯特编码器与译码器设计、HDB3编码器与译码器设计等实例;第4篇为项目程序实例,通过Nios II定时中断器的应用、基于Nios II的I2C总线传输应用、基于Nios II的SPI总线的应用、基于Nios II的uCOS应用等典型实例,介绍了FPGA汽车电子程序的特点和开发技术。
本书语言简洁、结构清晰,以实际工程为背景,实例典型、丰富,全部来自于实践并且调试通过,代表性和指导性强,利于读者举一反三,是作者多年开发经验的推广与总结。
本书配有光盘1张,包含书中实例的硬件原理图和程序源代码,方便读者学习和使用。本书适合计算机、自动化、电子及硬件等相关专业的大学生,以及从事FPGA开发的科研人员使用。
作者多年开发经验的推广与总结,详述FPGA数字系统程序开发的实战技巧,阐释FPGA通信系统程序开发的实战技巧,剖析NiosII项目程序开发的实战技巧。
第1篇 FPGA基础知识篇
第1章 FPGA硬件结构知识
第2章 VHDL语言编程基础
第3章 FPGA常用开发工具
第2篇 FPGA数字系统程序实例
第4章 矩阵键盘扫描接口设计
第5章 PS/2键盘接口设计
第6章 点阵发光管扫描接口设计
第7章 VGA彩条信号发生器
第8章 6层电梯控制器
第9章 两种分频器设计
第10章 波形信号发生器的设计
第11章 交通灯控制的设计
第12章 常见的两种数字滤波器的设计
第13章 快速傅里叶变换FFT的设计
第14章 数字式频率合成器DSS的设计
第15章 数字电压计的设计
第3篇 FPGA通信系统程序实例
第16章 串行通信接口UART设计
第17章 ASK编码器与译码器设计
第18章 FSK编码器与译码器设计
第19章 CMI编码器与译码器设计
第20章 曼彻斯特编码器与译码器设计
第21章 HDB3编码器与译码器设计
第4篇 Nios II项目程序实例
第22章 Nios II定时中断器的应用
第23章 基于Nios II的I2C总线传输应用
第24章 基于Nios II的SPI总线的应用
第25章 基于Nios II的uCOS应用
第1篇 FPGA基础知识篇
第1章 FPGA硬件结构知识
1.1 CPLD/PPGA概述
CPLD是复杂可编程逻辑器件(Complex Programable Logic Device)的简称,FPGA是现场可编程门阵列(Field Programable Gate Array)的简称,两者的功能基本相同,只是实现原理略有所不同,所以有时可以忽略这两者的区别,统称为可编程逻辑器件或CPLD/FPGA。
CPLD最早由Altera公司推出即MAX系列,多为Flash、EEPROM架构或乘积项(Product Term)架构的PLD。FPGA最早由Xilinx公司推出,多为SRAM架构或查表(Look Up Table)架构,需外接配置用的EPROM下载。由于Altera的FELX/ACEX/APEX系列也是SRAM架构,所以通常把Altera的FELX/ACEX/APEX系列芯片也叫做FPGA。
1.1.1 CPLD/FPGA的特点
CPLD/FPGA可以说都是PAL(可编程阵列逻辑)/GAL(通用阵列逻辑)的延伸,CPLD与FPGA在应用时各自的特点如下。
与FPGA相比,CPLD的逻辑单元较大、容量较小、时序确定、延时可预测。
CPLD时间上安排胜于FPGA。CPLD基于一些可程序化行列逻辑PAL/PLA或乘积项。典型的FPGA则是一个以SRAM(静态随机存储器)为基础、由逻辑单元组成的装置,它包含的寄存器为逻辑表达式提供的查找表。所以FPGA时间上取决于查找表路由,但这样FPGA比CPLD有更多寄存器、更多逻辑,如图1-1和图1—2所示。
……