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

Vivado CDC constraints #227

Merged
merged 19 commits into from Sep 24, 2019
Merged

Vivado CDC constraints #227

merged 19 commits into from Sep 24, 2019

Commits on Sep 20, 2019

  1. Xilinx specific MultiReg

    Vivado was inferring an SRL16 from a MultiReg in some cases
    dlharmon committed Sep 20, 2019
    Configuration menu
    Copy the full SHA
    139d764 View commit details
    Browse the repository at this point in the history

Commits on Sep 22, 2019

  1. add clock domain crossing constraints on Vivado

    This tags the first register in each `MultiReg` or `ResetSynchronizer`
    with the attribute `nmigen_async_ff` and then applies a false path and
    max delay constraint to all registers tagged with that attribute in
    the `.xdc` file.
    
    The max delay defaults to 5 ns and has an override, `max_delay` where
    it can be changed for the > whole project. It's possible to make this
    an argument to `MultiReg` instead, but is more complex.  > git commit
    -m "add clock domain crossing constraints on Vivado This tags the
    first register in each `MultiReg` or `ResetSynchronizer` with the
    attribute `nmigen_async_ff` and then applies a false path and max
    delay constraint to all registers tagged with that attribute in the
    `.xdc` file.
    
    The max delay defaults to 5 ns and has an override, `max_delay` where
    it can be changed for the whole project. It's possible to make this an
    optional argument to `MultiReg` instead, but is more complex. It would
    probably work to set `nmigen_async_ff` to the desired delay rather
    than just `TRUE`. I'm not sure how hard it would be to extract that in
    the TCL or if it would be easier to keep a dict of all used delay
    values and put a line for each into the `.xdc` file.
    dlharmon committed Sep 22, 2019
    Configuration menu
    Copy the full SHA
    a57ca63 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4db535d View commit details
    Browse the repository at this point in the history
  3. replace false path with min delay

    the false path had precedence over the max_delay despite the docs
    
    the large negative min delay effectively disables hold path timing
    which was the intended goal of the false path.
    dlharmon committed Sep 22, 2019
    Configuration menu
    Copy the full SHA
    abad6db View commit details
    Browse the repository at this point in the history

Commits on Sep 23, 2019

  1. merge upstream changes

    MultiReg renamed to FFSynchronizer
    dlharmon committed Sep 23, 2019
    Configuration menu
    Copy the full SHA
    033f421 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6b64f71 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d358019 View commit details
    Browse the repository at this point in the history
  4. use set_false_path -hold instead of set_min_delay

    This is effectively equivalent without the ugly constant
    There is now no hold path in the timing report, but it retains
    the max_delay.
    dlharmon committed Sep 23, 2019
    Configuration menu
    Copy the full SHA
    11eb6a8 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    d7ebca7 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    2183964 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    f587c73 View commit details
    Browse the repository at this point in the history
  8. merge upstream

    dlharmon committed Sep 23, 2019
    Configuration menu
    Copy the full SHA
    8b4e228 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    d7bc91c View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    a0a3b30 View commit details
    Browse the repository at this point in the history

Commits on Sep 24, 2019

  1. merge whitequark's WIP patch

    error messages and comments
    did not merge xilinx_7series.py
    dlharmon committed Sep 24, 2019
    Configuration menu
    Copy the full SHA
    4c266f5 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f5ee5a3 View commit details
    Browse the repository at this point in the history
  3. minor improvement in wording

    whitequark committed Sep 24, 2019
    Configuration menu
    Copy the full SHA
    8e80a84 View commit details
    Browse the repository at this point in the history
  4. add explanation of how the synchronizer overrides work

    whitequark committed Sep 24, 2019
    Configuration menu
    Copy the full SHA
    3775cba View commit details
    Browse the repository at this point in the history
  5. Merge branch 'master' into xilinx_cdc_constraints

    whitequark committed Sep 24, 2019
    Configuration menu
    Copy the full SHA
    b78ef18 View commit details
    Browse the repository at this point in the history