我们的FPGA集成开发环境可以做什么

HDL设计文件编写

RTL级仿真

综合、技术映射

门级仿真

打包、布局、布线

后仿

码流生成

码流下载

我们的集成开发环境长这样

FPGA开发流程图


      通过FPGA开发流程可以发现我们的集成开发环境基本覆盖了FPGA开发的全流程;其中每个步骤的作用如下:

1) RTL级HDL设计

RTL级(Register Transfer Level,寄存器传输级)指不关注寄存器和组合逻辑的细节(如使用了多少个逻辑门、逻辑门的连接拓扑结构等),通过描述数据在寄存器之间的流动和如何处理、控制这些数据流动的模型的HDL设计方法。RTL级比门级更抽象,同时也更简单和高效。RTL级的最大特点是可以直接用综合工具将其综合成为门级网表,其中RTL级设计直接决定着系统的功能和效率。

2) RTL级仿真

也称为功能(行为)仿真,或是综合前仿真,是在编译之前对用户所设计的电路进行逻辑功能验证,此时的仿真没有延迟信息,仅对初步的功能进行检测。仿真前,要先利用波形编辑器和HDL等建立波形文件和测试向量(即将所关心的输入信号组合成序列),仿真结果将会生成报告文件和输出信号波形,从中便可以观察各个节点信号的变化。如果发现错误,则返回设计修改逻辑设计。常用的工具有Model Tech公司的ModelSim、Sysnopsys公司的VCS和Cadence公司的NC-Verilog以及NC-VHDL等软件。虽然功能仿真不是FPGA开发过程中的必需步骤,但却是系统设计中最关键的一步。

为了提高功能仿真的效率,需要建立测试平台testbench,其测试激励一般使用行为级HDL语言描述,其中RTL级模块是可综合的,它是行为级模块的一个子集合。

3) 综合

所谓综合就是将较高级抽象层次的描述转化成较低层次的描述。综合优化根据目标与要求优化所生成的逻辑连接,使层次设计平面化,供FPGA布局布线软件进行实现。就目前的层次来看,综合优化(Synthesis)是指将设计输入编译成由与门、或门、非门、RAM、触发器等基本逻辑单元组成的逻辑连接网表,而并非真实的门级电路。真实具体的门级电路需要利用FPGA制造商的布局布线功能,根据综合后生成的标准门级结构网表来产生。为了能转换成标准的门级结构网表,HDL程序的编写必须符合特定综合器所要求的风格。由于门级结构、RTL级的HDL程序的综合是很成熟的技术,所有的综合器都可以支持到这一级别的综合。常用的综合工具有Synplicity公司的Synplify/Synplify Pro软件以及各个FPGA厂家自己推出的综合开发工具。

4) 门级仿真

也称为综合后仿真,综合后仿真检查综合结果是否和原设计一致。在仿真时,把综合生成的标准延时文件反标注到综合仿真模型中去,可估计门延时带来的影响。但这一步骤不能估计线延时,因此和布线后的实际情况还有一定的差距,并不十分准确。目前的综合工具较为成熟,对于一般的设计可以省略这一步,但如果在布局布线后发现电路结构和设计意图不符,则需要回溯到综合后仿真来确认问题之所在。在功能仿真中介绍的软件工具一般都支持综合后仿真。

5) 布局布线

实现是将综合生成的逻辑网表配置到具体的FPGA芯片上,将工程的逻辑和时序与器件的可用资源匹配。布局布线是其中最重要的过程,布局将逻辑网表中的硬件原语和底层单元合理地配置到芯片内部的固有硬件结构上,并且往往需要在速度最优和面积最优之间作出选择。布线根据布局的拓扑结构,利用芯片内部的各种连线资源,合理正确地连接各个元件。也可以简单地将布局布线理解为对FPGA内部查找表和寄存器资源的合理配置,布局可以被理解挑选可实现设计网表的最优的资源组合,而布线就是将这些查找表和寄存器资源以最优方式连接起来。

目前,FPGA的结构非常复杂,特别是在有时序约束条件时,需要利用时序驱动的引擎进行布局布线。布线结束后,软件工具会自动生成报告,提供有关设计中各部分资源的使用情况。由于只有FPGA芯片生产商对芯片结构最为了解,所以布局布线必须选择芯片开发商提供的工具。

6) 时序仿真

是指将布局布线的延时信息反标注到设计网表中来检测有无时序违规(即不满足时序约束条件或器件固有的时序规则,如建立时间、保持时间等)现象。时序仿真包含的延迟信息最全,也最精确,能较好地反映芯片的实际工作情况。由于不同芯片的内部延时不一样,不同的布局布线方案也给延时带来不同的影响。因此在布局布线后,通过对系统和各个模块进行时序仿真,分析其时序关系,估计系统性能,以及检查和消除竞争冒险是非常有必要的。

7) FPGA码流生成与板级调试

通过编程器将布局布线后的配置文件下载至FPGA中,对其硬件进行编程。配置文件一般为.pof或.sof文件格式,下载的方式包括AS(主动)、PS(被动)、JTAG(边界扫描)等方式。

