FPGA第 5 篇,FPGA技能优略势,FPGA学习方向,FPGA学习门路,FPGA专业知识 ...

打印 上一主题 下一主题

主题 507|帖子 507|积分 1521

媒介

前几篇讲了一下FPGA的发展和应用,以及将来远景。详细详细,请看

FPGA发展和应用,以及将来远景
https://blog.csdn.net/weixin_65793170/category_12665249.html
这里我们来,记录一下,FPGA专业知识的学习门路







一. FPGA技能上风

        首先,我们相识一下 FPGA 的技能上风,来为我们学习提供动力

   可重构 / 可编程                              速率快 / 低延时   

                                              
效率高                                            接口丰富


            
开发方便、灵活                              应用广泛


          固然 FPGA 上风与劣势并存,首先是开发难度,必要掌握专门的硬件设计知识和工具,如Verilog 语言和 VIVADO 等工具,其次就是专业性较强,学历门槛较高,同时还有频率功耗、算力成本等一系列问题存在。  





二. FPGA学习门路

        学习 FPGA 开发专业知识的学习门路,大抵可分为以下,请看(详细学习门路不固定,自己斟酌)

   

  • 数字电路底子
  • 硬件描述语言
  • 设计调试工具
  • FPGA架构
  • FPGA开发流程
  • 时序分析与束缚
  • 仿真技能
  • IP核利用
  • 嵌入式体系设计
  • 高级设计技巧
  



三. FPGA学习内容

        FPGA 专业知识的学习内容,包括但不限与以下,请看

1. 数字电路底子

   

  • 布尔代数
  • 逻辑门
  • 组合逻辑电路
  • 时序逻辑电路
  
  学习逻辑门、组合逻辑电路、时序逻辑电路等底子知识,是理解FPGA设计的核心。

  2. 硬件描述语言

   

  • Verilog
  • VHDL
  
  学习Verilog和VHDL等语言,用于描述和设计FPGA中的逻辑电路。 

  3. 设计调试工具

   

  • Xilinx(赛灵思):Xilinx Vivado
  • Altera(阿尔特拉):Intel Quartus Prime
  
  学习怎样利用Xilinx Vivado、Intel Quartus Prime开发工具(以国外着名大厂开发工具为例),进行编码和调试,以验证设计的正确性。

  4. FPGA架构

   

  • 可编程逻辑单元
  • 互连资源
  • I/O块
  • 存储资源
  
  理解FPGA内部结构,包括逻辑单元、布线资源、存储单元等。

  5. FPGA开发流程

   

  • 设计输入
  • 综合
  • 实现
  • 配置
  
  学习设计输入、综合、实现、时序分析、编程与配置等完整的开发流程。

  6. 时序分析与束缚

   

  • 静态时序分析
  • 时序束缚
  
  学习怎样进行时序分析,确保设计在规定时间内正确工作,以及怎样施加束缚。

  7. 仿真技能

   

  • 功能仿真
  • 时序仿真
  
  学习利用仿真工具(如ModelSim)对设计进行功能仿真和时序仿真。

  8. IP核利用

   

  • 常用IP核
  • IP核集成
  
  学习怎样利用和集成现成的IP核(如FIFO、PLL),提高设计效率。

  9. 嵌入式体系设计

   

  • 软核处理器
  • 硬件加速
  
  学习怎样将处理器嵌入FPGA中,进行软硬件协同设计,

  并利用ARM Cortex内核。

  10. 高级设计技巧

   

  • 流水线设计
  • 并行处理
  
  学习优化设计、低落功耗、提高速率、复用设计等技巧。

  


四. FPGA学习内容,简朴认识

        数字电路底子、硬件描述语言和设计调试工具,以及 FPGA 架构等,请看

