基于小梅哥Altera SOC FPGA视频课程,基于Cyclone V SOC FPGA:https://www.bilibili.com/video/BV1dE411i7gN?from=search&seid=14910702332090064010&spm_id_from=333.337.0.0
背景知识扫盲
soc和sopc
sopc:由fpga编程的cpu,具有灵活性,但浪费资源,频率不高
soc和sopc的区别:soc的arm不能用作fpga,sopc的可以,
hps外设的引脚和fpga外设引脚重叠时,可以将hps数据给fpga,用fpga操控
soc开发工具
quatus版本要新
soc eds:是一个平台
DS-AE:跟keil一样
putty:将电脑系统和开发板上的系统连上
开发外设驱动程序其实简单 整个soc难点在软件驱动开发和platform promgramer上
GHRD工程简介 黄金硬件参考设计
一般设计 都是在黄金硬件设计上增减 避免错误
顶层模块讲解
soc-seystem函数由platform promgramer产生
platform programmer介绍
几个重要的IP核
1.clk_0
作用:设置时钟约束,给其他ip核分频
2.sysid_qsys
系统跟版本对应
led
PIO软IP,使用IP Catalog中的PIO(ParallelI/O)组件,设置为2位的仅输出型PIO,同时使能了独立位操作功能,用来驱动FPGA侧的两个LED灯,如图xxx所示:
de10有10位的输出
4.buttonpio
5.串口uart
6.spi
实际的值会小于设置的频率
7.i2c
8.图像IP
platform programmer ip连接
fpga和hps通信
之间有三座桥
hps中有avalon master 控制 所有avalon slave
h2f_axi_master 表示轻量级的传输 但控制一般外设都足够了
添加一个IP的步骤
详细参考:https://recclay.blog.csdn.net/article/details/105164906
(irq)timer中断的连接:在右侧
hps详细介绍
点hps edit 可以对三个桥的宽度进行设置
当其他模块没有用到这个某坐桥时可以关断
当fpga需要用hps的ddr3时可以让fpga建设端口和hps相连,从而让fpga控制 ddr3
hps有ddr3
fpga没有
可以添加多个
IO口复用
详见上面链接
千兆以太网的接口被hps占用了,就把接口给fpga再通过fpga给hps
不需要考虑兼容性,不报错就能用
hps clock
hps的时钟
DS5编写程序并通过linux执行
使用gdbserver进行代码调试
soc系统可以用以太网接口和电脑相连,只要知道ip地址就可以通信而且速度很快
soc系统也可以和路由器相连,电脑也跟路由器相连,这样的通信速度很慢
电脑和soc连接:
通过网络传输文件:wincp软件快捷实现
使用gdbserver远程调试linux应用程序
gdb已经被ds官方删除了需要自己添加
调试步骤:
run-》debug configuration >c /c++ Application
bug:ds5没有connection选项,改为remote application
详细链接:远程调试的链接方法
gdbserver的实现原理
gdbserver linux版本下载::http://ftp.gnu.org/gnu/gdb/