5个步骤带你⼊门FPGA设计流程
python入门教程非常详细ppt导读:最近⼏年,FPGA越来越⽕。微软甚⾄曾表⽰要数据中⼼⾥,使⽤FPGA“代替”CPU。FPGA英⽂全称是Field Programmable Gate Array,即现场可编程门阵列。本⽂就为你科普⼀下FPGA的⼀般设计流程。
作者:汪⽂祥 邢⾦璋
来源:⼤数据DT(ID:hzdashuju)
FPGA是⼀种特殊的集成电路,这意味着它⾸先是⼀种集成电路。现在的集成电路绝⼤多数都是晶体管集成电路,⼤家⽇常接触最多的是CMOS晶体管集成电路。
晶体管集成电路是什么?通俗来说,就是⽤⾦属导线把许许多多由晶体管构成的逻辑门、存储单元连接成⼀个电路,具备⼀定的逻辑功能。
不过,各位读者设计数字逻辑电路时,是否进⾏过⽤导线连接晶体管的实验?显然没有。⼤家⼀般是⽤⼀种硬件描述语⾔(⽐如VerilogHDL)写写代码,然后运⾏综合软件(⽐如Vivado),电路就设计出来了。
这⼀流程并不是各类课程实验中所独有的,它其实与现在⼯业界常见的ASIC设计流程是⼀致的。FPGA的设计流程⼀般有5个步骤:
1. 电路设计。
2. 代码编写。
3. 功能仿真。
4. 综合实现。
手抄报边框简单漂亮5. 上板调试。
01 电路设计
java 编程软件⾸先,需要根据需求规格制定电路设计⽅案。例如,需求是设计⼀个MIPS CPU,我们要把这个需求⼀步步分解、细化,得到⼀个能够满⾜需求的电路设计⽅案。
我们要决定分成⼏个流⽔级,这⾥放⼏个触发器,那⾥放⼏个运算器,它们之间怎么连接,整个电路的状态转换⾏为是怎样的,等等。
通常,我们将电路设计细化到寄存器传输级(Register Transfer Level,RTL)就可以了,⽆须精确到逻辑门级别或是晶体管级别。
02 代码编写
代码编写阶段的⼯作是把第1步中完成的电路设计⽅案⽤硬件描述语⾔(Hardware Description Language,HDL)表述出来,成为⼀种EDA⼯具能够看得懂的形式。
03 功能仿真
软件测试速成功能仿真阶段的⼯作是对第2步中⽤HDL语⾔描述出来的设计进⾏功能仿真验证。所谓功能仿真验证,就是通过软件仿真模拟的⽅式查看电路的逻辑功能⾏为是否符合最初的设计需求。
通常我们给电路输⼊指定的激励,观察电路输出是否符合预期,如果不符合则表明电路逻辑功能有错误。这种错误要么是因为第1步的电路设计就有错误,要么是第2步编写的代码不符合电路设计。
发现功能错误后需要返回前⾯相应的步骤进⾏修正,然后再按照流程⼀步步推进。如此不断迭代,直到不再发现错误,就可以进⼊下⼀阶段了。
需要指出的是,由于我们对电路是在RTL级建模,因此功能仿真阶段不考虑电路的延迟。
04 综合实现
安装electron综合实现阶段完成从HDL代码到真实芯⽚电路的转换过程。这个过程类似于编译器把⾼级语⾔转换成⽬标机器的⼆进制代码的过程。
这个阶段分为综合和实现两个⼦阶段。
综合阶段将HDL描述的设计编译为由基本逻辑单元连接⽽成的逻辑⽹表,不过此时的⽹表还不是最终的门级电路⽹表。
实现阶段才会将综合出的逻辑⽹表映射为FPGA中的具体电路,即将逻辑⽹表中的基本逻辑单元映射到FPGA芯⽚内部固有的硬件逻辑模块上(称为“布局”)。随后,基于布局的拓扑,利⽤FPGA芯⽚内部的连线资源,将各个映射后的逻辑模块连接起来(称为“布线”)。
如果整个综合实现过程没有发⽣异常,EDA⼯具将⽣成⼀个⽐特流(Bitstream)⽂件。通俗来说,这个⽐特流⽂件描述的就是最终的电路,但这个⽂件只有FPGA芯⽚能读得懂。
详解tcp协议的三次握手过程05 上板调试
俗话说:“是骡⼦是马拉出来遛遛”。不管功能仿真得多正确,最终还是要看实际电路能否正常⼯作。
在上板调试阶段,⾸先要将综合实现阶段⽣成的⽐特流⽂件下载到FPGA芯⽚中,随后运⾏电路观察其⼯作是否正常,如果发⽣问题就要调
试、定位出错的原因。
⼩结⼀下,上⾯介绍的FPGA⼀般设计流程给出了总的脉络,以便读者先建⽴⼀个正确的整体概念。FPGA设计流程中还包含很多细节,可参考《CPU设计实战》⼀书。
关于作者:汪⽂祥,⼯学博⼠,龙芯中科技术股份有限公司⾸席⼯程师,中国科学院⼤学岗位教授。主要研究⽅向为处理器体系结构设计、处理器验证及计算机系统性能分析优化等,参与了多项国家“核⾼基”、863 和 973 项⽬,在国内外各种期刊会议发表⽂章⼗余篇,申请专利数⼗项,授权专利⼗余项。
邢⾦璋,硕⼠毕业于中国科学院计算技术研究所,2015年加⼊龙芯中科技术股份有限公司,从事处理器核结构设计⼯作,是龙芯⼩、中系列处理器核演进版本的主要结构设计者之⼀。近年来,积极参与“龙芯杯”全国⼤学⽣计算机系统能⼒培养⼤赛的技术⽀持、培训等⼯作。
本⽂摘编⾃《CPU设计实战》,经出版⽅授权发布。
延伸阅读《CPU设计实战》
点击上图了解及购买
转载请联系:DoctorData
推荐语:深⼊剖析CPU设计与开发的关键环节;从零开始逐步构建⼀个功能完善的CPU;全⾯培养CPU设计的⼯程化思维与实战能⼒。
直播预告
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论