1. 数字电路底子

           数字电路底子是学习FPGA开发的根本,也是FPGA设计的核心。它包括布尔代数、逻辑门(如与门、或门、非门等)、组合逻辑电路(如加法器、编码器)、和时序逻辑电路(如触发器、寄存器)。这些知识是理解和设计复杂数字体系的根本,它涵盖了理解和设计数字体系所需的根本概念和技巧。 

  
  

  • 布尔代数

    • 定义与根本运算: 布尔代数是一种用于处理逻辑变量的数学体系。它包括根本运算,如与(AND)、或(OR)、非(NOT)等,以及更复杂的运算如异或(XOR)。
    • 逻辑表达式: 通过布尔代数表达逻辑电路的功能。学习怎样将复杂的逻辑问题表示为布尔表达式,并通过简化表达式优化逻辑电路。

  
  

  • 逻辑门

    • 根本逻辑门: 根本的逻辑门有与门、或门、非门、异或门等。每个门实现布尔代数的根本运算。
    • 派生逻辑门: 通过组合根本逻辑门,可以得到更复杂的逻辑门,如异或门(XOR)、同或门(XNOR)、与非门(NAND)等。
    • 逻辑门符号与真值表: 学习逻辑门的符号和真值表,用于描述逻辑门的输入输出关系。

  
  

  • 组合逻辑电路

    • 概念: 组合逻辑电路的输出仅由当前输入决定,不依赖于过去的状态。
    • 常见组合电路: 相识加法器、减法器、编码器、解码器、多路复用器(MUX)、比较器等常见的组合逻辑电路及实在现方法。
    • 卡诺图简化: 学习利用卡诺图来简化逻辑表达式,从而优化组合电路设计。

  
  

  • 时序逻辑电路

    • 概念: 时序逻辑电路的输出不仅取决于当前输入,还取决于过去的状态(即记忆功能)。
    • 触发器: 触发器是时序逻辑电路的根本单元,常见的范例包括D触发器、JK触发器、T触发器等。
    • 寄存器与计数器: 学习怎样设计寄存器(用于数据存储)和计数器(用于计数和计时),它们都是由触发器构成的复杂时序电路。
    • 状态机设计: 通过设计有限状态机(FSM),实现复杂的时序逻辑功能。状态机在FPGA设计中非常常见,通常用于控制信号流和操作流程。

  




2. 硬件描述语言

           首先,硬件描述语言 HDL 是用于描述和实现数字电路设计的语言,是硬件描述语言的总称,其中 Verilog 和 VHDL 是用来描述FPGA内部逻辑电路的语言工具。它们用于编写可以直接合成为硬件的代码,是设计、仿真和实现FPGA电路的关键。

  
  

  • HDL

    • 简介:HDL 是硬件描述语言的总称,包括 Verilog、VHDL 等。这些语言用于描述数字体系的硬件行为,可以用于 FPGA、ASIC(专用集成电路)等的设计。
    • 特点

      • 描述能力:支持从高层次的行为描述到低层次的门级描述。
      • 仿真能力:支持设计的仿真验证。
      • 综合能力:可以将描述转换为实际的硬件电路。


  
  

  • VHDL

    • 语言概述: VHDL是一种早期的硬件描述语言,全称为VHSIC(超高速集成电路)硬件描述语言。它具有强范例定义,适合于复杂设计。
    • 根本语法: 学习VHDL的根本语法,包括数据范例(如BIT, STD_LOGIC)、信号、变量、常量的定义与利用。
    • 结构化设计: 通过学习VHDL中的实体(Entity)和架构(Architecture)概念,进行模块化设计,分离接口和实现。
    • 行为描述与结构描述: 学习怎样利用行为描述(Behavioral)和结构描述(Structural)两种方式实现电路功能。行为描述留意功能的实现,结构描述留意电路的详细实现。

  
  

  • Verilog

    • 语言概述: Verilog是一种更靠近编程语言的HDL,利用简便的语法,广泛用于工业界。
    • 根本语法: 学习Verilog的根本语法,包括数据范例(如reg, wire)、模块定义、初始块(initial)、始终块(always)等。
    • 连续赋值与过程赋值: 相识Verilog中assign语句的连续赋值特性和always块中过程赋值的区别,用于组合逻辑和时序逻辑电路的实现。
    • 模块化设计: 学习怎样在Verilog中定义模块,并通过实例化实现层次化设计,使设计更易于管理和调试。

  

  