用自己的FPGA集成环境生成个RISC-V的例程来验证集成开发环境的健壮性

通过复杂的例程,验证我们FPGA集成开发环境的健壮性;

我们想做什么

IDE集成环境软件开发

逻辑综合算法

高层次综合算法

布局布线算法

逻辑、时序仿真工具

我们需要什么

我们需要有爱国情怀、能吃苦奋斗的你加入我们,和我们一起完成这个充满崎岖坎坷的旅程;如果你的情怀够、精神力足、对FPGA编译器或则集成开发环境软件开发有兴趣,那还等什么,简历走起来呗! 简历可以往哪走:centuryofmine@gmail.com

我们能提供什么

我们能伴你成长;我们能提供你一个非常温馨的工作环境;公司能提供可观的收入;

FPGA集成开发环境相关推荐

  1. 64位 linux 32位连接器,意法半导体为 32 位微控制器发布了一款自由的 Linux 集成开发环境...

    32 位微控制器世界向 Linux 敞开大门.前一段时间,领先的 ARM Cortex-M 供应商意法半导体(ST)发布了 一款自由的 Linux 桌面版开发程序,该软件面向其旗下的 STM32 微控 ...

  2. 什么是编译器,什么是集成开发环境?一文讲明白

    作者 | 薛定谔的coding猫 来源 | C语言与程序设计 二次排版编辑 | 张巧龙 各位,关于编译器和集成开发环境这两个名称,我们平时一直在说,但这二位究竟有什么区别和联系呢,今天就跟大家简单聊一 ...

  3. 【JAVA零基础入门系列】Day2 Java集成开发环境IDEA

    [JAVA零基础入门系列](已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day ...

  4. RStudio v1.2.1335 发布,R 语言的集成开发环境

    开发四年只会写业务代码,分布式高并发都不会还做程序员? >>>   RStudio 是 R 语言的集成开发环境,分为面向桌面用户 IDE 和 Linux R 服务器版编辑器两种编辑器 ...

  5. 分享:Arcadia 0.12.1 发布,Ruby 集成开发环境

    Arcadia 0.12.1 发布,Ruby 集成开发环境 http://www.oschina.net/news/35942/arcadia-0-12-1

  6. C语言的集成开发环境

    Code::Blocks,开源免费的C/C++ IDE CodeLite,开源.跨平台的C/C++集成开发环境 Dev-C++,可移植的C/C++IDE C-Free Light Table Visu ...

  7. 使用IntelliJ IDEA 13搭建Android集成开发环境(图文教程)

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  8. python有哪些常见的开发环境_Python集成开发环境有哪些

    对于Python集成开发环境,你更喜欢哪一款? 0.Spyder Spyder是Python(x,y)的作者为它开发的一个简单的集成开发环境.和其他的Python开发环境相比,它最大的优点就是模仿MA ...

  9. 组态王浏览器java_1工程浏览器是组态王的集成开发环境在这里可以

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbsp软件工程 1工程浏览器是组态王的集成开发环境在这里可以3页 本文 ...

最新文章

  1. ReSharper 配置及用法
  2. 用 Python 动态可视化,看看比特币这几年
  3. 服务器光盘修复读不出盘,求助,硬盘读不出来怎么修复?
  4. Python 百度面试题
  5. JSP语法(JSP动作)
  6. VMware相关的缩略语和缩略语
  7. SAP License:两种不太常见的移动类型
  8. 《原力计划【第二季】》第 5 周周榜揭晓!!!
  9. linux添加计划任务(转载)
  10. python求三位数每一位的和_输入一个三位数的整数,求这个三位数每一位上数字的和是多少。例如,输入: 382,输出:和为 13。 编写 Python 程序实现上述要求...
  11. DVR,DVS,NVR,NVS 的区别
  12. (Neighbourhood Components Analysis) NCA 近邻成分分析的学习
  13. 2021年中国物流仓储系统集成商竞争力排行TOP20
  14. 你好,罗茜——爱要怎么说出口
  15. Android 禁止状态栏下拉
  16. CToolBar的使用总结1
  17. 以太网物理层协议整理(1)-百兆/千兆以太网
  18. 笔记:新一代视频压缩编码标准-h.264/AVC
  19. 交换element-ui中$confirm弹出框的确定和取消按钮位置
  20. 只是为了纪念机房颓废的日子

热门文章

  1. c语言 英文单词频率统计 哈希存储
  2. 【Visual C 】游戏开发笔记三十四 浅墨DirectX提高班之三 起承转合的艺术 Direct3D渲染五步曲
  3. [Kerberos基础]-- kerberos认证原理---讲的非常细致,易懂
  4. maya2020 redshift3.0.31demo版安装方法。
  5. chrome浏览器安装vue插件
  6. 基于Cesium使用自定义着色器的资源总结
  7. 关于TDataSet和TFDJsonDataSets在处理数据库字段的字符集和执行效率方面的比较
  8. ECharts官方教程(四)【个性化图表的样式】
  9. 软件工程如何选择方向
  10. CSCD刊源(2007年-2008年)