• FPGA的发展史及FPGA 的基础架构


    通过了解早期FPGA的发展,理解FPGA究竟是干什么的,FPGA到底在电子设计领域起到了什么样的作用,下面是一张早期的设计过程

     

    早期的设计流程过程中,只有当硬件完成了才能够得到功能的验证,随着集成电路开发的规模来越大,渐渐的需要一种快速有效的开发平台来完成预期的功能设计的验证,减少研发周期及研发成本,由此引入了EDA技术,首先是使用一种语言系统来描述一个硬件模型(即VHDL),其语言着重在描述性上,即重点在建立电路模型的过程上

    此处就应该知道电路模型应该具备全部的电路特征:

    (1)必要的输入和输出

    (2)必要的内部信号

    (3)特定的逻辑和时序行为等

    这里就是FPGA开发语言与C语言之间本质性的差距(C语言是过程描述语言)。

    在完成需要与想法后,即完成EDA设计后的一些应用方面如下图

     

    HDL描述的抽象硬件模型,verilog里面称为Module

    FPGAverilog设计中,用到是查找表的方式来完成的对任意的组合逻辑的实现。在FPGA内部包含许多单元LUT(查找表),IOE(输入输出单元),Memory(内存)和DSP(乘法器等硬件电路主城)等构成。

    EDA工具如何将我们的语言转化为FPGA可应用的硬件电路。

     

    编译:将HDL 模型转变为基本的门级网表。

    映射:为这些基本的门模型分配具体的cell

    映射后的网表即可以直接烧录到FPGA的器件里面。

    硬件模型代码编写好后,需要对抽象的电路模型进行测试,称之为验证,为了进行验证,需要单独编写一段HDL代码,建立一个用于测试的模型,此模型称为Testbench

    由于Testbench是一个真实的仿真平台,所以其本身也是不能运行的,EDA软件会提供一种运行Testbench的方法,这种抽象的方法称之为仿真。

     

    仿真又分为

    综合前验证(加载的为RTL模型),主要验证测试模型的逻辑性能。

    综合后验证(加载的为网表),主要验证的是设计模型的时序性能。

    Quartus II主要用来做设计编译及时序分析,仿真则需要用到ModelSim来进行验证。

    (感觉和单片机的KEILprotues的关系很像。

    EDA的仿真工具ModelSim

    技术报告大多数是modelsim做的验证,有论文需求和技术文档需求的小伙伴门可以看下,有开发板的貌似可以直接烧录了,不过还是仿真后可以看的更清晰)

    由于仿真过程中需要的调用很多跨平台的文件,Altera提出了一键跨平台的自动化方式,称为NativeLink(使用时要注意层次化设计),这在后面的文章中会详细的讲解到

     

    FPGA的逻辑单元

     

    可编程寄存器是带沿触发的,由此可以构成时序逻辑。

    提供路由器可以跟不同的逻辑单元进行来连接。

    异步清零逻辑是为了在异步时序逻辑中提供异步清零的逻辑。

    因为逻辑单元里面可能会有多个时钟对逻辑单元进行处理,所以需要有个时钟的管理。

    查找表原理:任意组合逻辑的乘积项SOP对应n输入多路器实现。

    这篇文章旨在讲述FPGA的作用及FPGA的一个基本的开发流程,如何将理论和实际结合起来,最后希望通过这篇文章让大家了解为什么verilog HDL语言和C语言(面向过程)以及JAVA(面向对象)、python(面向逻辑)等语言有本质的不同,因为它是一个并不是一个面向开发过程的语言,它只是一个描述性语言,开发逻辑及开发过程需要通过数电及微机接口的知识来完成,它的作用仅仅是将期望的逻辑用人和FPGA都能够理解的方式表达出来,然后传递到FPGA中让他按照人的意愿来实现相应功能的一门语言。

  • 相关阅读:
    #ASP.NET Core 1.0 Key Features
    #asp.net core mvc 的视图注入
    # asp.net core 1.0 项目结构
    dotnet core 初试两个小问题解决
    1044 火星数字(20 分)
    1043 输出PATest(20 分)
    1042 字符统计(20 分)
    1041 考试座位号(15 分)
    1040 有几个PAT(25 分)
    1039 到底买不买(20 分)
  • 原文地址:https://www.cnblogs.com/noticeable/p/7171200.html
Copyright © 2020-2023  润新知