[经验] 分享FPGA工程师成长手册

第1篇 fpga开发基础

第1章 eda技术概述

1.1 eda技术及发展

1.1.1 何谓eda技术

1.1.2 基于大规模可编程逻辑器件的数字系统设计

1.2 可编程逻辑器件的发展简介

1.2.1 逻辑设计基本流程

1.2.2 可编程逻辑器件pal

1.2.3 从pal到pld到复杂可编程逻辑器件cpld

1.2.4 从cpld到fpga的产生

1.2.5 在系统编程问题的解决

1.3 fpga系统结构和资源

1.3.1 可编程逻辑单元(le)

1.3.2 可编程布线

1.3.3 可编程i/o

1.3.4 嵌入式存储器ram

1.3.5 嵌入式乘法器

1.3.6 时钟

1.3.7 锁相环

1.3.8 fpga与cpld的对比

1.4 fpga的设计流程

1.5 altera公司fpga低成本器件—sycloneⅡ

1.5.1 主要特性

1.5.2 基于数字信号处理(dsp)应用

1.5.3 专用外部存储器接口

1.5.4 嵌入式锁相环

1.5.5 单端i/o特性

1.5.6 差分i/o特性

1.5.7 自动crc检测

1.5.8 支持nios ii嵌入式处理器

1.6 altera公司fpga高成本器件—stratix Ⅲ器件

1.6.1 主要特性

1.6.2 体系架构

1.6.3 trimatrix嵌入式存储器

1.6.4 dsp块

1.6.5 时钟网络和锁相环

1.6.6 高速i/o信号和接口

1.6.7 设计安全性

1.7 小结

第2章 altera quartus ii软件开发流程

2.1 quartus ii综述

2.1.1 quartus ii软件的特点

2.1.2 quartus ii设计软件的流程和集成的工具

2.1.3 quartus ii软件的用户界面

2.2 设计输入

2.2.1 建立工程

2.2.2 输入方式

2.3 约束输入

2.3.1 使用分配编辑器

2.3.2 使用引脚规划器

2.3.3 使用settings对话框

2.4 综合

2.4.1 使用quartus ii软件集成的综合工具

2.4.2 使用其他 eda 综合工具

2.4.3 使用rtl查看器和状态机查看器分析综合结果

2.5 布局布线

2.5.1 设置fitter选项

2.5.2 设置物理综合优化选项

2.5.3 通过反标保留分配

2.6 仿真

2.6.1 quartus ii仿真器设置

2.6.2 建立用于仿真的波形文件

2.7 编程与配置

2.7.1 建立编程文件

2.7.2 器件编程和配置

2.8 小结

第3章 altera quartus ii软件开发向导

3.1 模块编辑及设计流程

3.1.1 原理图输入文件的建立

3.1.2 图表模块输入

3.1.3 原理图设计流程

3.1.4 波形仿真

3.1.5 引脚分配

3.1.6 下载验证

3.1.7 quartus ii的几个常用功能。

3.2 文本编辑及设计流程

3.2.1 建立文本文件

3.2.2 文本设计流程——建立新工程

3.2.3 文本设计流程——编译工程

3.2.4 文本设计流程——建立矢量波形文件

3.2.5 文本设计流程——仿真波形

3.2.6文本设计流程——引脚分配及下载验证

3.3 混合设计

3.3.1 建立计数器文件

3.3.2 建立七段译码显示电路文件

3.3.2 设计流程

3.4 使用signal tap ii的实时测试

3.4.1 打开signal tap ii的编辑窗口

3.4.2 调入待测信号

3.4.3 设置signal tap ii参数

3.4.4 文件存盘

3.4.5 编译选择

3.4.6 启动signal tap ii进行采样分析

3.4.7 signal tap ii的其他设置和控制方法

3.5 小结

第4章 vhdl语言基础

4.1 vhdl语言基本结构

4.1.1 实体

4.1.2 结构体

4.1.3 配置

4.1.4 库

4.2 vhdl语言要素

4.2.1 vhdl文法规则

4.2.2 vhdl数据对象

4.2.3 数据类型

4.2.4 操作符

4.3 顺序语句

4.3.1 赋值语句

4.3.2 if语句

4.3.3 case语句

4.3.4 loop语句

4.3.5 跳出循环的语句

4.3.6 return语句

4.4.7 null语句

4.4 并行语句

4.4.1 并行信号赋值语句

4.4.2 进程(process)语句

4.5 子程序

4.5.1 过程

4.5.2 函数

4.6 vhdl语言描述风格

4.6.1 行为描述

4.6.2 数据流描述

4.6.3 结构化描述

4.7 小结

第5章 基本逻辑电路设计

5.1 组合逻辑电路设计

5.1.1 门电路设计

5.1.2 三态门及总线缓冲器设计

5.1.3 编码器、译码器设计

5.1.4 多路数据选择器和多路数据分配器设计

5.2 时序逻辑电路设计

5.2.1 触发器设计

5.2.2 寄存器设计

5.2.2 计数器设计

5.3 有限状态机电路设计

5.3.1 有限状态机概述

5.3.2 有限状态机的算法描述

5.3.3 有限状态机的vhdl描述模式

5.4 设计实例:交通信号灯控制器设计

5.4.1 交通信号灯控制器设计要求

5.4.2 交通信号灯控制器的设计分析

5.5 小结

第2篇 fpga实例开发部分

第6章 宏模块和lpm函数的应用

6.1 存储器模块的用法

6.1.1 ram的使用

6.1.2 rom的建立过程

6.1.3 fifo的建立使用

6.2 乘法器和锁相环的使用

6.2.1 乘法器的使用

6.2.2 锁相环的使用

