forked from lowRISC/ibex
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ibex_core_lr_synth_conf.tcl
62 lines (56 loc) · 2.54 KB
/
ibex_core_lr_synth_conf.tcl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# 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 60% 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 {instr_req_o 70.0} \
{instr_addr_o 70.0} \
{data_req_o 70.0} \
{data_we_o 70.0} \
{data_be_o 70.0} \
{data_addr_o 70.0} \
{data_wdata_o 70.0} \
{core_sleep_o 80.0}]
set lr_synth_inputs [list {test_en_i 0.0 } \
{hart_id_i 0.0 } \
{boot_addr_i 0.0 } \
{instr_gnt_i 30.0} \
{instr_rvalid_i 30.0} \
{instr_rdata_i 30.0} \
{instr_err_i 30.0} \
{data_gnt_i 30.0} \
{data_rvalid_i 30.0} \
{data_rdata_i 30.0} \
{data_err_i 30.0} \
{irq_software_i 10.0} \
{irq_timer_i 10.0} \
{irq_external_i 10.0} \
{irq_fast_i 10.0} \
{irq_nm_i 10.0} \
{debug_req_i 10.0} \
{fetch_enable_i 0.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 250 MHz clock. using the nangate45 library
# Ibex 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 4000.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 2000.0