原创 国产FPGA试用手记三(存储器)

2010-12-22 14:21 4080 12 17 分类: FPGA/CPLD

国产FPGA试用手记三(存储器)


有几点关于代码和数据存储区配置的一些疑问,麻烦解答一下:


问:代码存储器可以选择OTP或者extension memory,一般在最终软件定型后使用OTP没有问题,而在调试过程中会选择extension memory。extension memory里有三类:EMB、SRAM和Custom,通常代码存储器应该是非易失存储器,而你们这里列出来的EMB和SRAM都是下电易失的,这一点我不是很明白?难道说extension memory只是在KeilC处于debug模式时代码运行的存储区,而非代码下电存储的介质?EMB只有1K(最大可以到2K),如果设置了这个代码存储器,是不是KEILC DEBUG时代码不可以超过1K?


FAE:EMB和SRAM都是易失的,用EMB是最大可支持2KB的code空间,EMB初始化的信息与FPGA配置信息一起存储在内嵌SPI Flash中,上电自动加载,用SRAM时,需要使用我们提供的SRAMLoader工程,利用Astro重配置特性进行加载。


 


问:与上面类似的疑问,关于数据存储区,两个选项,on-ship SRAM默认勾选,这个没有疑问。而FP应该是内部扩展的4M Flash,应该是非易失存储器,数据存储器通常没有必要是非易失的吧?我认为按照常规,代码存储是非易失存储器,数据存储是易失存储器,而你们的配置选项让我有点糊涂。


 FAE:Astro内部为8051提供16KB专用SRAM,用作data空间。


 


问:另外,SPI烧录应该是将FPGA配置数据烧录到4M FLASH中吧?而用Configuration Packer功能应该是要将FPGA配置数据和软件hex文件封装成一个文件烧录到4M flash中吧?我这么尝试过好像下电后系统没有跑起来,那么是不是在系统的存储器配置中有所讲究呢?


FAE:Configuration Packer可以让Astro内存储多个配置文件,利用它可以在使用SRAM做code空间时打包SRAMLoader工程进行上电自动加载。附件中是关于Astro的几个应用文档,您先看一下,写的比较详细,相信对您理解Astro用法会很有帮助,谢谢!


 


         昨天对Agate Logic负责硬件的FAE狂轰滥炸,对于其开发工具和器件的结构都有更深入的了解和认识,上面的几个问答只是关于51硬核的数据和代码存储器方面的,好一番追问之后,总算逼出了几个像模像样的文档出来,消化后再做了一些实践,然后有一点收获和对后续项目在存储器配置上的一些可行性的想法。另外,关于时序方面的一些疑问也得到了解答,不是很放心,也问出了一些真真确确的“问题”来,并且目前在用软件版本的一些bug也被我问出来了,目前还需要等着厂商给我提供补丁,所以关于时序方面的博文只能暂缓进行。


         特权同学问题提得比较到位,但不是很有水准。FAE回答得也不是很容易让人明白,最后还是文档给出了比较权威的解答。


         在讨论Astro系列芯片51硬核的软件运行模式之前,要先看看Astro系列芯片到底已经提供了哪些片内的存储资源,不看不要紧,一看吓一跳——可谓品种齐全,满足各类需求。


1.       总共1Mbit的OTP型存储区,其中64KB用于FPGA的配置数据存储,另64KB用于51硬核的最终代码存储器。


2.       4Mbit(512KB)的FPGA和8051公用的SPI Flash。


3.       2块9Kbit的可配置双端口EMB。


4.       16KB的51硬核专用数据存储器。


 


Astro系列芯片51硬核的软件主要运行模式:


小模式:


            不外挂存储器,使用芯片现有资源,FPGA配置数据和8051代码(小于2KB)存储于SPI Flash中。系统上电后,FPGA配置数据先从SPI Flash中导出并配置FPGA,也包括EMB的初始化数据(即软件代码从SPI FLASH搬运到EMB中);完成后8051代码直接从EMB中开始运行。


         内嵌8051在无等待周期的状态下,最快时钟频率可到70MHz,性能到47MIPS的性能。主要用于8051代码较少时,调试生产两便,成本也比较低。


         手记二中的测试就是基于该模式,性能还算可以。


调试模式:


           外挂SRAM存储器,FP Bootloader配置数据、FPGA用户程序配置数据和8051用户代码分段存储于SPI Flash中。系统上电先从SPI Flash中导出FP BootLoder配置数据(内含Loader部分)。配置FP包括EMB的初始化数据,完成后SRAM Loader程序将搬运8051用户代码到外挂SRAM中;之后再从SPI Flash中导入FP用户程序并重新配置FP,8051代码在外挂SRAM中开始运行。


          内嵌8051在无等待周期的状态下,最快时钟频率可到35MHz,性能到23MIPS的性能。此模式主要用于8051代码超过2KB调试时用。当然也可用于生产。请注意外挂SRAM将增加成本。


           这种模式由于不太可能使用,所以特权同学不过多研究,但这也是嵌入式系统中比较常见的一种BootLoder方式。


