如果编译设计中的 ALT2GXB Megawi® 插件管理器实例化具有以下配置,则会发生下列 fitter 错误。该通道为全双工或仅接收,已启用通道内部或通道接口,ALT2GXB Megawiputd 中指定的输入时钟频率大于 325 MHz。此错误不适用于仅 TX 配置。
Quartus® II 软件 fitter 错误:"GXB REFCLK 分压器在信号"rx_cruclk[0]后无法添加,因为它馈送 GXB 接收器通道 alt2gxb:alt2gxb_component|channel_rec[0].receive",使用通道接口或通道内部重新配置"
要解决此错误,请使用以下程序。
1. 将 ALT2GXB Megawiputd 中的输入时钟频率(>325 MHz)更改为值的一半。
2. 在设计中实例化 REFCLK 分压器代码(如下所示),并将 REFCLK 分压器输出连接到 ALT2GXB 时钟输入端口。
对于双工配置,将 REFCLK 分压器输出连接到 ALT2GXB 时钟输入端口。 如果 ALT2GXB Megawiscreend 的"通用"屏幕中的指定输入时钟频率大于 325MHz,则将 REFCLK 分压器输出连接到 ALT2GXB 实例化的"pll_inclk"和"rx_cruclk"端口。如果在"RECONFIG"屏幕上指定了上述频率,则将 REFCLK 分压器输出连接到"pll_inclk_alt"和"rx_cruclk_alt"端口。
例如,如果您有全双工配置,并且在 ALT2GXB Megawi rx_cruclk 的"通用"屏幕上指定了 390.625 MHz,则将频率更改为 195.3125 MHz,并将 REFCLK 分压器输出连接到 ALT2GXB 的pll_inclk和rx_cruclk端口。
对于仅接收的 ALT2GXB 实例化,将 Megawiazd 中的输入频率(>325 MHz)更改为值的一半,然后根据 Megawi"屏幕上的输入参考时钟频率设置将 REFCLK 分压器输出连接到rx_cruclk或rx_cruclk_alt端口。
以下是 Verilog 和 VHDL 中的 REFCLK 分压器代码示例。
时钟事业部------ Verilog 代码---------
模块my_refclk_div(入、出);
输入;
输出输出;
stratixiigx_hssi_refclk_divider my_refclk_divider (
.inclk(in)
.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
-----端
--时钟事业部 VHDL 代码----
LIBRARY ieee;
使用ieee.std_logic_1164.all;
实体my_refclk_divider为
港口
(
公司:in std_logic;
outclk: out std_logic
);
最后 my_refclk_divider;
架构clock_div my_refclk_divider是
组件stratixiigx_hssi_refclk_divider IS
通用 (
enable_divider:STRING:= "true";
divider_number:INTEGER:= 0; -- 0 或 1 用于逻辑编号
refclk_coupling_termination:STRING:= "normal_100_ohm_termination"
);
端口(
公司:IN STD_LOGIC;
clkout: OUT STD_LOGIC);
最终组件stratixiigx_hssi_refclk_divider;
开始
clk_divider:stratixiigx_hssi_refclk_divider
端口地图
(
inclk => inclk,
clkout => outclk
);
最终架构;