5个步骤带你入门FPGA设计流程
导读:最近几年 , FPGA越来越火 。 微软甚至曾表示要数据中心里 , 使用FPGA“代替”CPU 。 FPGA英文全称是FieldProgrammableGateArray , 即现场可编程门阵列 。 本文就为你科普一下FPGA的一般设计流程 。
作者:汪文祥邢金璋
来源:华章科技
文章图片
FPGA是一种特殊的集成电路 , 这意味着它首先是一种集成电路 。 现在的集成电路绝大多数都是晶体管集成电路 , 大家日常接触最多的是CMOS晶体管集成电路 。
晶体管集成电路是什么?通俗来说 , 就是用金属导线把许许多多由晶体管构成的逻辑门、存储单元连接成一个电路 , 具备一定的逻辑功能 。
不过 , 各位读者设计数字逻辑电路时 , 是否进行过用导线连接晶体管的实验?显然没有 。 大家一般是用一种硬件描述语言(比如VerilogHDL)写写代码 , 然后运行综合软件(比如Vivado) , 电路就设计出来了 。
这一流程并不是各类课程实验中所独有的 , 它其实与现在工业界常见的ASIC设计流程是一致的 。 FPGA的设计流程一般有5个步骤:
电路设计 。 代码编写 。 功能仿真 。 综合实现 。 上板调试 。
文章图片
01电路设计
首先 , 需要根据需求规格制定电路设计方案 。 例如 , 需求是设计一个MIPSCPU , 我们要把这个需求一步步分解、细化 , 得到一个能够满足需求的电路设计方案 。
我们要决定分成几个流水级 , 这里放几个触发器 , 那里放几个运算器 , 它们之间怎么连接 , 整个电路的状态转换行为是怎样的 , 等等 。
通常 , 我们将电路设计细化到寄存器传输级(RegisterTransferLevel , RTL)就可以了 , 无须精确到逻辑门级别或是晶体管级别 。
02代码编写
代码编写阶段的工作是把第1步中完成的电路设计方案用硬件描述语言(HardwareDescriptionLanguage , HDL)表述出来 , 成为一种EDA工具能够看得懂的形式 。
03功能仿真
【5个步骤带你入门FPGA设计流程】功能仿真阶段的工作是对第2步中用HDL语言描述出来的设计进行功能仿真验证 。 所谓功能仿真验证 , 就是通过软件仿真模拟的方式查看电路的逻辑功能行为是否符合最初的设计需求 。
通常我们给电路输入指定的激励 , 观察电路输出是否符合预期 , 如果不符合则表明电路逻辑功能有错误 。 这种错误要么是因为第1步的电路设计就有错误 , 要么是第2步编写的代码不符合电路设计 。
发现功能错误后需要返回前面相应的步骤进行修正 , 然后再按照流程一步步推进 。 如此不断迭代 , 直到不再发现错误 , 就可以进入下一阶段了 。
需要指出的是 , 由于我们对电路是在RTL级建模 , 因此功能仿真阶段不考虑电路的延迟 。
文章图片
04综合实现
综合实现阶段完成从HDL代码到真实芯片电路的转换过程 。 这个过程类似于编译器把高级语言转换成目标机器的二进制代码的过程 。
这个阶段分为综合和实现两个子阶段 。
综合阶段将HDL描述的设计编译为由基本逻辑单元连接而成的逻辑网表 , 不过此时的网表还不是最终的门级电路网表 。 实现阶段才会将综合出的逻辑网表映射为FPGA中的具体电路 , 即将逻辑网表中的基本逻辑单元映射到FPGA芯片内部固有的硬件逻辑模块上(称为“布局”) 。 随后 , 基于布局的拓扑 , 利用FPGA芯片内部的连线资源 , 将各个映射后的逻辑模块连接起来(称为“布线”) 。如果整个综合实现过程没有发生异常 , EDA工具将生成一个比特流(Bitstream)文件 。 通俗来说 , 这个比特流文件描述的就是最终的电路 , 但这个文件只有FPGA芯片能读得懂 。
05上板调试
俗话说:“是骡子是马拉出来遛遛” 。 不管功能仿真得多正确 , 最终还是要看实际电路能否正常工作 。
在上板调试阶段 , 首先要将综合实现阶段生成的比特流文件下载到FPGA芯片中 , 随后运行电路观察其工作是否正常 , 如果发生问题就要调试、定位出错的原因 。
文章图片
小结一下 , 上面介绍的FPGA一般设计流程给出了总的脉络 , 以便读者先建立一个正确的整体概念 。 FPGA设计流程中还包含很多细节 , 可参考《CPU设计实战》一书 。
关于作者:汪文祥 , 工学博士 , 龙芯中科技术股份有限公司首席工程师 , 中国科学院大学岗位教授 。 主要研究方向为处理器体系结构设计、处理器验证及计算机系统性能分析优化等 , 参与了多项国家“核高基”、863和973项目 , 在国内外各种期刊会议发表文章十余篇 , 申请专利数十项 , 授权专利十余项 。
- 两起外星人UFO恶作剧1:男子遭遇5个外星人,抓住1个将其藏在冰箱
- 15个让人“难以看下去”的世界纪录,你能坚持到第几个?
- 15个显示令人印象深刻变化的比较
- 装修房子时|装修房子时,做了这5个决定,入住之后才发现真的好明智
- 导语:5个“冲着颜值”买的家居物品|5个“冲着颜值”买的家居物品,没想到,体验后:价低又实用!
- 被专家认为是真实事件:UFO分解成5个亮光体,还能发出光束(下)
- 被专家认为是真实事件:UFO分解成5个亮光体,还能发出光束(上)
- 鲨鱼都是凶猛的吗?被动滤食的姥鲨,带你走进鲨鱼的温柔面
- 地铁推手,套套测试员…25个你闻所未闻的职业
- 导语:新房装修的5个“先进设计”|新房装修的5个“先进设计”,个个高级实用,照着装准没错!