FPGA的发展史及FPGA 的基础架构
通过了解早期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 的基础架构的更多相关文章
- 【FPGA篇章二】FPGA开发流程:详述每一环节的物理含义和实现目标
欢迎大家关注我的微信公众账号,支持程序媛写出更多优秀的文章 FPGA的开发流程是遵循着ASIC的开发流程发展的,发展到目前为止,FPGA的开发流程总体按照下图进行,有些步骤可能由于其在当前项目中的条件 ...
- MVP社区巡讲-云端基础架构:12月5日北京站 12月12日上海站
紧跟当今的技术发展趋势还远远不够,我们要引领变革!加入本地技术专家社区,获取真实案例.实况培训演示以及探讨新一代解决方案.在此活动中,您将: 了解如何运用开源(OSS)技术.Microsoft 技术及 ...
- IT基础架构规划方案一(网络系统规划)
背景 某集团经过多年的经营,公司业务和规模在不断发展,公司管理层和IT部门也认识到通过信息化手段可以更好地支撑公司业务运营.提高企业生产和管理效率.同时随着新建办公 ...
- IT基础架构规划方案二(计算机系统与机房规划规划)
计算机系统规划 服务器硬件选型规划方案 根据对某集团的实际调研,获取了企业业务应用系统的建设情况,随着企业信息化建设的推进,需要对各种信息化管理系统和应用系统的服务器选型进行选 ...
- IT基础架构规划方案三(IT基础软件和系统规划)
IT基础软件和系统规划 操作系统选型规划方案 根据对某集团的实际调研,获取了企业业务应用系统的建设情况,随着企业信息化建设的推进,需要对各种信息化管理系统和应用系统的服务器选型进行选型规划,根据不同的 ...
- IT基础架构规划方案之实际网络设计案例
根据某集团总部新办公大楼.厂房和分支机构(店面)的情况,以及IT部门对网络节点数.网络应用和分支机构(店面)的初步规划,对企业的总体网络拓扑结构进行设计,如下图. 设备选型和部署参考: 类型 设备选型 ...
- [翻译]用 Puppet 搭建易管理的服务器基础架构(4)
我通过伯乐在线翻译了一个Puppet简明教程,一共分为四部分,这是第四部分. 原文地址:http://blog.jobbole.com/89214/ 本文由 伯乐在线 - Wing 翻译,黄利民 校稿 ...
- [翻译]用 Puppet 搭建易管理的服务器基础架构(3)
我通过伯乐在线翻译了一个Puppet简明教程,一共分为四部分,这是第三部分. 本文由 伯乐在线 - Wing 翻译,黄利民 校稿.未经许可,禁止转载!英文出处:Manuel Kiessling.欢迎加 ...
- [Search Engine] 搜索引擎分类和基础架构概述
大家一定不会多搜索引擎感到陌生,搜索引擎是互联网发展的最直接的产物,它可以帮助我们从海量的互联网资料中找到我们查询的内容,也是我们日常学习.工作和娱乐不可或缺的查询工具.之前本人也是经常使用Googl ...
随机推荐
- Python中xlrd和xlwt模块使用方法
本文主要介绍可操作excel文件的xlrd.xlwt模块.其中xlrd模块实现对excel文件内容读取,xlwt模块实现对excel文件的写入. 安装xlrd和xlwt模块 xlrd和xlwt模块不是 ...
- Python与设计模式之创建型模式及实战
用Python学习一下设计模式,如果很枯燥的话,就强行能使用的就用一下.设计模式参考Python与设计模式-途索 1. 单例模式 保证一个类仅有一个实例,并提供一个访问它的全局访问点. import ...
- Linux 查看内存使用情况
1 . top : 用于实时显示 process 的动态 PID:进程的ID USER:进程所有 PR:进程的优先级别,越小越优先被执 VIRT:进程占用的虚拟内 RES:进程占用的物理内 SHR: ...
- leetcode15
class Solution { public List<List<Integer>> threeSum(int[] nums) { Arrays.sort(nums); Li ...
- Mysql 日期加减
mysql表中有一些字段是显示日期的.因为各种需要,需要将它时间往后调整1年. mysql 日期增加一年的更新语句更新的语句如下: UPDATE table SET date = DATE_A ...
- ReactiveX 学习笔记(24)使用 RxCpp + C++ REST SDK 调用 REST API
JSON : Placeholder JSON : Placeholder (https://jsonplaceholder.typicode.com/) 是一个用于测试的 REST API 网站. ...
- 私活利器,docker快速部署node.js应用
http://cnodejs.org/topic/53f494d9bbdaa79d519c9a4a 最近研究了几天docker的快速部署,感觉很有新意,非常轻量级和方便,打算在公司推广一下,解放运维, ...
- Datatable的操作方法
DataTable操作相关内容: 对DataTable 的一些操作在dataTable中最容易想到的是用for循环来操作,但事实不到万不得已是不会用for循环的,因为效率一般不高. 1. 取行-取行一 ...
- linux百万并发之 tcp_mem
百万并发之 tcp_mem 在服务端,连接达到一定数量,诸如50W时,有些隐藏很深的问题,就不断的抛出来. 通过查看dmesg命令查看,发现大量TCP: too many of orphaned ...
- CentOS 性能监测命令
1.实时监测命令(watch) -d 高亮显示变化 -n 间隔多久(s) 执行后面的command #每隔1秒显示空间使用情况并列出当前目录下的列表信息 EX:watch -d -n 1 'df -h ...