项目开发
基于ZYNQ-7000的多线程电机调速开发
Pl解码电机的光学编码器、AD,从而采集转速和电流,dma到ddr,并中断给Ps,进行数据采集。Ps双核两线程: 线程1解析上位机指令,采集温度并与线程2交互。线程2分工况双闭环PID控制,输出调制解调比(mi)并反馈给线程1,线程1与上位机交互,并输出mi给pl。pl调制出pwm,驱动mosfet H桥,从而改变电压进行调速;写flash控制器,Icap在线升级。
基于硬件加速的视频验证平台
Zynq-7000
上位机软件开发,Tcp/Ip调socket发视频包,Ps socket收包后与pl交互。Pl对Sobel算法(边缘检测)硬件加速。进行对比分析。
基于Pcie和千兆以太网的Led显示
Kintex 7(7k325t)
上位机开发应用层进行视频采集,搭Pcie平台,上位机PCIE调用Riffa驱动,视频传输给Fpga。Fpga调用Riffa驱动和Ip核,收包并发响应包给上位机。写ddr的驱动,图像传入ddr。读ddr,读出后组多个Udp包,编码,驱动Phy(Rgmii)芯片,通过多网口发给液晶,拼成图像。
基于AI深度学习Zynq平台(7z030)的MAX222摄像头驱动
Linux搭建Caffe,python环境;配置神经网络架构的参数;训练,通过前导、反导函数修改权重,偏置值;测试命中率;Python提取权重、偏置值并导入Hls;搭建Hls软硬件平台,包括Pl侧: 驱动摄像头的Spi驱动,Lvds传输,bayer 插值法转RGB,白平衡算法实现,搭建dma通道,hdmi显示模块等。导入硬件平台到Hls后,软件实现AI预测,并硬件加速;调用Fat32文件系统存图像到Sd卡,Hdmi实时显示视频及预测结果。
通信项目:
混频,fir滤波,Fft, dds.
项目主要技能树
FPGA: dma,sdram,ddr,flash,Pcie,Ethernet,serders,lvds, spi,uart,iic,hdmi,vga,时序、功耗、资源优化等
Arm、Pc(linux及其他软件) : AMBA总线(AXI),中断、接口,测试文件,算法优化,API
算法: 欧拉,傅里叶,卷积,拉普拉斯,狄拉克,时频转换,工控算法。
其他: Tcp/Ip,Fat32,深度学习
总结: Fpga全栈工程师: Fpga与Fpga、ARM、上位机、板级的交互;对Fpga内部时序、资源、功耗有较好的理解;掌握电子知识与多种编程语言。