6.3 nco ip核的使用

6.4 基于宏模块的设计实例

6.4.1 正弦波信号发生器的设计

6.4.2 流水线乘累加器的设计

6.5 小结

第7章 基于fpga的dsp开发设计

7.1 概述

7.2 dsp builder功能简介与设计流程

7.2.1 dsp builder功能简介

7.2.2 dsp builder设计流程

7.3 基于dsp builder技术的设计示例——调幅电路

7.3.1 在matlab/simulink中建立算法模型

7.3.2 准备工作

7.3.3 在新模型窗口中添加单元模块

7.3.4 在simulink环境中仿真

7.3.5 在modelsim环境中进行功能仿真

7.3.6 在quartusⅡ环境中进行时序仿真

7.4 基于dsp builder的层次化设计——fir滤波器

7.4.1 fir滤波器的原理

7.4.2 建立系统设计模型

7.4.3 建立子系统的模型

7.4.4 在 simulink和modelsim中仿真

7.5 megacore function函数的使用

7.5.1 安装megacore函数

7.5.2 使用megacore函数的设计流程

7.5.3 使用megacore函数设计fir滤波器

7.6 小结

第3篇 fpga高级应用部分

第8章 sopc技术开发概述

8.1 sopc的概念

8.2 sopc系统的核心——nios ii处理器

8.3 sopc系统开发流程

8.3.1 sopc builder的设计流程

8.3.2 sopc的设计阶段

8.4 sopc系统开发环境

8.5 小结

第9章 sopc系统构架

9.1 nios Ⅱ处理器体系结构

9.1.1 nios ii的内部寄存器

9.1.2 nios ii存储器与i/o组织

9.2 nios ii的异常处理

9.2.1.硬件中断

9.2.2.软件异常

9.2.3.nios ii的异常处理流程

9.3 算术逻辑单元和复位信号

9.3.1.算术逻辑单元

9.3.2 复位信号

9.4 jtag调试模块

9.5 avalon总线

9.5.1 avalon互联规范

9.5.2 avalon总线的概念

9.5.3 avalon总线信号

9.5.4 avalon的中断与复位信号

9.5.5 avalon总线传输

9.6 小结

第10章 soc系统硬件开发

10.1 数字钟的设计要求

10.2 硬件开发流程

10.3 创建quartus ii工程

10.3.1 创建quartus ii工程

10.3.2 创建顶层实体文件

10.4 创建nios ii系统模块

10.4.1 创建新系统

10.4.2 加入nios ii处理器

10.4.3 加入外围模块

10.4.4 分配系统各ip模块的地址和中断号分配、niosⅡ系统配置

10.4.5 生成nios ii并添加到工程中

10.4.6 建立锁相环pll模块

10.5 编译和下载

10.5.1 引脚分配

10.5.2 配置工程

10.5.3 编译设计

10.5.4 程序配置下载

10.6 小结

第11章 sopc系统软件开发

11.1 nios ii ide 简介

11.1.1 nios ii ide的功能模块

11.1.2 niosii ide开发流程

11.2 基于niosⅡide软件示例——数字钟软件

11.2.1 建立软件工程

11.2.2 编译工程

11.2.3 运行

11.3 数字钟的程序设计

11.4 hal系统库

11.4.1 hal简述

11.4.2 目前提供的主要hal资源

11.5 使用hal开发应用程序

11.6 小结

第12章 nios ii常用外设使用

12.1 并行输入输出内核(pio)

12.1.1 pio内核简介

12.1.2 pio内核的配置

12.1.3 pio内核的c语言编程

12.2 定时器的使用

12.2.1 内核定时器简介

12.2.2 定时器内核的配置

12.2.3 定时器内核的c语言编程

12.3 flash接口控制器的使用

12.3.1 flash接口控制器简介

12.3.2 cfi控制器的配置

12.3.3 cfi控制器的c语言编程

12.4 sdram控制器的使用

12.4.1 sdram控制器内核概述

12.4.2 sdram内核配置

12.4.3 软件编程

12.5 uart的使用

12.5.1 uart内核简介

12.5.2 uart内核的寄存器

12.5.3 uart内核配置

12.5.4 软件编程

12.6 小结

第13章 logiclock优化技术

13.1 logiclock优化技术简介

13.1.1 logiclock 设计方法目标

13.1.2 logiclock的区域

13.1.3 锁定区域的基本方式

13.1.4 logiclock技术的应用流程

13.2 为应用logiclock技术准备的具体实例

13.2.1 数字滤波器结构及其vhdl描述

13.2.2 滤波器设计和结果

13.3 logiclock优化设计——底层模块设计

13.3.1 建立底层模块工程

13.3.2 建立父区域

13.3.3 定义逻辑锁定子区域

13.3.4 将设计实体移至锁定区域

13.3.5 编译优化锁定后的filter模块

13.3.6 输出逻辑锁定后的vqm文件

13.4 logiclock优化设计——顶层设计

13.4.1 建立顶层工程

13.4.2 将vqm文件加到顶层工程中

13.4.3 导入logiclock约束

13.5 小结

第14章 数字系统设计实例——电子乐器

14.1 电子乐器的设计

14.1.1 设计要求

14.1.2 设计原理

14.1.3 乐曲硬件演奏电路的层次化设计方案

14.2 fft设计

14.2.1 fft的原理

14.2.2 基于dsp builder设计fft的方法

14.3 sd卡驱动的设计

14.3.1 sd卡和spi内核简介

14.3.2 sd卡与fpga接口电路

14.3.3 硬件系统的sopc设计

14.3.4 系统软件设计

14.4 小结


立即咨询有惊喜哦 !