fpga 编译完成后就可以烧录,为什么还需要综合

fpga 编译完成后就可以烧录,为什么还需要综合,第1张

你是外行,老铁!
FPGA流程:代码编写----FPGA代码综合(做语法检查,将代码转换成门级电路网表)-----映射(或者叫适配,将通用门电路映射到相关器件的逻辑资源,例如查找表,RAM)-----布局布线(将FPGA映射结果,在FPGA内部摆出来)----生成配置文件(FPGA内部配置sram的初始值,配置查找表和其他逻辑资源,至于你不理解什么叫配置sram值,请深入理解FPGA的构造,尤其是LUT的结构)。

作为FPGA新人,对FPGA学习肯定会有很多问题,像FPGA是什么FPGA怎么学FGPA用什么语言之类的,前两者我们专门发文章讨论过,今天我们重点谈一谈FPGA用什么编程语言。

经常看到不少人在论坛里发问,FPGA是不是用C语言开发的国外有些公司专注于开发解决编译器这方面问题,目的让其能够达到用C语言替代VHDL语言的目的,也开发出了一些支持用c语言对FPGA进行编程的开发工具。但在使用多的FPGA编程语言还是verilog和VHDL语言,一般不使用C语言进行编程。

FPGA可以用VHDL语言和VERILOG语言进行编程开发,目前欧洲前者用的多,而,美国,日本则更多的使用后者,而且后者和C语言比较的接近,如果你对C比较熟悉的话,可以选择使用VerilogHDL语言,基本语法和C非常相似,而且也非常灵活,VHDL语言则相对来说比较严谨。

其实两种语言的差别并不大,他们的描述能力也是类似的。掌握其中一种语言以后,可以通过短期的学习,较快的学会另一种语言。选择何种语言主要还是看周围人群的使用习惯,这样可以方便日后的学习交流。当然,如果您是专用集成电路(ASIC)设计人员,则必须首先掌握verilog,因为在IC设计领域,90%以上的公司都是采用verilog进行IC设计。对于PLD/FPGA设计者而言,两种语言可以自由选择。

设计人员通过计算机对HDL语言进行逻辑仿真和逻辑综合,方便高效地设计数字电路及其产品。

相对而言,欧洲方面多用VHDL,特点是逻辑严谨、慎密。而verilog则是美国用的较多,特点是语法上更灵活一些。两者在语法构成方面都差别不大,一般都是通用的。VHDL编写的程序可能看上去会臃肿一些但是对于后续的调试和修改会更方便一些。

FPGA用什么编程语言呢verilog和VHDL,这里给初学者的建议是:从VHDL入手,进阶兼顾Verlilog,相互对比着学习,更有利于程序的理解和编写。

对CPLD/FPGA芯片进行编程配置的方式有多种
1、按使用计算机的通讯接口划分,有:
(1)串口下载(BitBlaster或MasterBlaster)、
(2)并口下载(ByteBlaster)、
(3)USB接口下载(MasterBlaster或APU)等方式。
2、若按使用的CPLD/FPGA器件划分,有:
1)CPLD编程(适用于片内编程元件为EPROM、E2PROM 和闪存的器件);
2)FPGA下载(适用于片内编程元件为SDRAM的器件)
3、按CPLD/FPGA器件在编程下载过程中的状态划分,有:
1)主动配置方式。
在这种配置方式下,由CPLD器件引导配置 *** 作的过程并控制着外部存贮器和初始化过程;
2)被动配置方式。
在这种配置方式下,由外部CPU或控制器(如单片机)控制配置的过程。
CPLD/FPGA器件按照正常使用和下载的不同过程其工作状态分为三种:
1、用户状态(User mode)
即电路中CPLD器件正常工作时的状态;
2、配置状态(Configuration mode )
指将编程数据装入CPLD/FPGA器件的过程,也可称之为下载状态;
3、初始化状态(Initialization)
此时CPLD/FPGA器件内部的各类寄存器复位,
让I/O引脚为使器件正常工作作好准备。
ALTERA公司的开发系统MAX+PLUSⅡ可以生成多种格式的编程数据文件。对于不同系列器件, 所能生成的编程/配置文件类型有所不同, 但大致可有下面几种类型:
①SRAM Object格式(sof):
SOF格式文件用于FLEX器件的Bit Blaster或Byteblaster被动配置方式。
MAX+PLUS II编译综合工具会在编译综合过程中自动为FLEX系列器件生成SOF数据格式文件, 其它数据格式均可由该种格式转化而成。
②Programming Object格式(pof):
POF格式文件用于对MAX系列器件编程配置, 也可以用于对采用EPROM配置方式的FLEX器件进行配置。POF文件也是由MAX+PLUS II软件在编译综合过程中自动产生。
③十六进制格式(hex):
HEX格式文件是使用第三方编程硬件对并行EPROM编程的数据文件,从而可以将并行EPROM作为数据源, 用微处理器对FLEX器件进行被动串行同步(PS)配置或被动串行异步(PSA)配置。
④ASCII码文本格式(ttf):
TTF格式文件适用于被动串行同步(PS)配置和被动串行异步(PSA)配置类型, 它在配置数据之间以逗号分隔。
编程一般会用:Verilog和VHDL两种来完成,也用用电路直接搭的,那种比较高端,需要很丰富的设计经验,和对数字电路的了解

