来,给你详尽的解答下。。这段话都放到我的论文里了。
根据上电配置FPGA的过程中的状态,数据配置可分为3种方式写入FPGA中[39]。
(1)AS(ActiveSerial,主动串行)配置方式
在AS配置方式下,由FPGA器件主动输出控制、同步信号和时钟给外部的专用配置芯片,配置芯片收到FPGA的命令后,就把内部存储的配置数据发送到FPGA中,完成配置的过程。其中只有Stratix II系列、Cyclone系列、Cyclone II系列和CycloneIII系列器件支持这种配置模式。CycloneII系列还支持40MHz的快速AS配置方式。AS配置方式是将程序编译后的文件下载到EPCS4中保存,再次上电时系统会先从EPCS4中读取数据进行相应的配置,一般在设计完成时使用。
(2)JTAG(JointTest Action Group)配置方式
JTAG是IEEE11491边界扫描测试标准接口。大多数的ALTERA FPGA都支持JTAG配置方式。应用Quartus II软件通过下载器将配置数据下载至FPGA中。在调试阶段一般选择JTAG配置方式,直接将编译生成的SOF文件下载到FPGA中,掉电后数据消失。
(3)PS(PassiveSerial,被动串行)配置方式
在被动串行配置方式下,系统是通过外围其他的器件来控制配置过程的,这些外围器件可以是配置芯片、CPLD和微处理器等,在配置过程中FPGA完全处于被动状态,只能够输出一些状态信号来响应这个配置过程。如果只选用一种配置方式,则可以将MSEL1和MSEL0直接接地或接VCC。如果选用多种配置方式则需要用FPGA对MSEL管脚按照上表中的值进行电平切换。MSEL管脚在配置开始之前必须处于稳态,不能悬空。发送端主控芯片选择的是ALTERA公司的Cylone II系列芯片EP2C8144TC8N。
[39] Altera CorporationCyclone II Device Handbook [EB/OL]2008
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个新概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有:1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。2)FPGA可做其它全定制或半定制ASIC电路的中试样片。3)FPGA内部有丰富的触发器和I/O引脚。4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。目前FPGA的品种很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。以各种类型的FPGA芯片加上实验开发需要的外围通用电路,结合实验程序,就形成FPGA开发板,可以高效快速学习FPGA开发。ASIC(ApplicationSpecificIntegratedCircuit)是专用集成电路。目前,在集成电路界ASIC被认为是一种为专门目的而设计的集成电路。是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。ASIC的特点是面向特定用户的需求,ASIC在批量生产时与通用集成电路相比具有体积更小、功耗更低、可靠性提高、性能提高、保密性增强、成本降低等优点。ASIC分为全定制和半定制。全定制设计需要设计者完成所有电路的设计,因此需要大量人力物力,灵活性好但开发效率低下。如果设计较为理想,全定制能够比半定制的ASIC芯片运行速度更快。半定制使用库里的标准逻辑单元(StandardCell),设计时可以从标准逻辑单元库中选择SSI(门电路)、MSI(如加法器、比较器等)、数据通路(如ALU、存储器、总线等)、存储器甚至系统级模块(如乘法器、微控制器等)和IP核,这些逻辑单元已经布局完毕,而且设计得较为可靠,设计者可以较方便地完成系统设计。现代ASIC常包含整个32-bit处理器,类似ROM、RAM、EEPROM、Flash的存储单元和其他模块这样的ASIC常被称为SoC(片上系统)。FPGA是ASIC的近亲,一般通过原理图、VHDL对数字系统建模,运用EDA软件仿真、综合,生成基于一些标准库的网络表,配置到芯片即可使用。它与ASIC的区别是用户不需要介入芯片的布局布线和工艺问题,而且可以随时改变其逻辑功能,使用灵活。FPGA(现场可编程门阵列)是专用集成电路(ASIC)中集成度最高的一种,用户可对FPGA内部的逻辑模块和I/O模块重新配置,以实现用户的逻辑,因而也被用于对CPU的模拟。用户对FPGA的编程数据放在Flash芯片中,通过上电加载到FPGA中,对其进行初始化。也可在线对其编程,实现系统在线重构,这一特性可以构建一个根据计算任务不同而实时定制的CPU,这是当今研究的热门领域。
你的时序有问题。而且驱动AD的信号速度要符合AD芯片的标准。FPGA的工作速度可以远远高于AD采样芯片的工作速度,如果不同步,就会造成FPGA逻辑模块出现异常的情况而无法执行,也就是说状态机运行到了无法继续转移状态的类似于死机的状态。
因为,只要复位就可以正常采样几次,多半都是这类问题。再好好查查吧。应该没什么大问题
以上就是关于如何将程序加载到FPGA全部的内容,包括:如何将程序加载到FPGA、在FPGA开发过程中,编程与配置这两个 *** 作有什么区别、程序下到FPGA不能正常工作等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)