3. 设计调试工具

           主流FPGA开发工具如Xilinx Vivado和Intel Quartus Prime是进行FPGA设计、调试和验证的重要软件平台。掌握这些工具的利用,可以高效地进行电路综合、结构布线、时序分析等任务。

  First. Xilinx(赛灵思):Xilinx Vivado(全功能集成开发环境IDE)

   

  • 逻辑分析仪:Xilinx ChipScope

    • 功能:用于在线调试 FPGA 内部信号,包括集成逻辑分析仪 (ILA) 和集成控制核 (ICON)。
    • 利用方法

      • 设计阶段:在 FPGA 设计中添加必要的 ChipScope 核心。
      • 配置:配置触发条件、采样率等参数。
      • 捕获:当满意触发条件时,ILA core 捕获信号数据并存储在 Block RAM 中。
      • 读取数据:通过 JTAG 接口将数据传输到 PC 上。
      • 分析:利用 ChipScope Analyzer 查看和分析信号波形。


  • 高级调试工具:Xilinx Vivado Debugger

    • 功能:支持在 RTL 层级进行调试。
    • 利用方法:设置断点、单步执行、观察变量值等。

  Second. Altera(阿尔特拉):Intel Quartus Prime(全功能集成开发环境IDE)

   

  • 逻辑分析仪:Intel SignalTap II Logic Analyzer

    • 功能:与 Xilinx ChipScope 类似,用于在线调试 FPGA 内部信号。
    • 利用方法

      • 设计阶段:在 FPGA 设计中添加必要的 SignalTap II 核心。
      • 配置:配置触发条件、采样率等参数。
      • 捕获:当满意触发条件时,捕获信号数据并存储在 FPGA 的 Block RAM 中。
      • 读取数据:通过 JTAG 接口将数据传输到 PC 上。
      • 分析:利用 SignalTap II Analyzer 查看和分析信号波形。


  • 高级调试工具:Intel In-Circuit Debugger (ICD)

    • 功能:提供交互式的调试环境,在设计运行时访问和修改寄存器状态。
    • 利用方法:利用 ICD 可以及时观察和修改寄存器值。

  Third. Mentor Graphics(明导国际):ModelSim(仿真工具)

   

          ModelSim 是一种专注于硬件描述语言 (HDL) 的仿真工具,广泛用于 Verilog 和 VHDL 设计的功能仿真和时序仿真。它帮助设计工程师在合成前验证和调试设计逻辑,是设计流程中的关键环节。虽然 ModelSim 是由 Mentor Graphics 开发的,但它也集成在其他工具如 Quartus 和 Vivado 中。
  

  • 功能:功能仿真、时序仿真、调试 HDL 代码、波形分析、代码覆盖率分析。
  • 用途:主要用于验证和调试设计的功能性,确保设计在合成之前是正确的。
  
          这里的 ModelSim 是仿真工具,专注于验证和调试 HDL 代码,而Vivado 和 Quartus Prime 是完整的集成开发环境 (IDE),涵盖从设计输入到物理实现的整个流程。Vivado 专用于 Xilinx 的 FPGA,而 Quartus Prime 专用于 Intel 的 FPGA。

          而Mentor Graphics 是一家提供电子设计自动化 (EDA) 软件和硬件的公司。该公司成立于 1981 年,总部位于美国俄勒冈州威尔逊维尔。Mentor Graphics 在 2016 年被西门子公司收购,成为其旗下的一个业务部门。Mentor Graphics 提供广泛的工具和服务,用于帮助工程师设计和验证电子体系,包括集成电路 (IC)、印刷电路板 (PCB) 和电子体系级 (ESL) 设计。

  Fourth. EDA 和 IDE

   1. 电子设计自动化 (EDA) 详解(EDA是什么)

          电子设计自动化 (EDA) 行业是半导体和电子体系设计的核心支持产业,提供软件和硬件工具,帮助设计工程师高效地设计、验证和制造复杂的电子体系和集成电路 (IC)。EDA 工具在芯片设计流程中不可或缺,涵盖从电路设计、仿真、验证、到物理实现的整个流程。随着半导体技能的进步,EDA 工具也在不停演进,支持更高的集成度和更复杂的设计需求。
  
  2. 全功能集成开发环境 (IDE)详解(IDE是什么)

          全功能集成开发环境(IDE)中的“IDE”是“Integrated Development Environment”的缩写,中文通常翻译为“集成开发环境”。IDE是一种用于软件开发的应用步伐,提供了一套集成的工具和功能,以简化编程过程和提高开发效率。
  
  Fifth. Xilinx(赛灵思)和Altera(阿尔特拉)详细,请看

Xilinx(赛灵思)和Altera(阿尔特拉)
https://blog.csdn.net/weixin_65793170/article/details/141018445




4. FPGA架构

           FPGA架构是FPGA设计中物理实现的底子,FPGA的架构包括可编程逻辑单元(PLUs)、互连资源、I/O块、存储资源等。这些组件共同构成了FPGA的硬件底子,理解它们有助于设计者优化电路并提高性能。

  
  

  • 可编程逻辑单元(CLB)

    • 构成与功能: 可编程逻辑单元(CLB)是FPGA的根本构建模块,通常包含查找表(LUT)、触发器和多路复用器(MUX)。
    • LUT的工作原理: LUT用于实现逻辑函数,学习怎样通过配置LUT实现任意的组合逻辑。
    • 可配置选项: 相识CLB中的触发器配置选项,如同步/异步复位、时钟使能等。

  
  

  • 互连资源

    • 互连网络: FPGA内的互连资源用于连接差别的CLB、I/O块等单元。互连网络的设计决定了信号的传输延迟和整体性能。
    • 可编程互连: 相识FPGA中怎样通过配置开关矩阵实现逻辑单元间的连接,并优化路径以低落延迟。
    • 布线策略: 学习怎样在FPGA设计中有效利用互连资源,避免过多的长路径和拥塞。

  
  

  • I/O块

    • 功能与配置: I/O块用于FPGA内部电路与外部装备的接口,支持多种电压尺度和信号范例。
    • I/O尺度: 相识常用的I/O尺度(如LVDS, LVCMOS)及其应用场景。
    • 引脚分配与束缚: 学习怎样公道分配I/O引脚,并施加引脚束缚(Pin Constraints),确保设计可以或许正确连接外部电路。

  
  

  • 存储资源

    • 嵌入式存储器: FPGA中通常包含嵌入式存储器,如块RAM(BRAM),用于存储数据或实现缓存。
    • 存储器配置: 学习怎样在设计中利用FPGA的存储资源,如配置RAM/ROM、FIFO等。
    • 分布式存储器: 除了BRAM,FPGA还可以通过LUT实现小容量的分布式存储器,相识其应用场景和优缺点。

  