dSPACE实时仿真系统是由德国dSPACE公司开发的一套基于MATLAB/Simulink的控制系统开发及半实物仿真的软硬件工作平台,实现了和MATLAB/Simulink/RTW的完全无缝连接。dSPACE实时系统拥有实时性强,可靠性高,扩充性好等优点。dSPACE硬件系统中的处理器具有高速的计算能力,并配备了丰富的I/O支持,用户可以根据需要进行组合;软件环境的功能强大且使用方便,包括实现代码自动生成/下载和试验/调试的整套工具。dSPACE软硬件目前已经成为进行快速控制原型验证和半实物仿真的首选实时平台。
实现快速控制原型和硬件在回路仿真
RCP(Rapid Control Prototyping)— 快速控制原型
要实现快速控制原型,必须有集成良好便于使用的建模、设计、离线仿真、实时开发及测试工具。 dSPACE 实时系统允许反复修改模型设计,进行离线及实时仿真。这样,就可以将错误及不当之处消除于设计初期,使设计修改费用减至最小。
使用 RCP 技术,可以在费用和性能之间进行折衷;在最终产品硬件投

1、数字电路基础。做FPGA一定要有数字硬件的概念。FPGA是硬件设计,而不是软件设计,首先要有这个概念

2、硬件描述语言,Verilog或VHDL,推荐Verilog

3、主流厂家的芯片底层结构,如LogicCell、DSPBlock、时钟、IO单元等

4、EDA工具的使用,如主流厂家的集成编译环境(QuartusII、Vivado等)、仿真软件(ModelSim等)的使用

5、熟悉FPGA设计流程(仿真,综合,布局布线,时序分析)。

6、熟练掌握资源估算(特别是slice,lut,ram等资源的估算)。

7、同步设计原理。

一个合格的FPGA工程师至少在以下三个方面的一个非常熟悉:?

嵌入式应用?2DSP应用?3高速收发器应用

扩展资料

FPGA工程师的核心竞争力

1、RTL设计实现能力。也就是算法实现能力,RTL实现是FPGA工程师或者说HDL开发人员的入门首先接触到的东西;

2、硬件调试能力。包括问题定位分析能力和系统调试能力,FPGA工程师真正的核心竞争力,因为这不仅仅需要经验的积累,同时还需要很好的逻辑思维和分析能力。

另外一方面是整个硬件软件系统层次的调试能力,要看得懂原理图PCB,懂硬件,了解软件接口,现在FPGA越来越讲究-design,软件硬件这个系统层次的调试能力对人的要求更加高。

3、更加高层次的能力。还是系统层次的东西。算法和架构,怎样将一系列数学公式,转换为算法,在最终形成系统硬件的实现;

整个系统采用什么样的架构,纯FPGA,armFPGA,DSPFPGA,SOCFPGA;FPGA顶层采用什么架构,通用总线还是自定义总线,如何考虑通用性和可扩展性等等,再大至什么样的应用适合用FPGA实现。

什么样的问题适合软件实现,怎样的组合能更加低成本高效率的解决问题,这一些列问题涉及的东西有很多,基本上都是以FPGA为核心做开发要面临的问题,其实其他平台的硬件、软件产品都是类似,系统层面的问题都是复杂的问题,同时,从系统层面去优化,解决问题才是最高效率的方式。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10754616.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-11
下一篇2023-05-11

发表评论

登录后才能评论

评论列表(0条)

    保存