Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ExaNIC_X10 #188

Open
SrodinW opened this issue Jan 16, 2024 · 4 comments
Open

ExaNIC_X10 #188

SrodinW opened this issue Jan 16, 2024 · 4 comments

Comments

@SrodinW
Copy link

SrodinW commented Jan 16, 2024

hi, i'm trying use this project for 1 sfp channel. And my phy-layer not get up. there is i have some quations about ip(gtwizard):

  1. If i create ip, i should create only channel or common, or channel and common( i choose in structural options all include from core or smth should be from example?)
  2. if i use only 1 sfp then COUNT in eth_xcvr_phy_quad_wrapper.v should be 1
  3. why in your project in xdc mgt_refclk 161,13 but in verilog file fpga.v 156,25?
    because async gearbox 64|66b, then free-running clk should be 156, 25 or 125?

And you use 156,25 from ip, but i configurate it's from SI generator on i2c? i should do reset gt after i configurate clk from si ?

thank you for your work and help.

@alexforencich
Copy link
Owner

The current X10 code should use tcl scripts to generate the GT cores. The script generates two cores, one with the QPLLs for the first channel and one without for the additional channels. For one SFP+, you'll need the "full" instance only, but the wrapper will figure that out automatically, just set the count to 1. Make sure the ref clock freq matches between HW and the TCL scripts - either 156 or 161 works, so if you have a reconfigurable osc that defaults to 156, then just adjust the TCL script to 156 and make sure the clock constraints are 6.4 ns instead of 6.206. The double check the clock summary in the timing report to make sure the frequencies are what you expect. And yes if you do need to poke the clock generator, you'll want to make sure the whole transceiver gets reset, including the QPLLs.

@SrodinW
Copy link
Author

SrodinW commented Jan 17, 2024

If i create GT core not from tcl, it will be different from your current project ?
I thought that if i use ref clk as 156, that pcs works on 161, and so i shiuld generate and 156, and 161...

@alexforencich
Copy link
Owner

You can create the core however you want. The TCL just makes it Vivado version independent, makes it east to change some of the settings, and makes it easy to generate two cores that are identical save for the "common" block.

The ref clock in principle doesn't really matter. The QPLLs multiply it up to half line rate, then the channel divides it down (tx/rx progdivclk). You just need to make sure that whatever clock you use, the QPLL multiplies it up to the correct frequency. Since the QPLLs have fractional dividers, you can run it from pretty much whatever ref clock you have - 161, 322, 644, 156, 312, 100, 125, etc.

@SrodinW
Copy link
Author

SrodinW commented Jan 17, 2024

Fine. I got it
thank you very much.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants