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

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

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

(1)必要的输入和输出

(2)必要的内部信号

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

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

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

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

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

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

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

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

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

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

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

仿真又分为

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

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

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

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

EDA的仿真工具ModelSim

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

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

FPGA的逻辑单元

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

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

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

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

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

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

FPGA的发展史及FPGA 的基础架构的更多相关文章

  1. 【FPGA篇章二】FPGA开发流程:详述每一环节的物理含义和实现目标

    欢迎大家关注我的微信公众账号,支持程序媛写出更多优秀的文章 FPGA的开发流程是遵循着ASIC的开发流程发展的,发展到目前为止,FPGA的开发流程总体按照下图进行,有些步骤可能由于其在当前项目中的条件 ...

  2. MVP社区巡讲-云端基础架构:12月5日北京站 12月12日上海站

    紧跟当今的技术发展趋势还远远不够,我们要引领变革!加入本地技术专家社区,获取真实案例.实况培训演示以及探讨新一代解决方案.在此活动中,您将: 了解如何运用开源(OSS)技术.Microsoft 技术及 ...

  3. IT基础架构规划方案一(网络系统规划)

    背景                   某集团经过多年的经营,公司业务和规模在不断发展,公司管理层和IT部门也认识到通过信息化手段可以更好地支撑公司业务运营.提高企业生产和管理效率.同时随着新建办公 ...

  4. IT基础架构规划方案二(计算机系统与机房规划规划)

    计算机系统规划       服务器硬件选型规划方案       根据对某集团的实际调研,获取了企业业务应用系统的建设情况,随着企业信息化建设的推进,需要对各种信息化管理系统和应用系统的服务器选型进行选 ...

  5. IT基础架构规划方案三(IT基础软件和系统规划)

    IT基础软件和系统规划 操作系统选型规划方案 根据对某集团的实际调研,获取了企业业务应用系统的建设情况,随着企业信息化建设的推进,需要对各种信息化管理系统和应用系统的服务器选型进行选型规划,根据不同的 ...

  6. IT基础架构规划方案之实际网络设计案例

    根据某集团总部新办公大楼.厂房和分支机构(店面)的情况,以及IT部门对网络节点数.网络应用和分支机构(店面)的初步规划,对企业的总体网络拓扑结构进行设计,如下图. 设备选型和部署参考: 类型 设备选型 ...

  7. [翻译]用 Puppet 搭建易管理的服务器基础架构(4)

    我通过伯乐在线翻译了一个Puppet简明教程,一共分为四部分,这是第四部分. 原文地址:http://blog.jobbole.com/89214/ 本文由 伯乐在线 - Wing 翻译,黄利民 校稿 ...

  8. [翻译]用 Puppet 搭建易管理的服务器基础架构(3)

    我通过伯乐在线翻译了一个Puppet简明教程,一共分为四部分,这是第三部分. 本文由 伯乐在线 - Wing 翻译,黄利民 校稿.未经许可,禁止转载!英文出处:Manuel Kiessling.欢迎加 ...

  9. [Search Engine] 搜索引擎分类和基础架构概述

    大家一定不会多搜索引擎感到陌生,搜索引擎是互联网发展的最直接的产物,它可以帮助我们从海量的互联网资料中找到我们查询的内容,也是我们日常学习.工作和娱乐不可或缺的查询工具.之前本人也是经常使用Googl ...

随机推荐

  1. 定位JVM内存溢出问题思路总结

    JVM的内存溢出问题,是个常见而有时候有非常难以定位的问题.定位内存溢出问题常见方法有很多,但是其实很多情况下可供你选择的有效手段非常有限.很多方法在一些实际场景下没有实用价值.这里总结下我的一些定位 ...

  2. yum梳理

  3. Spring MVC 之 ContentNegotiatingViewResolver

    我们已经知道 对于 RequestMappingInfoHandlerMapping, 它在对带有后缀的http 请求进行匹配的时候,如果找不到精确的pattern, 那么就会 pattern+.* ...

  4. 收藏 —— 教你阅读Python开源项目

    https://zhuanlan.zhihu.com/p/22275595?refer=python-cn

  5. html网页练习豆瓣网

    html </head> <body>     <!-- 头部 -->     <header class="header1">   ...

  6. Java 运行时常量池

    运行时常量池是方法区的一部分.class中除了有类的版本,字段,方法,接口等描述信息外,还有一项信息是常量池,用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后存放在方法区的运行时常量池 ...

  7. Spring获取bean工具类,可用于在线程里面获取bean

    Spring获取bean工具类,可用于在线程里面获取bean import java.util.Locale; import org.springframework.beans.BeansExcept ...

  8. poj3273(二分)

    题目链接:https://vjudge.net/problem/POJ-3273 题意:给定n个数,将这n个数划分成m块,问所有块最大值的最小是多少. 思路:注意到所求值最大为109,所以可以用二分来 ...

  9. js正则积累

    判断是否为数字 function isNumber(val){ var regPos = /^\d+(\.\d+)?$/; //非负浮点数 var regNeg = /^(-(([0-9]+\.[0- ...

  10. mysql命令行常用指令

    一. 启动mysql:service mysql start 停止mysql:service mysql stop 重启mysql:service mysql restart 查看mysql服务状态: ...