出于功耗的考虑,易灵思在存储方面提供了对hyperram的支持。在hyperram中使用中有些需要注意的,我们在这里稍做总结 。
(1)IP设置
(2)IO时钟域设置
Hyperram的IO总共有三个时钟域,分别为hbramClk,hbramClk90,hbramClk_cal.并且要注意时钟是否反向。在hyperram的文档中提供了每个IO的时钟使用情况。请参考下图:
(3)自动校准。
注意calibration mode选择PLLAutoCalibration.自动校准就是控制器控制hbc_cal_SHIFT_ENA,hbc_cal_SHIFT_SEL和hbc_cal_SHIIF来实现校正。它们分别对应PLL的SHIFT,SHIFT_SEL和SHIFT_ENA信号。
自动校准的可以通过hbc_cal_debug_info来得到。通过Bit[15:8]来判断找到的相位有哪些。bit[7:5]是用于指示选择的是那个相位。另外要注意RDO delay值,可以获取用于手动校准设计。
(4)手动校准
1、在IP中选择PLL Manual Calibration手动校准。然后编译
2、通过手动调节dyn_pll_shase_en和dyn_pll_phase_sel,这两个通过hbc_cal_SHIFT_ENA和hbc_cal_SHIIF传给PLL(看起来没有必须通过控制器传输的必要),hbc_cal_SHIFT_SEL是在Hyperram控制器中选择的PLL对应的输出。
其中dyn_pll_phase_en是使能信号,dyn_pll_phase_sel是step选择信号选择信号。
建议在资源充足的情况下使用自动校准。如果资源紧张可以先进行自动校准获取相应参数值,再用手动校准设置相应参数。
(5)PLL设置
- 时钟设置如下,注意hbramClk90移相90度。
简单点说就是Fpll的频率要是输出时钟频率的4倍。
以下是ds上提供的参考设置:
如果两个相位之间是45度会有hyper_ram_rule_cali_clk phase_shift_coverage告警信息:
The recommended phase shift step for the Calibration Clock is 45 degrees. Current: 15.0000 degrees
(6)效率测试
以下是用hyperram测试的效率情况,仅供参考。
没有回复内容