关于K7中是否每一组MGT接口都可以接10G SFP的试验

66 篇文章 22 订阅
58 篇文章 27 订阅

在做新的一版SDR平台时候有一个疑问就是,就是关于K7高速口的分配,要用到6组高速口接SFP,其中QSFP占用4对,单路SFP两个占用两对。这些高速对是否可以任意分配到高速口上呢,这就是接下来试验要解决的问题。

首先从已经有的经验,之前做PCIEX4时候那高速线是可以任意成组分配的。一成组分配我们说的意思是,比如tx1_p,tx1_n,rx1_p,rx1_n这四根信号线可以对应的跟tx2_p,tx2_n,rx2_p,rx2_n一一交换,并且一交换就要交换四根 。

我这里利用现有一个用到7K325的10G光口项目,用到了两路光口,我就分别将这两路尝试连接7K325的8组高速接口上,看是否编译通过并且生产最终的bit流文件。


下面是完整的XDC约束文件:


set_property PACKAGE_PIN F6 [get_ports ref_clk_p0]

create_clock -period 6.400 -name ethclk0 -waveform {0.000 3.200} [get_ports ref_clk_p0]

set_property PACKAGE_PIN G12 [get_ports tx_disable0]
set_property IOSTANDARD LVCMOS25 [get_ports tx_disable0]

set_property PACKAGE_PIN J13 [get_ports tx_disable1]
set_property IOSTANDARD LVCMOS25 [get_ports tx_disable1]

# set_property PACKAGE_PIN A4 [get_ports mgt_tx_p0]
# set_property PACKAGE_PIN B2 [get_ports mgt_tx_p1]

set_property PACKAGE_PIN D2 [get_ports mgt_tx_p0]
set_property PACKAGE_PIN F2 [get_ports mgt_tx_p1]

set_property PACKAGE_PIN A15 [get_ports led_up]
set_property IOSTANDARD LVCMOS25 [get_ports led_up]
set_property PACKAGE_PIN B12 [get_ports led_dwn]
set_property IOSTANDARD LVCMOS25 [get_ports led_dwn]
 
set_false_path -from [get_pins {tengbaser_infra0_inst/ten_gig_eth_pcs_pma_core_support_layer_i/ten_gig_eth_pcs_pma_shared_clock_reset_block/reset_pulse_reg[0]/C}] -to [get_pins {tengbaser_infra0_inst/ten_gig_eth_pcs_pma_core_support_layer_i/ten_gig_eth_pcs_pma_shared_clock_reset_block/gttxreset_txusrclk2_sync_i/sync1_r_reg*/PRE}]
#set_clock_groups -name asyncclocks_eth0_usr_clk -asynchronous -group [get_clocks -of_objects [get_cells -hierarchical -filter {name=~*clk_counter*}]] -group [get_clocks -include_generated_clocks ref_clk_p0_CLK]
set_property CONFIG_VOLTAGE 2.5 [current_design]
set_property CFGBVS VCCO [current_design]
set_property BITSTREAM.CONFIG.CONFIGRATE 33 [current_design]
set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]
set_property BITSTREAM.CONFIG.SPI_32BIT_ADDR Yes [current_design]
set_property BITSTREAM.CONFIG.TIMER_CFG 2000000 [current_design]
set_property BITSTREAM.CONFIG.CONFIGFALLBACK ENABLE [current_design]


set_false_path -from [get_pins {tengbaser_infra0_inst/ten_gig_eth_pcs_pma_core_support_layer_i/ten_gig_eth_pcs_pma_shared_clock_reset_block/reset_pulse_reg[0]_replica/C}] -to [get_pins {tengbaser_infra0_inst/ten_gig_eth_pcs_pma_core_support_layer_i/ten_gig_eth_pcs_pma_shared_clock_reset_block/gttxreset_txusrclk2_sync_i/sync1_r_reg[*]/PRE}]

其中我就是修改下图中红框的两个tx_p的引脚号,之后进行编译看是否成成BIT流文件的。

这里为什么没有设置mgt_tx_n0和mgt_tx_n1以及接受通道呢,道理很简单,高速差分对是确定的,指定差分对的一个,就指定了这个收发器,指定了这个收发器也就确定了rx_p,rx_n,tx_p,tx_n。

编译时间太长,等待编译出结果之后我再续写

 下班后就回家了,远程看了看编译通过顺利生成BIT流文件。最终的结论是:每一组GTX收发器都可以接10G SFP光口。

上图是远程查看编译结果。

{{aAxvOXMOIvVUoXMxvoxiowMwWV8xxWTxoxOIOVIUUOvwVOUiIoUvvTMMVMwovWHWX8vOUOwvv8TovIoiUHMx8ovwmIOoWwHXoxTmMwIVioXoH8vVHOMoiHIoVU8VvmvIWXTvvOvv8xvMovOWMWOwUWiX8UmooOTvvwUIoTwvmWUoiTw8VmvoHWwMIUWOixiowiUoiXwiwwMMIiIXHwUmOWUVmXXwV8iHWOTUiwTU8xwOoV8HVmTWZz}}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一些关于用Verilog编程实现MGT接口的指导。 MGT(Multi-Gigabit Transceiver)接口是一种高速串行通信接口,用于在FPGA和外部设备(如其他FPGA、ASIC、DSP等)之间传输高速数据。MGT接口通常用于高速数据传输和通信领域,例如光纤通信、高速网络以及高速存储系统等。 下面是一些用Verilog编写MGT接口的基本步骤: 1. 定义输入和输出端口:定义MGT接口的输入和输出端口,包括时钟、数据和控制信号等。 2. 设计时钟模块:设计一个时钟模块,用于生成MGT接口所需的时钟信号。时钟信号的频率通常是接口传输速率的几倍。 3. 设计发送模块:设计一个发送模块,用于将数据发送到MGT接口。发送模块通常包括数据缓冲区、控制逻辑和串行转并行器等。 4. 设计收模块:设计一个收模块,用于从MGT接口收数据。收模块通常包括数据缓冲区、控制逻辑和并行转串行器等。 5. 编写仿真测试台:使用Verilog编写仿真测试台,测试您的设计是否符合要求。在仿真测试台,您可以模拟各种测试用例,以确保您的MGT接口设计能够正常工作。 需要注意的是,MGT接口的设计和实现需要一定的基础知识和经验。如果您是初学者,建议先学习Verilog语言的基本语法和数字电路设计的基本原理,以便更好地理解和编写MGT接口。 希望这些信息对您有所帮助,如果您有更多的问题,请随时提出。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值