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

Spv merge to spv 7 #942

Closed
wants to merge 73 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
6fc20a7
creeping toward commonality
steveri Nov 12, 2022
393469c
creeping toward a common merged master branch
steveri Nov 13, 2022
c193811
converging on a single branch -- inconsequential bk pipes
steveri Nov 13, 2022
7f43707
restore original mflowgen tests
steveri Nov 13, 2022
d472df2
first test of conditional pipeline
steveri Nov 13, 2022
4849cb6
first test of conditional pipeline II
steveri Nov 13, 2022
c628fec
first test of conditional pipeline III
steveri Nov 13, 2022
f1779f9
conditional pipeline IV: expand number of branch cases
steveri Nov 13, 2022
cec7500
refined mflowgen test
steveri Nov 14, 2022
9698f20
(re)fixing the run_sim scripts
steveri Nov 16, 2022
142a47f
setup-buildkite: merging good changes from both branches
steveri Nov 16, 2022
c97dba3
merging gen_rtl
steveri Nov 16, 2022
77a9d97
oops not reday for ANAIOPADs yet
steveri Nov 16, 2022
8c4cfa7
added a couple more files from tsmc branch
steveri Nov 17, 2022
0fb6db9
tsmc portion of clk_gate was wrong for some reason...
steveri Nov 17, 2022
10672ca
should work for both gf and tsmc
steveri Nov 17, 2022
2b681f2
should work for both gf and tsmc
steveri Nov 17, 2022
3b66147
if TSMC / elif GF ....
steveri Nov 17, 2022
fcb25b4
if TSMC / elif GF ....
steveri Nov 17, 2022
b5f2420
cleaned up a file
steveri Nov 17, 2022
6658c5d
changed to match master-dense
steveri Nov 17, 2022
f3eec40
streamout is different for tsmc
steveri Nov 17, 2022
6f32cc6
one branch to rule them all
steveri Nov 17, 2022
eea6ab8
merging another file
steveri Nov 18, 2022
c50c745
Merge remote-tracking branch 'origin/spVspV' into spv-merge-to-spv-1
steveri Nov 28, 2022
53d275e
fixing a typo
steveri Nov 29, 2022
07c2d61
Merged Tile_Memcore/contruct.py
steveri Nov 30, 2022
fedae26
Merged Tile_PE/contruct.py
steveri Nov 30, 2022
7c5e000
merged fullchip construct.py
steveri Dec 5, 2022
3646e06
Merged mflowgen/pad_frame/construct.py
steveri Dec 8, 2022
eaebea2
Merged mflowgen/glb_tile/construct.py
steveri Dec 8, 2022
98c6749
tweak mflowgen/full_chip/construct.py to match dense version
steveri Dec 9, 2022
e635f73
common mflowgen/tile_array/construct.py for amber, onyx
steveri Dec 9, 2022
f9132a1
common mflowgen/glb_top/construct.py for amber, onyx
steveri Dec 9, 2022
85b8634
common mflowgen/global_controller/construct.py for amber, onyx
steveri Dec 9, 2022
bc3bc37
undid an error
steveri Dec 9, 2022
0866a07
undid an(other?) error
steveri Dec 9, 2022
d03ca24
final tweak on fc/construct.py -- this one passed full build
steveri Dec 13, 2022
a2f4ad9
added a check to early-out TSMC build failures
steveri Dec 13, 2022
759b4fa
buildkite pipeline tweaks
steveri Dec 13, 2022
6007a4b
updated vs. latest garnet.py from spVspV branch
steveri Dec 13, 2022
96e8115
emergency(?) fix for CI
steveri Dec 14, 2022
21fe6f2
try the previously-passing version of rtl_only.yml
steveri Dec 14, 2022
570850e
try with local garnet
steveri Dec 14, 2022
672cecb
fixed a thing maybe
steveri Dec 14, 2022
643a9a2
fixed a thing maybe 2
steveri Dec 14, 2022
c38db63
try again with previously-merged rtl-only pipeline
steveri Dec 14, 2022
16b2b86
final merge-tweak of this stupid file
steveri Dec 14, 2022
234a672
merged latest set of files from $smd
steveri Dec 15, 2022
df91ffc
gf/tsmc merge of GLB sim files
steveri Dec 15, 2022
7d4cbcb
final tweaks on global_buffer_parameter.py
steveri Dec 16, 2022
c0ca0a8
unified amber/onyx global_buffer.py
steveri Dec 24, 2022
b2a3053
unified amber/onyx gen_global_buffer_rdl.py
steveri Dec 24, 2022
1435267
merged design/glb_addr_gen.py
steveri Dec 30, 2022
f213b69
merged glb_header.py
steveri Dec 30, 2022
cfd6741
another glb_header.py merge
steveri Dec 30, 2022
46859f0
merged glb_cfg.py
steveri Dec 30, 2022
b5defae
(re)merge glb_bank_sram_gen.py
steveri Dec 30, 2022
30d5a4a
merged glb_loop_iter.py
steveri Dec 31, 2022
57bf453
new design_amber dir for amber compatibility
steveri Jan 4, 2023
8941795
use design_amber for global_buffer.py diffs instead of if-then-else
steveri Jan 4, 2023
d780d1b
use design_amber for global_buffer.py diffs instead of if-then-else
steveri Jan 4, 2023
6147f4f
merge final few GLB files w/dense version(s)
steveri Jan 6, 2023
21955a3
resolve merge diffs
steveri Jan 9, 2023
b00523f
last minute fix to improper code
steveri Jan 13, 2023
2132a56
onyx/amber merge of nic400 files
steveri Jan 17, 2023
97b9de8
onyx/amber merge of GLC files
steveri Jan 23, 2023
718d051
Merge remote-tracking branch 'origin/spVspV' into spv-merge-to-spv-6
steveri Jan 31, 2023
1acf2bc
Issue warning if cannot git pull tsmc16 adk
steveri Feb 1, 2023
7737dc7
Issue warning if cannot git pull tsmc16 adk 2
steveri Feb 1, 2023
34a0fb9
Issue warning if cannot git pull tsmc16 adk 3
steveri Feb 1, 2023
97f970b
full_chip constraints merge part 1: constraints_amber
steveri Feb 8, 2023
1e49333
full_chip constraints merge part 2: construct.py continues to use con…
steveri Feb 8, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion mflowgen/bin/setup-buildkite.sh
Original file line number Diff line number Diff line change
Expand Up @@ -458,7 +458,10 @@ else
if [ -d adks/gf12-adk ]; then
cd adks/gf12-adk; git pull
elif [ -d adks/tsmc16-adk ]; then
cd adks/tsmc16-adk; git pull
cd adks/tsmc16-adk; git pull || (\
echo "+++ WARNING: Could not 'git pull' to retrieve latest version of tsmc16-adk";
echo "=> see mflowgen/bin/setup-buildkite.sh"; echo "."; echo "."
)
else
echo "ERROR ADK not found"
return 13 || exit 13
Expand Down
23 changes: 23 additions & 0 deletions mflowgen/common/custom-power-chip/outputs/globalnetconnect.tcl
Original file line number Diff line number Diff line change
@@ -1,15 +1,38 @@
set WHICH_SOC "onyx"
if { [info exists ::env(WHICH_SOC)] } { set WHICH_SOC $::env(WHICH_SOC) }

# Same as everyone else
globalNetConnect VDD -type pgpin -pin VDD -inst *
globalNetConnect VDD -type tiehi
globalNetConnect VSS -type pgpin -pin VSS -inst *
globalNetConnect VSS -type tielo
if { $WHICH_SOC == "amber" } {
globalNetConnect VDD -type pgpin -pin VPP -inst *
globalNetConnect VSS -type pgpin -pin VBB -inst *
} else {
globalNetConnect VSS -type pgpin -pin VPW -inst *
globalNetConnect VDD -type pgpin -pin VNW -inst *
}

if { $WHICH_SOC == "amber" } {
# I/O power nets
globalNetConnect VDDPST -type pgpin -pin VDDPST -inst *
globalNetConnect VSS -type pgpin -pin VSSPST -inst *
} else {
# I/O pads
globalNetConnect VDDPST -type pgpin -pin VDDIO -inst *
globalNetConnect VSS -type pgpin -pin VSSIO -inst *
globalNetConnect VSS -type pgpin -pin VSSC -inst *
globalNetConnect VSS -type pgpin -pin VSS_CM -inst *
globalNetConnect VDD -type pgpin -pin VDDC -inst *
}

if { $WHICH_SOC == "amber" } {
# Dragonphy power nets
globalNetConnect VDD -type pgpin -pin DVDD -inst iphy -override
globalNetConnect VSS -type pgpin -pin DVSS -inst iphy -override
globalNetConnect AVDD -type pgpin -pin AVDD -inst iphy -override
globalNetConnect AVSS -type pgpin -pin AVSS -inst iphy -override
globalNetConnect CVDD -type pgpin -pin CVDD -inst iphy -override
globalNetConnect CVSS -type pgpin -pin CVSS -inst iphy -override
}
16 changes: 11 additions & 5 deletions mflowgen/common/power-domains/outputs/pd-globalnetconnect.tcl
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@

