element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Autodesk EAGLE
  • Products
  • More
Autodesk EAGLE
Forum So, here I want to know "how to route or fanout the ball grid array of spartan 7 fpga (XC7S100FGGA676) which has 676 pins?". Can anyone help me out?
  • Blog
  • Forum
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Autodesk EAGLE to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Suggested Answer
  • Replies 4 replies
  • Answers 4 answers
  • Subscribers 178 subscribers
  • Views 2849 views
  • Users 0 members are here
  • eagle
Related

So, here I want to know "how to route or fanout the ball grid array of spartan 7 fpga (XC7S100FGGA676) which has 676 pins?". Can anyone help me out?

krishna_teja
krishna_teja over 4 years ago

So, here I want to know "how to route or fanout the ball grid array of spartan 7 FPGA (XC7S100FGGA676 ) which has 676 pins?". Can anyone help me out?
Actually, I am using Autodesk Eagle version 9.1.0.

Attachments:
image
  • Sign in to reply
  • Cancel

Top Replies

  • rachaelp
    rachaelp over 4 years ago +5 suggested
    How many layers is your board? How much of the IO is used vs unused? What are any signal integrity requirements which will drive numbers of GND layers? First things first... Do NOT under any circumstances…
  • jc2048
    jc2048 over 4 years ago +3 suggested
    This might help you get started, if you haven't read it already https://www.xilinx.com/support/documentation/user_guides/ug1099-bga-device-design-rules.pdf
  • wolfgangfriedrich
    wolfgangfriedrich over 4 years ago +3 suggested
    Here is another good document to read: https://www.latticesemi.com/view_document?document_id=671 It is a 1mm ball pitch and not all signals are used (although 2 sides look pretty busy), so you might get…
Parents
  • rachaelp
    0 rachaelp over 4 years ago

    How many layers is your board? How much of the IO is used vs unused? What are any signal integrity requirements which will drive numbers of GND layers?

     

    First things first... Do NOT under any circumstances be tempted to try using the BGA autorouter as it's utterly garbage... I tried it and it was awful. I write a blog post on it here: https://www.element14.com/community/community/eagle/blog/2017/08/29/eagle-v8-taming-the-bga-router

     

    In that linked blog I do show you some basic manual breakout techniques which give an idea of how to start thinking about getting many traces out in minimal layers.

     

    Anyway. I've routed out a pretty busy one of these for a Kintex 7 in a 900 ball package. It was a 8-layer board initially with exclusively through vias, no blind or microvias, so the cost wasn't high.

     

    So there are a few things to do which make life easier and then things which you do before everything else. The following lists these things out.

     

    1) Get your BGA footprint right. The IPC generator in EAGLE/Fusion does fine, but go manually add solder paste/mask layer data as it relies on the built in generation which is useless for a BGA.

    2) Always use rounded pads on your components, including passives. This helps solderability and has the added bonus of allowing small passives to fit between the vias underneath the BGA.

    3) Confirm amount of decoupling you need. The Xilinx FPGA's actually have some decoupling embedded within the device itself so less is needed on the board which makes life easier. (e.g. https://www.xilinx.com/support/documentation/user_guides/ug483_7Series_PCB.pdf or https://www.xilinx.com/support/documentation/user_guides/ug583-ultrascale-pcb-design.pdf)

    4) Set your PCB grid to half the pitch of the BGA so I think these are 1mm parts off the top of my head so set your grid to 0.5mm.

    5) Set up the via size and default trace width. I used a 10mil drill and 18mil diameter which gives a 4mil annular ring. and a 6mil trace width for the breakout. The PCB house were happy with these sized vias limited to just the BGA breakout area.

    6) Use the fanout tool to breakout all the pins. Then curse as it's not grid aware and puts them all slightly off grid. Use the MOVE command with groups of left half, right half, upper half, lower half to shift them back onto the grid properly. Note, if you have a lot of unconnected IO pins and you want to provision for them to be connected in later you can ensure you have a breakout for them by putting a short wire on each unused pin in the schematic then the fanout tool will add a breakout for them.

    7) Add the GND fills on the layer(s) chosen. If you also have one or two contiguous power layers add these too at this point as it'll clean up visibility.

    8) Place your big bulk decoupling caps top side around the outside, place the small bypass caps underneath. You'll see now why I said use rounded pads as this actually gives just about enough clearance to squeeze in between the vias which makes life much easier. Plonk them down between PWR/GND vias and connect them straight in.

    9) Route your clocks out.

    10) Route any diff pairs out.

    11 ) Route any other critical nets out.

    12) Route the rest out.

     

    Below is an image showing the top layer, breakout, and bottom layer decoupling on one of my boards for the 900 ball variant.

     

    If you have any more specific questions let me know. The MOVE command line for getting the vias back on grid can be fiddly if you aren't used to using it so let me know if you get stuck with that.

     

    Best Regards,

     

    Rachael

    image

    • Cancel
    • Vote Up +5 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
