一、FPGA学习路线
工具使用 -> 语法学习 -> 逻辑设计 -> IP使用 ->接口设计 -> 时序分析 -> 片上系统
1、工具使用
Altera:Quartus II
Xlinx: Vivado
2、语法学习
Verilog HDL(FPGA设计的是电路)
3、 逻辑设计
组合逻辑:多路选择器、加法器、译码器、乘法器 ·······
时序逻辑:计数器、分频器、移位寄存器、定时器 ·······
接口逻辑:UART,CAN,SPI,LVDS,DDR3,PCIE ······
状态机,线性序列机
4、IP使用
乘法器,加法器,计数器、IO、FFT、各种软核CPU(MC8051)·······
5、接口设计
Avalon ST、Avalon MM、FSMC和FPGA
6、时序分析
时序分析和时序约束
7、片上系统
SOPC: 使用FPGA通用逻辑搭建CPU和外围设备电路
Intel: NIOS II 软核CPU,ARM CortexA9硬核
Xilinx: MicroBlaze软核CPU,PowerPC硬核,硬核ARM CortexA9
MCS8051、开源软核CPU、CortexM0
二、FPGA开发流程
1、设计定义
2、设计输入(verilog、原理图)
3、分析和综合
4、功能仿真(modelsim)
5、布局布线
6、时序仿真
7、IO分配及配置文件的生成
8、配置(烧写FPGA)
9、在线调试
三、工程模板
1、Quartus II
- prj ----- 工程文件存放目录(ip文件夹存放生成的ip核文件)
- rtl ----- verilog可综合代码
- img ----- 设计相关图片存放目录(方便写文档)
- doc ----- 设计相关文档存放目录
- testbench ----- 对应的testbench仿真测试文件存放目录
2、Vivado
使用Vivado软件比较方便,直接指定存放工程目录就可以,源文件和测试文件会自动分类存放在子文件夹下:
- .cache----- Vivado 软件的运行缓存
- .hw ----- 所有波形文件
- .ip_user_files ----- 用户关于 IP 的文件
- .runs----- 编译与综合结果,.\impl_1 文件夹中的.bin 和 .bit 即为编译生成的可执行文件
- .sdk ----- SDK 环境代码,一般是 ZYNQ 设计中关于 PS 端的代码
- .sim ----- 仿真结果
- .srcs ----- 所有用户编写的源码、仿真文件与约束文件
- .tmp ----- 自制 IP 核时的临时工程文件夹,IP 核设计完成后会自动清理