加入收藏 | 设为首页 | 会员中心 | 我要投稿 南平站长网 (https://www.0599zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 移动互联 > 数码 > 正文

5个流程带你入门FPGA设计流程

发布时间:2021-06-01 11:55:47 所属栏目:数码 来源:互联网
导读:FPGA是一种特殊的集成电路,这意味着它首先是一种集成电路。现在的集成电路绝大多数都是晶体管集成电路,大家日常接触最多的是CMOS晶体管集成电路。 晶体管集成电路是什么?通俗来说,就是用金属导线把许许多多由晶体管构成的逻辑门、存储单元连接成一个电

FPGA是一种特殊的集成电路,这意味着它首先是一种集成电路。现在的集成电路绝大多数都是晶体管集成电路,大家日常接触最多的是CMOS晶体管集成电路。

晶体管集成电路是什么?通俗来说,就是用金属导线把许许多多由晶体管构成的逻辑门、存储单元连接成一个电路,具备一定的逻辑功能。

不过,各位读者设计数字逻辑电路时,是否进行过用导线连接晶体管的实验?显然没有。大家一般是用一种硬件描述语言(比如VerilogHDL)写写代码,然后运行综合软件(比如Vivado),电路就设计出来了。

这一流程并不是各类课程实验中所独有的,它其实与现在工业界常见的ASIC设计流程是一致的。FPGA的设计流程一般有5个步骤:

电路设计。

代码编写。

功能仿真。

综合实现。

上板调试。

01 电路设计

首先,需要根据需求规格制定电路设计方案。例如,需求是设计一个MIPS CPU,我们要把这个需求一步步分解、细化,得到一个能够满足需求的电路设计方案。

我们要决定分成几个流水级,这里放几个触发器,那里放几个运算器,它们之间怎么连接,整个电路的状态转换行为是怎样的,等等。

通常,我们将电路设计细化到寄存器传输级(Register Transfer Level,RTL)就可以了,无须精确到逻辑门级别或是晶体管级别。

02 代码编写

代码编写阶段的工作是把第1步中完成的电路设计方案用硬件描述语言(Hardware Description Language,HDL)表述出来,成为一种EDA工具能够看得懂的形式。

03 功能仿真

功能仿真阶段的工作是对第2步中用HDL语言描述出来的设计进行功能仿真验证。所谓功能仿真验证,就是通过软件仿真模拟的方式查看电路的逻辑功能行为是否符合最初的设计需求。

通常我们给电路输入指定的激励,观察电路输出是否符合预期,如果不符合则表明电路逻辑功能有错误。这种错误要么是因为第1步的电路设计就有错误,要么是第2步编写的代码不符合电路设计。

发现功能错误后需要返回前面相应的步骤进行修正,然后再按照流程一步步推进。如此不断迭代,直到不再发现错误,就可以进入下一阶段了。

需要指出的是,由于我们对电路是在RTL级建模,因此功能仿真阶段不考虑电路的延迟。

04 综合实现

综合实现阶段完成从HDL代码到真实芯片电路的转换过程。这个过程类似于编译器把高级语言转换成目标机器的二进制代码的过程。

这个阶段分为综合和实现两个子阶段。

综合阶段将HDL描述的设计编译为由基本逻辑单元连接而成的逻辑网表,不过此时的网表还不是最终的门级电路网表。

实现阶段才会将综合出的逻辑网表映射为FPGA中的具体电路,即将逻辑网表中的基本逻辑单元映射到FPGA芯片内部固有的硬件逻辑模块上(称为“布局”)。随后,基于布局的拓扑,利用FPGA芯片内部的连线资源,将各个映射后的逻辑模块连接起来(称为“布线”)。

(编辑:南平站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读