-
Notifications
You must be signed in to change notification settings - Fork 792
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[dma,syn] Add cfg and constraints to support DMA synthesis
This adds the synthesis configuration files to support test synthesis for area estimates in kGE. Signed-off-by: Ghada Dessouky <[email protected]>
- Loading branch information
Showing
2 changed files
with
70 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
# Copyright lowRISC contributors. | ||
# Licensed under the Apache License, Version 2.0, see LICENSE for details. | ||
# SPDX-License-Identifier: Apache-2.0 | ||
# | ||
# Generic constraints file for simple testsynthesis flow | ||
|
||
# note that we do not fix hold timing in this flow | ||
set SETUP_CLOCK_UNCERTAINTY 0.5 | ||
|
||
##################### | ||
# main clock # | ||
##################### | ||
set MAIN_CLK_PIN clk_i | ||
set MAIN_RST_PIN rst_ni | ||
# set main clock to 125 MHz | ||
set MAIN_TCK 8.0 | ||
set_ideal_network ${MAIN_CLK_PIN} | ||
set_ideal_network ${MAIN_RST_PIN} | ||
set_clock_uncertainty ${SETUP_CLOCK_UNCERTAINTY} ${MAIN_CLK_PIN} | ||
|
||
# other timing constraint in ns | ||
set IN_DEL 1.0 | ||
set OUT_DEL 1.0 | ||
set DELAY ${MAIN_TCK} | ||
|
||
create_clock ${MAIN_CLK_PIN} -period ${MAIN_TCK} | ||
|
||
# in to out | ||
set_max_delay ${DELAY} -from [all_inputs] -to [all_outputs] | ||
# in to reg / reg to out | ||
set_input_delay ${IN_DEL} [remove_from_collection [all_inputs] {${MAIN_CLK_PIN}}] -clock ${MAIN_CLK_PIN} | ||
set_output_delay ${OUT_DEL} [all_outputs] -clock ${MAIN_CLK_PIN} | ||
|
||
##################### | ||
# I/O drive/load # | ||
##################### | ||
|
||
# attach load and drivers to IOs to get a more realistic estimate | ||
set_driving_cell -no_design_rule -lib_cell ${DRIVING_CELL} -pin ${DRIVING_CELL_PIN} [all_inputs] | ||
set_load [load_of ${LOAD_CELL_LIB}/${LOAD_CELL}/${LOAD_CELL_PIN}] [all_outputs] | ||
|
||
# set a nonzero critical range to be able to spot the violating paths better | ||
# in the report | ||
set_critical_range 0.5 ${DUT} | ||
|
||
##################### | ||
# Size Only Cells # | ||
##################### | ||
|
||
set_size_only -all_instances [get_cells -h *u_size_only*] true | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
// Copyright lowRISC contributors. | ||
// Licensed under the Apache License, Version 2.0, see LICENSE for details. | ||
// SPDX-License-Identifier: Apache-2.0 | ||
{ | ||
// Top level dut name (sv module). | ||
name: dma | ||
|
||
// Fusesoc core file used for building the file list. | ||
fusesoc_core: lowrisc:ip:{name}:0.1 | ||
|
||
import_cfgs: [// Project wide common synthesis config file | ||
"{proj_root}/hw/syn/tools/dvsim/common_syn_cfg.hjson"] | ||
|
||
// Timing constraints for this module | ||
sdc_file: "{proj_root}/hw/ip/{name}/syn/constraints.sdc" | ||
|
||
// This is not needed for this module | ||
foundry_sdc_file: "" | ||
} |