Giter Site home page Giter Site logo

timing issue on AU250 about corundum HOT 10 OPEN

corundum avatar corundum commented on July 24, 2024
timing issue on AU250

from corundum.

Comments (10)

Winters123 avatar Winters123 commented on July 24, 2024 1

Hey Alex, thanks for the tip about AU250. It actually met the timing with the placement constraints added. 👍 Guess I should do the same for vcu118 as well. Will update here if it works.

from corundum.

Winters123 avatar Winters123 commented on July 24, 2024 1

Hi Alex, just an update on vcu118. Timing constraints are met with placement constraints added (for my project, I only need to constraint the pcie-related part to make it work). And I think you're right about the placement issue in vivado on large boards.

from corundum.

alexforencich avatar alexforencich commented on July 24, 2024 1

yeah, I am going to be adding similar constraints to all of the multi-SLR parts. Just have to do some more vivado runs to make sure they all do what they're supposed to.

from corundum.

alexforencich avatar alexforencich commented on July 24, 2024

You might want to look in to doing some placement constraints. Vivado has had issues placing the design on some of the larger boards, including the U250. Sometimes the issues are SLR crossings, in some cases crossing multiple times, in other cases the issues are simply poor placement within an SLR. I added some additional constraints for the U250 in my copy here: https://github.com/alexforencich/corundum . Try those out and see if it helps. You may need to add some additional constraints. Also, FYI, the port and interface modules have been renamed.

from corundum.

Winters123 avatar Winters123 commented on July 24, 2024

That's great to hear. Thanks! I'm trying the current code with the new constraints to see if it helps.

I did find the same placement problem on vcu118 as well since some minor modifications of my own code resulted in some high path delays in other parts.

Thanks for reminding me of the rename. I wonder if this is just a rename or also involving some logic changes?

from corundum.

alexforencich avatar alexforencich commented on July 24, 2024

No logic changes in those modules, rename was done now because 'interface' is apparently a reserved word in system verilog and was causing trouble when running under cocotb. There will be extensive changes coming down the pipe, but I have been primarily working on rebuilding the testbenches to use cocotb instead of myhdl, once that is done then I will get back to working on the core logic.

from corundum.

Winters123 avatar Winters123 commented on July 24, 2024

Thanks for the tip. By the way, does the coming updates of the design include something that allows some sort of switch mechanism between ports/interfaces? As this may be a useful way to support things like NFV acceleration or so. (Its just a random wonder and I have no clue if it makes sense to others...)

from corundum.

alexforencich avatar alexforencich commented on July 24, 2024

The updates are mainly going to be around device support (Arria 10, Stratix 10 DX), variable-length descriptor support, and metadata support. Switching is not on the roadmap at the moment, at least in terms of what I am going to be working on personally. But, I would be happy to bounce ideas around for other potential features, either in the discussion section here, or on the mailing list.

from corundum.

happyPisces avatar happyPisces commented on July 24, 2024

@alexforencich
Hi Alex, I have also met timing issue when running corundum on NetFPGA SUME. I added some new placement constraints as flows,
create_pblock pblock_slr0
add_cells_to_pblock [get_pblocks pblock_slr0] [get_cells -quiet [list pcie3_7x_inst/inst]]
resize_pblock [get_pblocks pblock_slr0] -add {SLICE_X166Y319:SLICE_X221Y196}

create_pblock pblock_slr1
add_cells_to_pblock [get_pblocks pblock_slr1] [get_cells -quiet [list core_inst/dma_if_pcie_us_inst]]
add_cells_to_pblock [get_pblocks pblock_slr1] [get_cells -quiet [list core_inst/dma_if_mux_inst]]
resize_pblock [get_pblocks pblock_slr1] -add {SLICE_X118Y349:SLICE_X169Y150}

create_pblock pblock_slr2
add_cells_to_pblock [get_pblocks pblock_slr2] [get_cells -quiet [list sfp_1_pcs_pma_inst]]
resize_pblock [get_pblocks pblock_slr2] -add {SLICE_X171Y499:SLICE_X221Y475}

create_pblock pblock_slr3
add_cells_to_pblock [get_pblocks pblock_slr3] [get_cells -quiet [list core_inst/iface[1].interface_inst]]
resize_pblock [get_pblocks pblock_slr3] -add {SLICE_X106Y324:SLICE_X169Y125}

Some critical paths are eliminated, but some within dma_if_pcie_us_wr_inst and iface[1].interface_inst can still not meet the timing requirements. Do you have an updated version of constraints for NetFPGA?

from corundum.

alexforencich avatar alexforencich commented on July 24, 2024

The NetFPGA SUME needs a lot of work. The Virtex 7 FPGA on there is rather old and slow, and some of the changes that have been made since it was initially supported have not helped timing on that part. Once I get variable-length descriptors implemented along with a couple of other odds and ends, I may take another look at what the issue is with the NetFPGA. However, the part is quite a few years old, it might be a better idea to get a board with a newer, faster, and possibly even larger FPGA.

from corundum.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.