Reply
  • rachaelp
    0 rachaelp over 4 years ago

    How many layers is your board? How much of the IO is used vs unused? What are any signal integrity requirements which will drive numbers of GND layers?

     

    First things first... Do NOT under any circumstances be tempted to try using the BGA autorouter as it's utterly garbage... I tried it and it was awful. I write a blog post on it here: https://www.element14.com/community/community/eagle/blog/2017/08/29/eagle-v8-taming-the-bga-router

     

    In that linked blog I do show you some basic manual breakout techniques which give an idea of how to start thinking about getting many traces out in minimal layers.

     

    Anyway. I've routed out a pretty busy one of these for a Kintex 7 in a 900 ball package. It was a 8-layer board initially with exclusively through vias, no blind or microvias, so the cost wasn't high.

     

    So there are a few things to do which make life easier and then things which you do before everything else. The following lists these things out.

     

    1) Get your BGA footprint right. The IPC generator in EAGLE/Fusion does fine, but go manually add solder paste/mask layer data as it relies on the built in generation which is useless for a BGA.

    2) Always use rounded pads on your components, including passives. This helps solderability and has the added bonus of allowing small passives to fit between the vias underneath the BGA.

    3) Confirm amount of decoupling you need. The Xilinx FPGA's actually have some decoupling embedded within the device itself so less is needed on the board which makes life easier. (e.g. https://www.xilinx.com/support/documentation/user_guides/ug483_7Series_PCB.pdf or https://www.xilinx.com/support/documentation/user_guides/ug583-ultrascale-pcb-design.pdf)

    4) Set your PCB grid to half the pitch of the BGA so I think these are 1mm parts off the top of my head so set your grid to 0.5mm.

    5) Set up the via size and default trace width. I used a 10mil drill and 18mil diameter which gives a 4mil annular ring. and a 6mil trace width for the breakout. The PCB house were happy with these sized vias limited to just the BGA breakout area.

    6) Use the fanout tool to breakout all the pins. Then curse as it's not grid aware and puts them all slightly off grid. Use the MOVE command with groups of left half, right half, upper half, lower half to shift them back onto the grid properly. Note, if you have a lot of unconnected IO pins and you want to provision for them to be connected in later you can ensure you have a breakout for them by putting a short wire on each unused pin in the schematic then the fanout tool will add a breakout for them.

    7) Add the GND fills on the layer(s) chosen. If you also have one or two contiguous power layers add these too at this point as it'll clean up visibility.

    8) Place your big bulk decoupling caps top side around the outside, place the small bypass caps underneath. You'll see now why I said use rounded pads as this actually gives just about enough clearance to squeeze in between the vias which makes life much easier. Plonk them down between PWR/GND vias and connect them straight in.

    9) Route your clocks out.

    10) Route any diff pairs out.

    11 ) Route any other critical nets out.

    12) Route the rest out.

     

    Below is an image showing the top layer, breakout, and bottom layer decoupling on one of my boards for the 900 ball variant.

     

    If you have any more specific questions let me know. The MOVE command line for getting the vias back on grid can be fiddly if you aren't used to using it so let me know if you get stuck with that.

     

    Best Regards,

     

    Rachael

    image

    • Cancel
    • Vote Up +5 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
Children
No Data
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube