GTHE3开发记录2

使用Kinex7 Ultrascale系列的芯片建立工程,然后使用UltraScale FPGAs Transceivers Wizard IP Core的默认设置(32bits收发原数据的Start from scratch)打开Example Design工程。分析如下:

top模块:

1. 输入输出信号:

  • mgtrefclk0_x0y3_p/n : IP GUI界面的Actual Reference Clock(64.453125MHz),与Line Rate(10.3125GHz)为1/160的关系。
  • ch0_gthtxp/n_out : 高速串口数据通道的输出接口,例程中将此输出接口接输入接口做测试。
  • ch0_gthrxp/n_in : 高速串口数据通道的输入接口。
  • hb_gtwiz_reset_clk_freerun_in : 外部free run的时钟,默认设置为250MHz。
  • hb_gtwiz_reset_all_in : 全复位信号,持续置高5us后在free run时钟的上升沿置低。
  • link_status_out : 链路状态标志位,为高表示链路OK
  • link_down_latched_reset_in : 初始为低,在link_status_out为高后用free run时钟计数2048个周期(约8us)后置高后,置高2.5个free run时钟周期后置低。

2. wrapper外围

2.1时钟处理

  • free run时钟经过一个BUFG变为全局时钟。
  • 差分参考时钟经过一个IBUFDS_GTE3变为单端信号。(IBUFDS_GTE3在ug576中有说明)

2.2 数据生成

在gtwizard_ultrascale_0_example_stimulus_raw模块中使用usrclk2(example wrapper提供,仿真结果为322.27MHz)生成一个32bits的PRBS(伪随机二进制序列)作为userdata_tx_in给example wrapper

2.3 PRBS链路匹配

在prbs_error_any_sync不为1的情况下连续68个free run时钟后进入link-up状态(即顶层输出端口的link_status_out置高),在PRBS mistach符合一定条件的情况下进入link-down状态
顶层输出端口的link_down_latched_out信号初始置高,在顶层输入端口link_down_latched_reset_in置高或VIO输出的某管脚置高的情况下,link_down_latched_out置低,在link-down状态后置高。

2.4 初始化期间复位机制

gtwizard_ultrascale_0_example_init模块检测gtwiz_reset_tx_done_int、gtwiz_reset_rx_done_int与sm_link信号,在先后初始化成功TX、RX链路后开始监控RX链路与link-up状态,任意一方出现异常即重新初始化TX、RX链路。

2.5 VIO相关

其他多为为了使用VIO而将一些信号与free run时钟同步的模块,VIO可以控制TX、RX链路的全部复位与部分复位

3. Wrapper内部(IP Core除外)

默认设置的wrapper分为三部分:TX user clocking network、RX user clocking network与IP Core。user clocking network内部调用BUFG_GT(G级别收发器时钟专用)根据设置的需求将其分频(1-8分频)后供其他地方使用,同时将复位信号同步至各自的时钟域。

4. IP Core内部

