文章 ID: 000083603 内容类型: 故障排除 上次审核日期: 2013 年 08 月 01 日

为什么复位中断可能导致 UniPHY NIOS 定序器的低 Probablity 锁定,从而导致不完整的校准

环境

BUILT IN - ARTICLE INTRO SECOND COMPONENT
说明

UniPHY IP 在表明和分解 UniPHY IP 的global_reset_n或soft_reset_n信号低后,无法完成校准。EMIF 调试工具套件无法连接到该接口(将项目链接到设备)。即使稍后发布多个重置,此条件也不会更改。  此状况只能通过重新配置设备来恢复。

这些症状可能是由 EMIF UniPHY IP 的内部重置结构引起的。 对 M20K RAM 地址总线的逻辑进行异步重置,可能会导致异步逻辑传播。 这可能会影响 M20K 地址行/列解码器的功能,打开多个词行,可能导致比特蜂窝之间的充电共享,损坏 M20K 的内容。 请注意,由于异步重置,M20K 损坏的概率非常低。

M20k 读写操作期间的 PLL 重置也会导致嵌入式 RAM/ROM 损坏,因为 PLL 锁损可能会在重置过程中导致时钟故障,这可能会影响 M20K 地址行/列解码器的功能。

这种损坏会影响 UniPHY IP,因为它包含一个用于校准的Nios ® II 处理器,处理器的程序代码存储在 M20K RAM 中。 如果Nios ® II 程序内存中发生损坏,这可能会导致Nios ® II 定序器锁定,从而导致不完整的校准。 只有重新编程设备,才能从这种情况中恢复,因为 M20K 的内容仅在设备编程过程中加载。

请务必注意,下面列出的常见 EMIF 故障 不一定意味着 M20K RAM 已损坏或Nios ® II 排序器被锁定

- 如果校准从未通过(即校准总是失败)。

- 如果校准空间非常小,而且偶尔校准失败。

- 如果设计通过校准,在运行设计时偶尔会出现数据错误。

- 如果 Design 表示已通过校准,但设计无法按预期进行。

 

解决方法

UniPHY IP 内核有两个重置输入

Global_reset_n:连接 UniPHY IP 中的所有内容,包括 PLL。

Soft_reset_n:除了 PLL,它都连接到 UniPHY IP 中的所有事物。

1. Altera强烈建议您时刻仅使用soft_reset_n。 仅使用global_reset_n进行重置电源。

要在开机过程中重置 PLL,请使用以下顺序

a.     表明Global_reset_n(PLL 重置)

B。    启动电源并重新配置芯片

c. De-assert Global_reset_n

2. 该修复程序更改 UNIPHY IP 内核的内部重置控制器和重置结构,以使用同步重置,并在复位状态下先发制人地拆解 M20K clock_enable端口。 这会阻止任何亚稳定迁移传播到 M20K 地址解码器。

此修复程序将作为 13.0dp1、13.0sp1 和 Quartus 的所有后续版本提供。 用户需要重新生成 UnipHY IP 并重新编译设计。 Altera建议转到这些版本中的 Quartus 之一。

如果更紧急地需要修复,或者 Quartus 版本 12.1sp1 需要修复,则可以手动更新 UniPHY IP 内核。 必须遵循以下程序:

在设计中找到Altera UniPHY IP 的源文件。
有 5 个文件需要修改。

altera_reset_synchronizer.v

altera_reset_controller.v

altera_mem_if_sequencer_mem_no_ifdef_params.sv

_if0_p0_reset.v

_if0_s0.v

步骤

1. 从以下链接下载 altera-reset-synchronizer.v,并放置在与 UniPHY IP 源文件相同的目录中:Altera_reset_synchronizer.v

2. 从以下链接下载 altera-reset-controller.v ,并放置在与 UniPHY IP 源文件相同的目录中:Altera_reset_controller.v

3. 在 altera_mem_if_sequencer_mem_no_ifdef_params.sv 中 - 确保输入“s1_clken”连接到“the_altsyncram”的“clocken0”输入

4. 在实例中_if0_p0_reset.v – 修改“dut_if0_p0_reset_sync”实例的定义陈述,以便根据附加的示例文件 (dut_if0_p0_reset.v) 设置参数“RESET_SYNC_STAGES”和“NUM_RESET_OUTPUT”。(请勿在 UniPHY IP 源文件目录中下载示例文件)

dut-if0-p0-reset.v

5. In_if0_s0.v

(请勿在 UniPHY IP 源文件目录中dut_if0_s0.v 下载示例文件)

dut-if0-s0.v (_if0_s0.v 的示例文件)

– 将以下端口添加到最高级别:

电线early_rst_controller_reset_out_reset;

- 将“rst_controller”模块上的输出端口“m20k_gate”连接到“sequencer_mem”模块的“s1_clken”输入。 由于 M20k_gate 输出处于活动低位,因此需要反转输出,如下所示:

.s1_clken (~early_rst_controller_reset_out_reset),//在 sequencer_mem上,连接的示例文件 (dut_if0_s0.v) 第 785 行

.m20k_gate (early_rst_controller_reset_out_reset),//在rst_controller上,连接的样本文件第 2572 行

6. 完成这些更改后,需要重新编译您的设计。

 

相关产品

本文适用于 6 产品

Arria® V GZ FPGA
Stratix® IV GX FPGA
Arria® II GX FPGA
Stratix® V GX FPGA
Cyclone® V GX FPGA