Welcome
大家好,欢迎来到瑾芳玉洁的博客!
😑励志开源分享诗和代码,三餐却无汤,顿顿都被噎。
😭有幸结识那个值得被认真、被珍惜、被捧在手掌心的女孩,不出意外被敷衍、被唾弃、被埋在了垃圾堆。
🙂喜欢舞文弄墨咬文嚼字的混沌世界,懵懂无知走上了工科直男01的不归路。
😎八十公斤的体重勉强与大鹏一日同风起的浮力动态平衡,做不到宠辱不惊无欲无求的匀速直线运动,就按部就班的小波浪式前进,螺旋式蠕动。
<🤵🤵🤵我是听过Qt、Matlab、Python,考过计算机网络、数据库、操作系统,浅尝过树莓派、STM32、MSP430,浅试过Linux移植的FPGA工程师!我就是我,一个没有颜色的错过的烟火,一个立志成为**CSDN TOP100**的黑铁FPGA选手!👌✌哦耶~~~
前言
成为一名高级的FPGA工程师需要具备广泛的知识面,且有一定的深度。从原理角度需熟悉数字电路原理、模拟电路,电路原理,了解FPGA内部结构;从开发语言角度需熟悉verilog、VHDL硬件描述语言,以及时兴的systemverilog,并掌握一些经典的示例;从开发工具的角度需熟悉vivado、Quartus II等FPGA开发环境,subline4、vs code等文本编辑器,modelsim、matlab等仿真工具;从接口的角度,熟悉常见的低速通信接口如UART、SPI、IIC等,熟悉常见的高速接口如USB3.0,千兆网口,DDR3等是必备素养。从进阶的角度,需学习时序约束的原理与如何让时序收敛的方法,需学习FPGA大型项目模块划分如何顶层设计。此外,最近几年又兴起的以Xilinx ZYNQ和ZYNQ Ultrasacle+系列为代表的异构处理芯片,集成了ARM与FPGA在一颗芯片上,与他相关的又涉及他的工具,开发流程等内容。我的计划是在博客中分享、记录在FPGA进阶路上的收获,以FPGA内容为主,而其他内容包括Qt,matlab、python,C/C++的内容都是以助力FPGA开发,提升学习办公效率为主要目的。FPGA内容大体包括以下方面:工具、语言、基础理论知识、内部结构知识、xilinx的官方资料解读、常见通信接口、高速通信接口等内容。进阶篇,讲述相对复杂的时序约束,工具使用的进阶,以及基于基础篇通信接口测试的实用的小项目。前路漫漫亦灿灿,往事堪堪亦澜澜,任重道远,行则将至!
本文作为FPGA通信接口专栏的第一篇文章,简要介绍该内容在整体架构中的位置,即数据在以FPGA为核心的系统中流通必经之路,是成为中级。介绍通信接口包含的内容主要分为以下几类。一是传统的串行通信接口如UART、IIC、SPI等,二是以太网通信接口包括了两种千兆网口的实现方式,万兆以太网的实现等,三是基于GTx的光口通信高速的serdes接口,四是图像采集显示相关的接口包括了RGB、DVP、LVDS,MIPI等,五是不管是消费领域还是工业场景常见的USB3.0接口。所有的项目提供经过验证之后的源码,为读者提供学习例程或者为大项目的开发提供“封装”好的接口驱动。尽可能做到过程详尽,实用于实战,并会写一些实战过程中解决问题的经验。
知识架构
开发环境
如无特殊说明,本系列文章开发环境配置如下:
●OS: Windows10 64bit
●开发环境:Vivado2020.2
●芯片厂家:xilinx 7系列 KU系列
●仿真工具:Vivado Simulator
●开发语言:Verilog-HDL
系列文章目录
🎈第一篇文章: 串行通信接口 UART
简介:介绍常见的传统串行通信接口,UART通信协议内容,提供FPGA源码.
🎈第二篇文章: 串行通信接口 SPI
简介:介绍传统串行通信接口SPI协议内容,四种模式,代码设计,实战应用。提供FPGA源码工程.
🎈第三篇文章: 串行通信接口 IIC(1)接口协议
简介:介绍传统串行通信接口IIC协议内容,消息类型,接口时序,读写过程,并提供仿真分析及源码.
🎈第四篇文章: 串行通信接口 IIC(2)EEPROM读写
简介:以AC24C04为例,介绍使用IIC控制器读写EEPROM,提供仿真分析和工程源码
传送门
USB3.0Cypress通信方案专栏
FPGA开发工具专栏
FPGA调试技巧专栏
Qt实操入门篇专栏
Qt实战提升篇专栏
matlab助力FPGA开发
python提高办公效率专栏
文章持续更新中-- |
💡 欢迎您关注我的CSDN博客:https://blog.csdn.net/weixin_40615338?type=blog
💡 本文由 瑾芳玉洁 原创👨🎓,相互学习,共同进步!
💡批评,宝贵建议,兼职合作,欢迎交流📧jackxi0207@gmail.com!