4.1 例化参数

  • C_CHANNEL_ENABLE :192’h1000。top文件开始处有一个gtwizard_ultrascale_0_MAX_NUM_CHANNELS宏定义为192,猜测是Xilinx设置的ultrascale系列芯片支持的最多对通道数为192
  • C_PCIE_ENABLE : 0
  • C_PCIE_CORECLK_FREQ : 250
  • C_COMMON_SCALING_FACTOR : 1
  • C_CPLL_VCO_FREQUENCY : 2578.125
  • C_FORCE_COMMONS : gtwizard_ultrascale_0_FORCE_COMMONS__DO_NOT_FORCE(0)
  • C_FREERUN_FREQUENCY : 250
  • C_GT_TYPE : gtwizard_ultrascale_0_GT_TYPE__GTHE3(0)
  • C_GT_REV : 17
  • C_INCLUDE_CPLL_CAL : gtwizard_ultrascale_0_INCLUDE_CPLL_CAL__DEPENDENT(2)
  • C_USER_GTPOWERGOOD_DELAY_EN : 0
  • C_SIM_CPLL_CAL_BYPASS : 0
  • C_LOCATE_COMMON : gtwizard_ultrascale_0_LOCATE_COMMON__CORE(0)
  • C_LOCATE_RESET_CONTROLLER : gtwizard_ultrascale_0_LOCATE_RESET_CONTROLLER__CORE(0)
  • C_LOCATE_USER_DATA_WIDTH_SIZING : gtwizard_ultrascale_0_LOCATE_USER_DATA_WIDTH_SIZING__CORE(0)
  • C_LOCATE_RX_BUFFER_BYPASS_CONTROLLER : gtwizard_ultrascale_0_LOCATE_RX_BUFFER_BYPASS_CONTROLLER__CORE(0)
  • C_LOCATE_IN_SYSTEM_IBERT_CORE : gtwizard_ultrascale_0_LOCATE_IN_SYSTEM_IBERT_CORE__NONE(2)
  • C_LOCATE_RX_USER_CLOCKING : gtwizard_ultrascale_0_LOCATE_RX_USER_CLOCKING__EXAMPLE_DESIGN(1)
  • C_LOCATE_TX_BUFFER_BYPASS_CONTROLLER : gtwizard_ultrascale_0_LOCATE_TX_BUFFER_BYPASS_CONTROLLER__CORE(0)
  • C_LOCATE_TX_USER_CLOCKING : gtwizard_ultrascale_0_LOCATE_TX_USER_CLOCKING__EXAMPLE_DESIGN(1)
  • C_RESET_CONTROLLER_INSTANCE_CTRL : gtwizard_ultrascale_0_RESET_CONTROLLER_INSTANCE_CTRL__SINGLE_INSTANCE(0)
  • C_RX_BUFFBYPASS_MODE : gtwizard_ultrascale_0_RX_BUFFBYPASS_MODE__AUTO(0)
  • C_RX_BUFFER_BYPASS_INSTANCE_CTRL : gtwizard_ultrascale_0_RX_BUFFER_BYPASS_INSTANCE_CTRL__SINGLE_INSTANCE(0)
  • C_RX_BUFFER_MODE : gtwizard_ultrascale_0_RX_BUFFER_MODE__USE(1)
  • C_RX_CB_DISP : 0
  • C_RX_CB_K : 0
  • C_RX_CB_MAX_LEVEL : 1
  • C_RX_CB_LEN_SEQ : 1
  • C_RX_CB_NUM_SEQ : 0
  • C_RX_CB_VAL : 0
  • C_RX_CC_DISP : 0
  • C_RX_CC_ENABLE : gtwizard_ultrascale_0_RX_CC_ENABLE__DISABLED(0)
  • C_RESET_SEQUENCE_INTERVAL : 0
  • C_RX_CC_K : 0
  • C_RX_CC_LEN_SEQ : 1
  • C_RX_CC_NUM_SEQ : 0
  • C_RX_CC_PERIODICITY : 5000
  • C_RX_CC_VAL : 0
  • C_RX_COMMA_M_ENABLE : gtwizard_ultrascale_0_RX_COMMA_M_ENABLE__DISABLED(0)
  • C_RX_COMMA_M_VAL : 10’b1010000011
  • C_RX_COMMA_P_ENABLE : gtwizard_ultrascale_0_RX_COMMA_P_ENABLE__DISABLED(0)
  • C_RX_COMMA_P_VAL :10’b0101111100
  • C_RX_DATA_DECODING : gtwizard_ultrascale_0_RX_DATA_DECODING__RAW(0)
  • C_RX_ENABLE : gtwizard_ultrascale_0_RX_ENABLE__ENABLED(1)
  • C_RX_INT_DATA_WIDTH : 32
  • C_RX_LINE_RATE : 10.3125
  • C_RX_MASTER_CHANNEL_IDX : 12
  • C_RX_OUTCLK_BUFG_GT_DIV : 1
  • C_RX_OUTCLK_FREQUENCY : 322.265625
  • C_RX_OUTCLK_SOURCE : gtwizard_ultrascale_0_RX_OUTCLK_SOURCE__RXOUTCLKPMA(1)
  • C_RX_PLL_TYPE : gtwizard_ultrascale_0_RX_PLL_TYPE__QPLL0(0)
  • C_RX_RECCLK_OUTPUT : 0
  • C_RX_REFCLK_FREQUENCY : 64.453125
  • C_RX_SLIDE_MODE : gtwizard_ultrascale_0_RX_SLIDE_MODE__OFF(0)
  • C_RX_USER_CLOCKING_CONTENTS : gtwizard_ultrascale_0_RX_USER_CLOCKING_CONTENTS__BUFG_GT(0)
  • C_RX_USER_CLOCKING_INSTANCE_CTRL : gtwizard_ultrascale_0_RX_USER_CLOCKING_INSTANCE_CTRL__SINGLE_INSTANCE(0)
  • C_RX_USER_CLOCKING_RATIO_FSRC_FUSRCLK :1
  • C_RX_USER_CLOCKING_RATIO_FUSRCLK_FUSRCLK2 :1
  • C_RX_USER_CLOCKING_SOURCE : gtwizard_ultrascale_0_RX_USER_CLOCKING_SOURCE__RXOUTCLK(0)
  • C_RX_USER_DATA_WIDTH : 32
  • C_RX_USRCLK_FREQUENCY : 322.265625
  • C_RX_USRCLK2_FREQUENCY : 322.265625
  • C_SECONDARY_QPLL_ENABLE : gtwizard_ultrascale_0_SECONDARY_QPLL_ENABLE__DISABLED(0)
  • C_SECONDARY_QPLL_REFCLK_FREQUENCY : 257.8125
  • C_TOTAL_NUM_CHANNELS : 1
  • C_TOTAL_NUM_COMMONS : 1
  • C_TOTAL_NUM_COMMONS_EXAMPLE : 0
  • C_TXPROGDIV_FREQ_ENABLE : gtwizard_ultrascale_0_TXPROGDIV_FREQ_ENABLE__DISABLED(0)
  • C_TXPROGDIV_FREQ_SOURCE : gtwizard_ultrascale_0_TXPROGDIV_FREQ_SOURCE__QPLL0(0)
  • C_TXPROGDIV_FREQ_VAL : 322.265625
  • C_TX_BUFFBYPASS_MODE : gtwizard_ultrascale_0_TX_BUFFBYPASS_MODE__AUTO(0)
  • C_TX_BUFFER_BYPASS_INSTANCE_CTRL : gtwizard_ultrascale_0_TX_BUFFER_BYPASS_INSTANCE_CTRL__SINGLE_INSTANCE(0)
  • C_TX_BUFFER_MODE : gtwizard_ultrascale_0_TX_BUFFER_MODE__USE(1)
  • C_TX_DATA_ENCODING : gtwizard_ultrascale_0_TX_DATA_ENCODING__RAW(0)
  • C_TX_ENABLE : gtwizard_ultrascale_0_TX_ENABLE__ENABLED(1)
  • C_TX_INT_DATA_WIDTH : 32
  • C_TX_LINE_RATE : 10.315
  • C_TX_MASTER_CHANNEL_IDX : 12
  • C_TX_OUTCLK_BUFG_GT_DIV : 1
  • C_TX_OUTCLK_FREQUENCY : 322.265625
  • C_TX_OUTCLK_SOURCE : gtwizard_ultrascale_0_TX_OUTCLK_SOURCE__TXOUTCLKPMA(1)
  • C_TX_PLL_TYPE : gtwizard_ultrascale_0_TX_PLL_TYPE__QPLL0(0)
  • C_TX_REFCLK_FREQUENCY : 64.453125
  • C_TX_USER_CLOCKING_CONTENTS : gtwizard_ultrascale_0_TX_USER_CLOCKING_CONTENTS__BUFG_GT(0)
  • C_TX_USER_CLOCKING_INSTANCE_CTRL : gtwizard_ultrascale_0_TX_USER_CLOCKING_INSTANCE_CTRL__SINGLE_INSTANCE(0)
  • C_TX_USER_CLOCKING_RATIO_FSRC_FUSRCLK :1
  • C_TX_USER_CLOCKING_RATIO_FUSRCLK_FUSRCLK2 :1
  • C_TX_USER_CLOCKING_SOURCE : gtwizard_ultrascale_0_TX_USER_CLOCKING_SOURCE__TXOUTCLK(0)
  • C_TX_USER_DATA_WIDTH : 32
  • C_TX_USRCLK_FREQUENCY : 322.265625
  • C_TX_USRCLK2_FREQUENCY : 322.265625
    这一节先写到这里吧,留着参数也好作为一个单独页面打开参考
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值