blob: b1304fc8062ea011230817abd6c2376ff18b6375 [file] [log] [blame]
# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
# List of inputs and outputs. Number is timing constraint expressed as a % of
# clock cycle, e.g.
#
# {instr_req_o 70.0}
#
# as an output means the instr_req_o output must be stable by 70% of total clock
# cycle
#
# {instr_gnt_i 30.0}
#
# as an input means the instr_gnt_i input will be stable by 30% of the total
# clock cycle
# These IO constraints are an educated guess, they effectively assume there's a
# bit of external logic on the inputs and outputs but not much before they reach
# a flop.
set lr_synth_outputs [list {*_o 70.0}]
set lr_synth_inputs [list {*_i 30.0}]
# Clock and reset IO names (at top-level)
set lr_synth_clk_input clk_i
set lr_synth_rst_input rst_ni
# Clock period in ps, this gives a 125 MHz clock. Using the nangate45 library
# the AES module can happily meet this on all paths with the
# lr_synth_abc_clk_uprate setting below. With a lower uprate timing may not be
# met.
set lr_synth_clk_period 8000.0
# Amount to subtract from clk period to give the clock period passed to ABC in
# the synth flow. ABC maps the design to the standard cell library and
# optimises paths for timing, better results are obtained by giving it a faster
# clock period so it optimises more.
set lr_synth_abc_clk_uprate 4000.0