试用手记:为国产FPGA正名(三,存储器)
时间:05-25
来源:互联网
点击:
最终生产模式:
不外挂存储器,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。然后使用上一篇手记同样的方法改变硬核的频率进行测试。
结果证明,51硬核的频率受制于指令的读取速度,那么在SPI FLASH模式下速度性能确实大打折扣。
不外挂存储器,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 | 约1.63us | 约0.83us | 约7.5us | 约7.5us |
结果证明,51硬核的频率受制于指令的读取速度,那么在SPI FLASH模式下速度性能确实大打折扣。
- 基于FPGA的高速图像采集系统设计(03-30)
- 基于FPGA/CPLD和USB技术的无损图像采集卡(09-01)
- 利用FPGA IP平台引进微控制器系统级芯片(10-03)
- 基于Actel Fusion FPGA的无刷电机控制器(11-08)
- 在FPGA上对OC8051 IP核的修改与测试(11-08)
- NiosⅡ和USB接口的高速数据采集卡设计(11-08)