FPGA学习路线指北

该文详细介绍了从基础的数字电路知识到FPGA开发的进阶过程,包括学习VerilogHDL,使用Iverilog+gtkwave,FPGA工具如Quartusii和Vivado,以及ZynqSDK开发和时序约束分析。此外,还提到了脚本语言的学习和IC设计的初步探索。
摘要由CSDN通过智能技术生成

准备阶段

        1.学习基础的数字电路知识,比如D触发器,时序电路,组合逻辑电路等。这里推荐康华光版的数字电路设计

        2.学习掌握一种比较流行的硬件描述语言,比如System Verilog.Verilog HDL ,VDHL等,这里初期推荐Verilog HDL。学会一些基本的设计文件和测试文件的编写

        3.学习轻量化编译软件iverilog+gtkwave熟悉硬件描述语言的语法,结构和规范,能够熟练的使用相应的语言描述数字电路 

        4.可以上网上寻找相应的测试题来提高自己verilog代码的编写能力,这里推荐两个网站

        牛客网公司真题_免费模拟题库_企业面试|笔试真题 (nowcoder.com)

        Vectorr - HDLBits (01xz.net)

        一个是牛客网,一个是HDLBits刷题网站,都是很好的检验自己verilog能力的题目

        掌握的差不多就可以进行下一阶段,进行FPGA开发了

初级开发阶段

        1.学习FPGA的开发工具,比如Alter的Quartus ii 或者是Xilinx的Vivado 以及仿真软件modelsim。掌握这些软件可以让你完成FPGA的开发

        2.完成上述几个后,可以从点亮流水灯入门,开始你的FPGA的开发之旅。紧接着熟悉相关开发软件的IP核的使用,比如rom,ram,fifo等常用的ip。像按键数码管这种基本的硬件也要学着驱动起来,后面可以继续学习相关协议的编写,比如三大协议(uart,spi,iic)以及vga/hdmi视频接口,udp协议,sdram接口时序(ddr3也可)。这一步骤知识量比较大,可以慢慢消化,不必操之过急。

这里推荐野火的视频,讲的非常不错

【野火】FPGA系列教学视频,真正的手把手教学,“波形图”教学法,现场画波形图写代码,硬件基于野火FPGA EP4CE10征途系列开发板,已完结_哔哩哔哩_bilibili

        3.学习vivado的ila逻辑调试和quartus ii的sigaltap逻辑调试,方便改bug

        4.可以接触相关的时序分析,比如建立时间,保持时间等的基本概念,为以后学习时序分析做铺垫

        5.学习FPGA芯片的基础知识,包括FPGA芯片中的可编程逻辑单元(CLB),输入输出引脚(I/O)等,了解FPGA架构和计算资源分配的原则(这部分可以在校招或找工作的时候在详细了解)

 

 中级阶段

          1.掌握zynq的sdk开发,重点学习pl和ps交互的知识(ps和pl通过bram交互或者是ps,pl通过dma交互)以及IP核的封装(这里AXI协议是非常重要的!!!)

        视频推荐:正点原子领航者sdk开发

正点原子手把手教你学ZYNQ之嵌入式开发-基于启明星V1/领航者V1【第二期】_哔哩哔哩_bilibili

        2.学习时序约束和时序分析的相关知识,这里入门推荐小梅哥时序约束的视频,后续如果想深入了解的话可以看sta(推荐图书:IC芯片设计中的静态时序分析实践)

        3. 可以学习一门脚本语言,加快自己的效率(脚本语言比如tcl,python,perl等)其中tcl脚本语言是适用于vivado的,具体学哪一个看你们的个人兴趣

        4.(可选)可以尝试学习一下linux操作,学习一下vcs+verdi联合仿真(非常舒服)。也可以学习一下zynq的linux开发

  高级阶段

         高级阶段这里我就不做过多的叙述了,学完初级和中级后,已经可以尝试着做做一下开源项目锻炼自己的能力

        这里可以给几个推荐

        第一条:可以学习一些IC工具链,熟悉soc设计流程掌握IC的设计方法,试着学习一下开源的tinyriscv等等,为以后转行IC做铺垫

        第二条:可以学习一些高速接口,如pcie等...这里不做过多的阐述了,学到这里你应该就会有属于自己的路线了,坚持自己的目标,走下去,迎接美好的明天

    

         

          

        

对于研究生来说,学习FPGA可以按照以下路线进行: 1. 入门基础知识:首先需要学习数字电路的基础知识,包括逻辑门、布尔代数、时序电路等。可以通过教材、在线课程或者视频教程进行学习。 2. HDL语言学习:掌握硬件描述语言(如VHDL或Verilog)是学习FPGA的重要一步。了解HDL的语法和基本概念,掌握模块化设计和状态机的原理。 3. FPGA架构和工具:了解FPGA的基本架构和内部结构,掌握常见的FPGA开发工具(如Xilinx Vivado或Altera Quartus)的使用方法。 4. RTL设计:学习使用HDL语言进行RTL(Register Transfer Level)设计,掌握常见的RTL设计技术,例如组合逻辑、时序逻辑和状态机设计等。 5. 静态时序分析:学习时序分析的基本原理和方法,了解时钟约束和时钟域的概念,掌握静态时序分析工具的使用。 6. IP核和系统集成:学习使用IP核进行快速设计和系统集成,掌握IP核配置和接口连接的方法。 7. 高级主题:进一步深入学习FPGA的高级主题,如嵌入式处理器系统设计、高速接口设计、数字信号处理(DSP)等。 8. 应用开发:根据个人兴趣和研究方向,选择合适的应用进行开发和实践,如图像处理、通信系统或者嵌入式系统等。 在学习的过程中,多动手实践是非常重要的。可以通过完成一些小项目或者参加FPGA竞赛来提升自己的实践能力。此外,阅读相关的学术论文和参考书籍也是进一步深入了解FPGA技术的好方法。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值