set WHICH_SOC "onyx"
if { [info exists ::env(WHICH_SOC)] } { set WHICH_SOC $::env(WHICH_SOC) }

#-------------------------------------------------------------------------
# Global net connections for PG pins
Expand All @@ -11,7 +12,12 @@
globalNetConnect VDD_SW -type tiehi -powerdomain TOP
globalNetConnect VDD -type tiehi -powerdomain AON
globalNetConnect VSS -type tielo
globalNetConnect VDD -type pgpin -pin VNW -inst *
globalNetConnect VSS -type pgpin -pin VPW -inst *
globalNetConnect VDD -type pgpin -pin VDDC -inst *

if { $WHICH_SOC == "amber" } {
globalNetConnect VDD -type pgpin -pin VPP -inst *
globalNetConnect VSS -type pgpin -pin VBB -inst *
globalNetConnect VDD -type pgpin -pin TVDD -inst *HDR*
} else {
globalNetConnect VDD -type pgpin -pin VNW -inst *
globalNetConnect VSS -type pgpin -pin VPW -inst *
globalNetConnect VDD -type pgpin -pin VDDC -inst *
}
12 changes: 10 additions & 2 deletions mflowgen/common/power-scripts/globalnetconnect.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,20 @@
# Global net connections for PG pins
#-------------------------------------------------------------------------

set WHICH_SOC "onyx"
if { [info exists ::env(WHICH_SOC)] } { set WHICH_SOC $::env(WHICH_SOC) }

# Connect VNW / VPW if any cells have these pins

globalNetConnect VDD -type pgpin -pin VDD -inst *
globalNetConnect VDD -type tiehi
globalNetConnect VSS -type pgpin -pin VSS -inst *
globalNetConnect VSS -type tielo
globalNetConnect VSS -type pgpin -pin VPW -inst *
globalNetConnect VDD -type pgpin -pin VNW -inst *

if { $WHICH_SOC == "amber" } {
globalNetConnect VDD -type pgpin -pin VPP -inst *
globalNetConnect VSS -type pgpin -pin VBB -inst *
} else {
globalNetConnect VSS -type pgpin -pin VPW -inst *
globalNetConnect VDD -type pgpin -pin VNW -inst *
}
301 changes: 301 additions & 0 deletions mflowgen/common/soc-rtl-v2/rtl-scripts-amber/nic400_design_files.tcl

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# ==============================================================================
# Include Paths for NIC400 IP
# ==============================================================================

