Hyperram使用指导-v1-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

Hyperram使用指导-v1

出于功耗的考虑,易灵思在存储方面提供了对hyperram的支持。在hyperram中使用中有些需要注意的,我们在这里稍做总结 。

(1)IP设置

图片[1]-Hyperram使用指导-v1-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

•Memory Operation Frequency:Hyperram运行时钟频率
•Memory Data Width :数据位宽
•Memory Size :Hyperram存储容量
•Calibration Mode :校准模式,测试demo选择的是Auto Cal
•Double Data Rate Input Mode :双沿数据的数据对齐方式
•User Interface :用户接口,有AXI3和local bus两种
•AXI3 Data Width :AXI3接口位宽
•AXI3 AWR Channel Words :地址通道FIFO深度
•AXI3 W Channel Words:写地址通道FIFO深度
•AXI3 R Channel Words:读地址通道FIFO深度

图片[2]-Hyperram使用指导-v1-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

•Deep Power Down :Hyperram正常运行为Normal,在不需要使用Hyperram时可以设置成Sleep,这时存储器内部数据丢失。
•Initial Latency Count:初始化潜伏期计数值,根据时钟频率确定。
•Output Drive Strength:DQ和RWDS输出驱动强度
•Hybrid Burst Enable:混合突发使能
•Clock Type :时钟类型,差分或者单端
•Partial Array Refresh:部分阵列刷新。
•Hybrid Sleep Enable :混合休眠使能,该模式下内部自刷新功能正常。


 

(2)IO时钟域设置

Hyperram的IO总共有三个时钟域,分别为hbramClk,hbramClk90,hbramClk_cal.并且要注意时钟是否反向。在hyperram的文档中提供了每个IO的时钟使用情况。请参考下图:

图片[3]-Hyperram使用指导-v1-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

(3)自动校准。

图片[4]-Hyperram使用指导-v1-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

注意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值,可以获取用于手动校准设计。

图片[5]-Hyperram使用指导-v1-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

(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对应的输出。

图片[6]-Hyperram使用指导-v1-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

其中dyn_pll_phase_en是使能信号,dyn_pll_phase_sel是step选择信号选择信号。

建议在资源充足的情况下使用自动校准。如果资源紧张可以先进行自动校准获取相应参数值,再用手动校准设置相应参数。

(5)PLL设置

Hyperram校正是通过调整PLL的相位来实现。
PLL的动态相位调整支持0~7共8个相位,两个相位之间的间隔是0.5Fpll时钟周期。所以对fpll的频率就有了要求,fpll又由VCO分频来产生。
Hyperram的校正要求8个相位要覆盖一个Hyperram的时钟周期,所以两个相位之间是45度。有下面的计算公式:
Single phase step coverage = (0.5 x Post Divider (O) x Final Clock Out) / VCO Frequency x 360
  • 时钟设置如下,注意hbramClk90移相90度。

图片[7]-Hyperram使用指导-v1-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

简单点说就是Fpll的频率要是输出时钟频率的4倍。

图片[8]-Hyperram使用指导-v1-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

以下是ds上提供的参考设置:

图片[9]-Hyperram使用指导-v1-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

如果两个相位之间是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测试的效率情况,仅供参考。

图片[10]-Hyperram使用指导-v1-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

 

请登录后发表评论

    没有回复内容