最终生产模式:


           不外挂存储器,8051代码存储于OTP存储器中,FP配置数据存于OTP或SPI FLASH中。因为OTP存储器是一次性的,所以不能用于调试阶段。一般产品最终定型后再使用OTP存储器可以获得最优的性能和最低的成本。


            而当采用OTP 作为8051 代码内存,最高时钟频率可达100MHz。较理想的方法是用锁相环PLL来产生8051 时钟。CKCON SFR的低4位用来控制数据Memory 的等待周期。如果8051时钟频率高于45MHz,最好将value设置为大于等于2,以防止时钟太快,数据还没准备好。


            也就是说,OTP方式可以达到51硬核代码运行的最佳性能,甚至于性能的速度瓶颈已经不是代码存取,而是数据存取。


 


         以上三种模式是比较推荐的,但是特权同学从实际工程需要来考虑,简单的说,需要一种调试模式和一种生产模式。生产模式无可厚非的选择OTP烧录,而调试模式有点棘手,如果选择小模式,代码运行量太小,顶多不过2K,基本干不了什么事。而选择外扩SRAM,有限的IO资源不会允许的。所以,有点苦恼,但是还好,还有一种最次的选择——性能低下的第四种模式。


           当8051的性能低于1.4MIPS时,可用spi flash作为8051的代码存储器。此模式的运行环境如下:


1. 选用片内 SPI FLASH;


2. FPGA的配置数据和8051代码存放在同一个SPI FLASH 里;


3. 8051 与SPI FLASH 接口大约需要90 个LE cells;


4. 8051 的内核时钟最快为30MHz 左右, 8051 最快运行性能大约为1.4MIPS;


5. 顺序取指需要 8 个时钟周期,跳转取指需要40 个周期;


 


         在尝试SPI FLASH模式的时候,遇到了比较有意思的事。特权同学根据实例做SPI FLASH的运行测试,结果搞不定,也找不到相关的IP核。于是求问FAE,FAE直接告知这个IP核还没有集成到工具中,然后把源代码都发过来了。呵呵,虽然工具不完善,不过服务倒是很周到。


         由于基于SPI FLASH的模式是在51硬核与SPI FLASH之间使用FPGA逻辑搭建了一个FLASH读取的模块。所以经过测试,确实这个FLASH读取控制的逻辑模块频率不能太高,过高FLASH就要罢工了,理论值是30M,而特权同学用了25M。然后使用上一篇手记同样的方法改变硬核的频率进行测试。


 



延时函数


EMB模式


SPI FLASH模式


50MHz


100MHz


50MHz


100MHz


Delay(1)


5.0us


2.5us


20us


20us


Delay(2)


6.6us


3.3us


27.5us


27.5us


Delay(3)


8.3us


4.2us


35us


35us


Delay(4)


9.9us


5.0us


42.5us


42.5us


i++与i<cnt指令


约1.63us


约0.83us


约7.5us


约7.5us


 


         结果证明,51硬核的频率受制于指令的读取速度,那么在SPI FLASH模式下速度性能确实大打折扣。


 


 

文章评论5条评论)

登录后参与讨论

用户931629 2011-1-16 02:10

II代出来我来做些空板子,你们可以以较低的价格获取样片,成本价。

用户931629 2011-1-16 02:09

现在又带A集成flash的,我有这个板子,他们里面的人我很熟悉需要的可以发消息给我,买片子也没问题,价格不会超过30的。我的email:chinafpga@163.com。现在即将推出:Astro II代,我看了他们给我的大概介绍:里面的双端口RAM增大了,为32K byte,可以不需要外扩SRAM了,这样一片就可以解决了。管教是100脚QFP的不变,目前已在中芯国际流片成功,11年第一季度供货。 围观的朋友看我的帖子,有详细的资料下载:目前没有II代的。 http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4449410&bbs_page_no=1&search_mode=3&search_text=weeren&bbs_id=9999

用户1635223 2010-12-26 14:25

楼主,可否推荐一下在哪里卖?顺便给点实际效果图出来,让我们这么期待的人开开眼撒。或者做点开发板之类的推广一下就好了

ilove314_323192455 2010-12-23 22:29

在路上……

用户1417837 2010-12-23 20:59

特权同学怎么玩起国产FPGA了?呵呵 NIOS2教程不继续了?
相关推荐阅读
特权ilove314 2016-06-30 21:16
例说FPGA连载6:FPGA开发所需的技能
例说FPGA连载6:FPGA开发所需的技能 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   前面的文字已经做了很多铺垫,相信读...
特权ilove314 2016-06-28 21:09
例说FPGA连载5:FPGA的优势与局限性
例说FPGA连载5:FPGA的优势与局限性 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   若要准确评估FPGA技术能否满足开...
特权ilove314 2016-06-28 21:05
例说FPGA连载5:FPGA的优势与局限性
例说FPGA连载5:FPGA的优势与局限性 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   若要准确评估FPGA技术能否满足开...
特权ilove314 2016-06-26 22:11
例说FPGA连载4:FPGA语言与厂商介绍
例说FPGA连载4:FPGA语言与厂商介绍 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   Verilog与VHDL 说到FP...
特权ilove314 2016-06-23 21:26
例说FPGA连载3:FPGA与其它主流芯片的比较
例说FPGA连载3:FPGA与其它主流芯片的比较 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   FPGA、ASIC和ASSP...
特权ilove314 2016-06-21 20:32
例说FPGA连载2:FPGA是什么
例说FPGA连载2:FPGA是什么 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   2015年伊始,Intel欲出资百亿美金收...
我要评论
5
12
关闭 站长推荐上一条 /2 下一条