如果将Stratix II GX收发器通道配置为SONET OC12协议模式,为什么它的数据速率不正确?

当您使用来自专用refclk引脚的155.52 MHz时钟输入配置SONET OC12协议的Stratix®IIGX收发器通道时,Quartus®II软件不会实例化所需的refclk预分频器,以便以SONET OC12数据速率运行通道(622 Mbps)。由于未实例化refclk预分频器,因此SONET OC12通道的运行速率是数据速率的两倍(1244 Mbps)。

此问题仅存在于Quartus II软件版本7.0,7.1和7.1 SP1中,并从Quartus II软件7.2开始修复。

有两种方法可以解决Quartus II软件7.0,7.1和7.1 SP1中的这个问题,具体取决于设计。解决方法1适用于使用动态通道和TXPLL重配置功能的设计(由ALT2GXBMegaWizard®插件中的启用通道和TX PLL重配置选项启用 )。解决方法2适用于使用动态通道重新配置的设计(通过ALT2GXB MegaWizard插件的Reconfig页面上的Use alternate reference clock选项启用)或不使用任何动态重新配置。

解决方法1 -对于在Quartus II软件版本7.0,7.1和7.1 SP1中使用动态通道和TXPLL重配置功能的设计。

在MegaWizard生成的SONET OC12协议alt2gxb实例的包装文件中,将enable_pll_inclk< x >_divider参数(其中x为0,1,2,3或4)修改为true ,用于连接到refclk引脚的相应时钟输入提供155.52 MHz的时钟频率。例如,如果SONET OC12 ALT2GXB MegaWizard实例中的时钟输入1连接到提供155.52 MHz时钟的refclk引脚,则将enable_pll_inclk1_dividertrue 。当您编译修改后的alt2gxb实例时,此更改使Quartus II软件能够为clock1输入创建refclk预分频器。

对于连接到相同155.52 MHz时钟输入的所有实例,在alt2gxb MegaWizard生成的包装文件中将enable_pll_inclk< x >_divider参数更改为true 。例如,如果任何其他alt2gxb实例的clock2输入端口连接到提供155.52 MHz的refclk引脚,请在相应的包装器文件中将enable_pll_inclk2_divider更改为true

进行上述修改后,为所有已修改的实例重新生成内存初始化文件( .mif )。

要仿真设计,请使用Quartus II EDA Netlist Writer生成收发器模型仿真文件(.vo for Verilog HDL,.vho for VHDL),而不是使用alt2gxb MegaWizard插件。您必须使用EDA Netlist Writer,因为alt2gxb MegaWizard插件生成的功能仿真模型不包含enable_pll_inclk<x>_divider参数。 EDA Netlist Writer在仿真模型文件(.vo或.vho)中创建refclk预分频器。使用以下步骤生成仿真模型文件:

  1. 在“任务”菜单上,选择“设置”
  2. EDA工具设置下 ,选择仿真
  3. 选择第三方仿真工具的工具名称
  4. 输出网表格式列表中,根据您的要求选择VHDL或Verilog。
  5. 在“ 输出目录”字段中,指定.vo或.vho文件的目录。
  6. 单击“ 更多设置”并将“ 仅为功能仿真生成网表 设置为“ 开”
  7. 编译包含alt2gxb和alt2gxb_reconfig实例的设计的顶级模块。
  8. 注意:您必须连接alt2gxb和alt2gxb_reconfig实例之间的reconfig_fromgxbreconfig_togxb端口。否则,Quartus II软件会删除这些端口,生成的.vo或.vho仿真模型文件无法正常工作。

解决方法2 -对于使用动态通道重配置或不使用任何动态重配置的设计,请参见Quartus II软件版本7.0,7.1和7.1 SP1。

将以下Verilog代码添加到您的设计中以添加refclk预分隔符。将refclk预分频器实例的输入端口连接到提供155.52 MHz时钟输入的refclk引脚。将输出端口连接到使用此155.52 MHz时钟输入的所有 alt2gxb实例。

//refclk divider Verilog code for Workaround 2

模块my_refclk_div(in,out);
输入;
输出;
stratixiigx_hssi_refclk_divider my_refclk_divider(
.inclk(在),
.clkout(出));
defparam my_refclk_divider.enable_divider =“true”;
defparam my_refclk_divider.divider_number = 0;
defparam my_refclk_divider.refclk_coupling_termination =“normal_100_ohm_termination”;
endmodule

如果您的设计有任何其他收发器通道实例使用来自与SONET OC12 alt2gxb实例相同的refclk引脚的155.52 MHz时钟输入,请更改什么是输入时钟频率?在alt2gxb MegaWizard插件的General页面上设置为77.76 MHz。

此步骤是必需的,因为当refclk预分频器添加到时钟路径时,使用相同155.52 MHz时钟输入的任何通道仅接收77.76 MHz输入参考时钟频率。例如,如果您使用相同的155.52 MHz时钟输入将BASIC模式下的任何通道配置为以2488 Mbps运行,请设置输入频率是多少?到77.76 MHz。

如果启用了通道重新配置功能,请为所有已修改的实例重新生成内存初始化文件( .mif )。

您可以使用ALT2GXB MegaWizard插件生成的仿真模型文件(.vo或.vho)来仿真设计。

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-08-02 13:35:15 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它