set soc_inc_nic400 [concat \
inputs/rtl/aham3soc_armip/logical/nic400_AhaIntegration/amib_master_CGRA_DATA/verilog \
inputs/rtl/aham3soc_armip/logical/nic400_AhaIntegration/amib_master_CGRA_REG/verilog \
inputs/rtl/aham3soc_armip/logical/nic400_AhaIntegration/amib_master_PERIPH/verilog \
inputs/rtl/aham3soc_armip/logical/nic400_AhaIntegration/amib_master_SRAM0/verilog \
inputs/rtl/aham3soc_armip/logical/nic400_AhaIntegration/amib_master_SRAM1/verilog \
inputs/rtl/aham3soc_armip/logical/nic400_AhaIntegration/amib_master_SRAM2/verilog \
inputs/rtl/aham3soc_armip/logical/nic400_AhaIntegration/amib_master_SRAM3/verilog \
inputs/rtl/aham3soc_armip/logical/nic400_AhaIntegration/amib_master_TLX/verilog \
inputs/rtl/aham3soc_armip/logical/nic400_AhaIntegration/amib_master_TLX_REG/verilog \
inputs/rtl/aham3soc_armip/logical/nic400_AhaIntegration/asib_slave_CPU/verilog \
inputs/rtl/aham3soc_armip/logical/nic400_AhaIntegration/asib_slave_DMA0/verilog \
inputs/rtl/aham3soc_armip/logical/nic400_AhaIntegration/asib_slave_DMA1/verilog \
inputs/rtl/aham3soc_armip/logical/nic400_AhaIntegration/busmatrix_bm0/verilog \
inputs/rtl/aham3soc_armip/logical/nic400_AhaIntegration/cdc_blocks/verilog \
inputs/rtl/aham3soc_armip/logical/nic400_AhaIntegration/default_slave_ds_1/verilog \
inputs/rtl/aham3soc_armip/logical/nic400_AhaIntegration/ib_master_CGRA_DATA_ib/verilog \
inputs/rtl/aham3soc_armip/logical/nic400_AhaIntegration/ib_master_CGRA_REG_ib/verilog \
inputs/rtl/aham3soc_armip/logical/nic400_AhaIntegration/ib_master_PERIPH_ib/verilog \
inputs/rtl/aham3soc_armip/logical/nic400_AhaIntegration/ib_master_TLX_REG_ib/verilog \
inputs/rtl/aham3soc_armip/logical/nic400_AhaIntegration/ib_master_TLX_ib/verilog \
inputs/rtl/aham3soc_armip/logical/nic400_AhaIntegration/ib_slave_CPU_ib/verilog \
inputs/rtl/aham3soc_armip/logical/nic400_AhaIntegration/reg_slice/verilog \
inputs/rtl/aham3soc_armip/logical/nic400_AhaIntegration/nic400/verilog/Axi \
inputs/rtl/aham3soc_armip/logical/nic400_AhaIntegration/nic400/verilog/Ahb \
]
87 changes: 87 additions & 0 deletions mflowgen/common/soc-rtl-v2/rtl-scripts-amber/soc_design_files.tcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# ==============================================================================
# loads SOC design files (RTL)
# ==============================================================================
# Cortex-M3 Files
set soc_cm3_files [concat [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/cortex-m3/cm3_wic/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/cortex-m3/cm3_itm/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/cortex-m3/cm3_tpiu/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/cortex-m3/cm3_fpb/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/cortex-m3/cm3_mpu/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/cortex-m3/cm3_dwt/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/cortex-m3/cm3_nvic/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/cortex-m3/cm3_dpu/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/cortex-m3/cm3_dap_ahb_ap/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/cortex-m3/cm3_bus_matrix/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/cortex-m3/dapswjdp/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/cortex-m3/cortexm3/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/cortex-m3/cortexm3_integration/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/cortex-m3/models/cells -types f *.v ] ]

# CMSDK Files
set soc_cmdk_files [concat [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/cmsdk/cmsdk_apb_uart/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/cmsdk/cmsdk_apb_watchdog/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/cmsdk/cmsdk_ahb_to_apb/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/cmsdk/cmsdk_apb_timer/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/cmsdk/cmsdk_ahb_to_sram/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/cmsdk/cmsdk_ahb_eg_slave/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/AhaPeriphAhbMtx/verilog/AhaPeriphAhbMtx -types f *.v ] ]

# AXI SRAM Interface Converter
set soc_sram_if_files [ glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/if_converters/axi_sram_if -types f *.v]

# Integration Files
set soc_integration_files [concat [
glob -nocomplain -directory inputs/rtl/aham3soc/hardware/logical/AhaCM3CodeRegionIntegration/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc/hardware/logical/AhaCM3Integration/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc/hardware/logical/AhaDmaIntegration/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc/hardware/logical/AhaGarnetIntegration/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc/hardware/logical/AhaGarnetSoC/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc/hardware/logical/AhaMemIntegration/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc/hardware/logical/AhaPeripherals/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc/hardware/logical/AhaPlatformController/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc/hardware/logical/AhaPlatformController/rdl/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc/hardware/logical/AhaSoCPartialIntegration/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc/hardware/logical/AhaTlxIntegration/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc/hardware/logical/AhaTlxIntegration/rdl/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc/hardware/logical/AhaStdCells/asic/verilog -types f *.v]]

# PL330 DMA Files
set soc_dma_files [concat [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/DMA330_AhaIntegration/logical/pl330_dma_AhaIntegration/pl330_dma_AhaIntegration/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/DMA330_AhaIntegration/logical/pl330_dma_AhaIntegration/pl330_axi_AhaIntegration/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/DMA330_AhaIntegration/logical/pl330_dma_AhaIntegration/pl330_icache_AhaIntegration/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/DMA330_AhaIntegration/logical/pl330_dma_AhaIntegration/pl330_lsq_AhaIntegration/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/DMA330_AhaIntegration/logical/pl330_dma_AhaIntegration/pl330_pipeline_AhaIntegration/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/DMA330_AhaIntegration/logical/pl330_dma_AhaIntegration/pl330_mfifo_AhaIntegration/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/DMA330_AhaIntegration/logical/pl330_dma_AhaIntegration/pl330_engine_AhaIntegration/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/DMA330_AhaIntegration/logical/pl330_dma_AhaIntegration/pl330_merge_buffer_AhaIntegration/verilog -types f *.v] [
glob -nocomplain -directory inputs/rtl/aham3soc_armip/logical/DMA330_AhaIntegration/logical/pl330_dma_AhaIntegration/pl330_periph_AhaIntegration/verilog -types f *.v]]

# TLX-400 Files
source inputs/rtl-scripts/tlx_design_files.tcl

# NIC-400 Files
source inputs/rtl-scripts/nic400_design_files.tcl

# All SoC Files
set soc_design_files [concat \
$soc_cm3_files \
$soc_cmdk_files \
$soc_sram_if_files \
$soc_integration_files \
$soc_dma_files \
$soc_tlx_files \
]


set soc_design_files [concat \
$soc_cm3_files \
$soc_cmdk_files \
$soc_sram_if_files \
$soc_integration_files \
$soc_dma_files \
$soc_tlx_files \
$soc_nic400_files \
]
26 changes: 26 additions & 0 deletions mflowgen/full_chip/constraints_amber/configure.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#=========================================================================
# Constraints
#=========================================================================
# Author : Alex Carsello
# Date : Nov 1, 2019
#
# Edited by
# Gedeon Nyengele
# May 14, 2020
#-------------------------------------------------------------------------

name: constraints

#-------------------------------------------------------------------------
# Outputs
#-------------------------------------------------------------------------
outputs:
- constraints.tcl
- cons_scripts

#-------------------------------------------------------------------------
# Commands
#-------------------------------------------------------------------------
commands:
- cp -L cons_scripts/constraints.tcl outputs
- cp -RL cons_scripts outputs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#-----------------------------------------------------------------------------
# TCL Script
#-----------------------------------------------------------------------------
# Purpose: Clock Parameters
#------------------------------------------------------------------------------
#
# Author : Gedeon Nyengele
# Date : May 17, 2020
#------------------------------------------------------------------------------

# ------------------------------------------------------------------------------
# Clock Period
# ------------------------------------------------------------------------------

set cgra_master_clk_period ${clock_period}
set soc_master_clk_period 1.0

# ------------------------------------------------------------------------------
# Clock Division Factors
# ------------------------------------------------------------------------------

set cgra_clk_div_factor 1
set soc_clk_div_factor 2
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
#-----------------------------------------------------------------------------
# TCL Script
#-----------------------------------------------------------------------------
# Purpose: Create Master Clocks
#------------------------------------------------------------------------------
#
# Author : Gedeon Nyengele
# Date : May 17, 2020
#------------------------------------------------------------------------------

# ------------------------------------------------------------------------------
# Create Master Clocks
# ------------------------------------------------------------------------------

create_clock -name master_clk_0 -period ${cgra_master_clk_period} [get_ports $port_names(master_clk)]

create_clock -name master_clk_1 -period ${soc_master_clk_period} [get_pins core/ALT_MASTER_CLK]

# ------------------------------------------------------------------------------
# Muxed Master Clocks
# ------------------------------------------------------------------------------

create_generated_clock -name m_clk_0 \
-source [get_ports $port_names(master_clk)] \
-divide_by 1 \
[get_pins core/u_aha_platform_ctrl/u_clock_controller/u_master_clock_switch/CLK_OUT]

create_generated_clock -name m_clk_1 \
-source [get_pins core/ALT_MASTER_CLK] \
-divide_by 1 \
-add \
-master_clock master_clk_1 \
[get_pins core/u_aha_platform_ctrl/u_clock_controller/u_master_clock_switch/CLK_OUT]


# ------------------------------------------------------------------------------
# Create Divided Clocks
# ------------------------------------------------------------------------------

set clk_div_factors [list 1 2 4 8 16 32]

foreach idx $clk_div_factors {
# From Master 0
create_generated_clock -name by_${idx}_mst_0_clk \
-source [get_pins core/u_aha_platform_ctrl/u_clock_controller/u_master_clock_switch/CLK_OUT] \
-divide_by ${idx} \
-master_clock m_clk_0 \
-add \
[get_pins core/u_aha_platform_ctrl/u_clock_controller/u_clk_div/CLK_by_${idx}]

# From Master 1
create_generated_clock -name by_${idx}_mst_1_clk \
-source [get_pins core/u_aha_platform_ctrl/u_clock_controller/u_master_clock_switch/CLK_OUT] \
-divide_by ${idx} \
-master_clock m_clk_1 \
-add \
[get_pins core/u_aha_platform_ctrl/u_clock_controller/u_clk_div/CLK_by_${idx}]
}
Loading