当前位置: 首页 > article >正文

【FPGA】入门学习路线

文章目录

  • 编程语言
    • 语法
    • RTL设计
    • RTL验证
    • 学习方法
    • 仿真工具
  • 基础知识
    • (1)专业基础课
    • (2)FPGA相关专业知识
    • (3)FPGA开发流程
  • 开发工具
  • 动手实验

编程语言

硬件描述语言HDL(Hardware Description Language)/寄存器传输级语言RTL(Register Transfer Language)。这是一种描述数字电路功能和行为的语言,可以在寄存器的传输级、行为级、逻辑门级等描述电路。

主流的硬件描述语言又VHDL(语法更加严谨)、Verilog(语法更加灵活)、System Verilog,先掌握一个语言即可,推荐verilog

语法

  • 教材:《Verilog数字系统设计》、《Verilog HDL高级数字设计》
  • Verilog语法可以分为可综合(Synthesizable,这部分语句可以生成对应的硬件电路)和不可综合的部分(Non-Synthesizable,主要用于验证和仿真)
  • 刷题网站:HDLBits

RTL设计

RTL设计主要有组合电路时序电路两个部分,还有一个状态机,这些在刷题网站HDLBits里都有对应的题目。

RTL验证

如何写一个测试平台,写一些简单的测试用例

学习方法

  • 不要用软件编程的思想去思考硬件,软件编程大多是顺序执行的,硬件编程大多是并行执行的。
  • 在学习Verilog的时候一定要多思考它对应的硬件电路是什么样的。比如在Verilog中写一个for循环,它会综合出一个什么样的硬件电路。或者写一个if else语句,会综合出一个什么样的电路。写一个case语句,会综合出一个什么样的电路等等。
  • 对于一个给定的逻辑功能,要想象出它的电路结构,然后使用Verilog语言来实现,同时可以写一些简单的测试用例和测试环境。

仿真工具

在这里插入图片描述

基础知识

(1)专业基础课

电路、数电、计算机体系结构、接口、数字信号处理(数电必须)

(2)FPGA相关专业知识

FPGA芯片的结构以及一些基本组成单元的结构(如查找表、逻辑单元、逻辑块、DSP、存储器等等),这部分可以看FPGA的官方文档

(3)FPGA开发流程

在这里插入图片描述

开发工具

主流的开发工具主要是AMD的VIVADO和英特尔FPGA的Quartus。

  • 熟悉开发流程
  • 熟悉IP的配置使用(一些常见的IP:OLL、FIFO、存储器,一些复杂的IP:软核处理器NIOS、通信用的PCle、DDR控制器)
  • 学习硬件调试和时序分析的方法,比如如何看一个设计的最大频率、时序不收敛的时候如何修改你的设计、如何使用一些硬件调试的工具比如Quartus里的SignalTap。

关于FPGA开发工具的学习可以参考教材、并配合开发板进行学习

动手实验

数码管、流水灯、按键、红绿灯、常见的总线通信、数据处理和信号处理
《深入浅出玩转FPGA》、《勇敢的芯 伴你玩转Altera FPGA》
开发板:Xilinx A7

参考链接:入行十年,我总结了这份FPGA学习路线:搞定这四点,你也能轻松进阶


http://www.kler.cn/news/284742.html

相关文章:

  • 【QNX+Android虚拟化方案】114 - QNX /dev/switch 节点创建 及 读写功能实现实例
  • 3d网格补洞算法
  • 实测数据处理(RD算法处理)——SAR成像算法系列(十)
  • Python编码系列—Python中的安全密码存储与验证:实战指南
  • 每日一题,零基础入门FPGA——逻辑门
  • NFC射频--天线设计
  • 集成电路学习:什么是BIOS基本输入/输出系统
  • pytorch 均方误差损失函数
  • C_08_动态内存申请
  • 未来城市生活:科技与人文的交响
  • Docker 实战加速器(紧急情况!镜像库全面失效,一招解决Docker无法下载)
  • 云轴科技ZStack产品升级,浙江分公司产品发布会成功举办
  • tailwindcss
  • 《黑神话:悟空》:30%抽成真相
  • 如何使用 AWS CLI 为私有 AWS S3 存储桶中的对象创建预签名 URL
  • 2016年系统架构师案例分析试题五
  • 前端面试——八股文
  • 又一个免费代码生成工具
  • C++ TinyWebServer项目总结(11. 定时器)
  • 【C++】OJ习题 篇2
  • Spring 是什么
  • AD19基础应用技巧:捕捉对象功能的讲解鼠标”绿色十字”大光标、小光标切换
  • Java基础(6)- Java代码笔记3
  • 宠物空气净化器有用吗?为什么养宠家庭要买宠物空气净化器?
  • Java Email发送:如何配置SMTP服务器发信?
  • 精选算法编程题
  • redis的共享session应用
  • 数据备份-linux之间同步目录和文件
  • Vue3中的ref与reactive区别
  • JavaWeb - Spring Boot