5. FPGA开发流程

           FPGA的开发流程涵盖从设计输入(利用HDL描述电路)到综合(将代码转化为门级电路)、实现(结构布线)、配置(加载到FPGA中)的完整过程。这些步调确保了设计的逻辑性和硬件可行性。

  
  

  • 设计输入

    • 利用 Verilog 或 VHDL 描述设计。
    • 可以利用文本编辑器或图形化工具进行设计输入。

  
  

  • 综合

    • 将高级描述转换为门级网表。
    • 优化设计以淘汰面积、提高性能或低落功耗。

  
  

  • 实现

    • 映射到详细的 FPGA 架构。
    • 结构布线:确定逻辑单元的位置并连接它们。

  
  

  • 配置

    • 将最终设计下载到 FPGA 中。
    • 配置 FPGA 使其执行设计的功能。

  




6. 时序分析与束缚

           时序分析是确保FPGA设计在规定时钟周期内正确工作的关键。通过施加时序束缚(如时钟束缚),设计者可以控制电路的时序性能,避免信号竞争和时序违例。

  
  

  • 静态时序分析 (STA)

    • 查抄设计是否满意建立时间、保持时间等要求。
    • 识别时序违规并进行修正。

  
  

  • 时序束缚

    • 定义最大时钟频率、路径延迟等时序要求。
    • 通过束缚引导综合和实现工具优化设计。

  




7. 仿真技能

           仿真技能用于验证设计的功能性和时序性。功能仿真确保设计逻辑的正确性,而时序仿真结合时序信息,验证电路在真实硬件时序下的行为,是发现息争决潜在问题的重要手段。

  

  

  • 功能仿真

    • 验证设计的逻辑功能。
    • 不考虑延迟和时序关系。

  
  

  • 时序仿真

    • 验证设计在实际时序条件下的行为。
    • 考虑延迟和时序关系。

  




8. IP核利用

           IP核是预设计好的、可复用的电路模块,如FIFO、PLL等。利用这些IP核可以大大加快开发进度,提高设计的可靠性和效率,并淘汰重复工作。

  
  

  • 常用IP核

    • FIFO:用于数据缓冲。
    • PLL:用于时钟管理。
    • UART、SPI、I2C:用于通讯协议。
    • DDR 控制器:用于高速数据传输。

  
  

  • IP核集成

    • 利用工具提供的 IP 核集乐成能。
    • 遵循 IP 核提供的接口规范。

  




9. 嵌入式体系设计

           FPGA不仅用于实现逻辑电路,还可以嵌入软核处理器(如MicroBlaze、Nios II),支持软硬件协同设计。通过硬件加速,FPGA可以显著提拔嵌入式体系的处理性能,实用于高性能需求的应用。

  

  

  • 软核处理器

    • 如 Xilinx MicroBlaze、Zynq PS 中的 ARM Cortex-A9/A7。
    • 用于实现控制逻辑和算法处理。

  
  

  • 硬件加速

    • 利用 FPGA 的并行性和低延迟特性来加速特定任务。
    • 与软核处理器协同工作。

  




10. 高级设计技巧

           高级设计技巧如流水线设计和并行处理是优化FPGA性能的关键。流水线设计通过分解任务并行处理,提高体系的吞吐量,而并行处理则充分利用FPGA的并行盘算能力,显著提拔体系效率。

  
  

  • 流水线设计

    • 将复杂操作分解成多个阶段,每个阶段并行执行。
    • 提高吞吐量,低落延迟。

  
  

  • 并行处理

    • 利用 FPGA 的并行性提高性能。
    • 多个操作同时执行。

  




创作不易,感觉有效,就一键三连,感谢(●'◡'●)


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

雁过留声

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表