Skip to content

Missing (or undocumented?) support for derived clocks #390

Open
@millerresearch

Description

@millerresearch

I have an ice40 design with a cpu running at 50MHz and an sdram controller running at 100MHz. The clocks are generated from the same PLL using GENCLK and GENCLK_HALF parameters and global buffers, so I'm expecting them to have minimal skew. After place & route, nextpnr reports timing PASS in spite of delays of 14+ nsec on clock-crossing paths. I'm assuming this means the clocks are being treated as asynchronous. I can insert synchronising FFs into the memory request/response handshake path, but that's a big latency cost. Is there any way to constrain nextpnr so that it will try to keep paths between the derived clock domains within the delay limit of the faster clock, and also ensure that setup+hold times are safe?

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions