CUSTOMER INPUTS :
Following HMs (14) are frozen in FN1 release with no further planned change
IO
hm_io_nw
hm_io_sw
hm_io_e
hm_io_big
hm_io_pm
DPD
hm_ae
hm_be
hm_grad
hm_iop
DFE
hm_dl
hm_clipo
hm_clipi
ETH
hm_xlgx
hm_mac
Following HMs (11) have some bug fixes and netlist will be refreshed in FN2 release
DFE
hm_ulcap
PSS
hm_pss
hm_msix
CONV (RFIF+JESD)
hm_conv_n
hm_conv_s
ETH
hm_efr_n
hm_efr_s
L1low
hm_l1dl
hm_l1ul
FHASIP
hm_fh_n
hm_fh_s
LEVEL SHIFTERS :
/project/mercury/source/FN.1/80_blockdrop/LS_Check_Dir/hm_fh_n_input_LS.rpt
/project/mercury/source/FN.1/80_blockdrop/LS_Check_Dir/hm_fh_s_input_LS.rpt
/project/mercury/source/FN.1/80_blockdrop/LS_Check_Dir/hm_mac_input_LS.rpt
/project/mercury/source/FN.1/80_blockdrop/LS_Check_Dir/hm_pss_input_LS.rpt
/project/mercury/source/FN.1/80_blockdrop/LS_Check_Dir/hm_xlgx_input_LS.rpt
/project/mercury/source/FN.1/80_blockdrop/LS_Check_Dir/pss_subsys_nokmercury_input_LS.rpt
Power paving : Please ensure that the final avo lef containts power paved pins also
Partial power paving :
hm_ae
hm_efr_n
pss_subsys_nokmercury
full power paving :
hm_pss
pcie_ss_pcie_0
Logic spread :
hm_conv_n/s
hm_grad [ first level flops]
hm_io_e
DCAP AREA :
hm_grad
hm_ae
Floorplaning near corners :
hm_ae [ To move memory near corner]
pcie_ss_pcie_0 [ To move memory near corner]
MBIT : To add interactive code to forcefully increase MBIT%
hm_ae
hm_msix
Latency :
hm_grad : H-tree to be built for "clk_core_a_div1" for minimum latency
hm_mac : clk_core_a_div1 : 400ps
hm_pss : clk_core_a_div1 , clk_core_a_div2 : 400ps
hm_msix : clk_mcu_a_div2_CLK : 400ps
pss_subsys_nokmercury : clk_core_a_div1 : 400ps
pcie_ss_pcie_0 : pipe_clk_core* to have minimum latency
I/O blocks / PLL blocks : 400ps latency
DONT TOUCH :
We have dont touch file from customer . Added a command in block execution steps . Please ensure that it is taken care
Output port ISO down sized : FROM X32 to X16
hm_grad
hm_be
TAP FUCTIONAL CLOCK FROM HM_PSS
We need to ensure that below path from "flop" to "port" are built as clock with proper NDR and shield .
FLOP : i_pss_pp__i_ijtag001__inst_mars_ijtag_ahb_registers__Delay_reg2_0__0_
PORT : TEST_CORE_TCK_OUT
I/O FLOP LATENCY CONTROL [ 400ps to 450ps ]
hm_grad
pss_subsys_nokmercury
NON CLOCK CELLS IN CLOCK NETWORK :
expected cells : *UNRA_LPDINV*
If mux or any combi is there in the clock network it should be only *UN* type
Please ensure that "300_dod" is skipped for below blocks
hm_io_e
hm_io_nw
hm_io_sw
Power tapping for PLL
Manual verification
<hm_io_big_obs_clocks>
hm_be :
Please pickup "sleep lcr" change
/project/mercury/giant/giant-2025.1.2/user/nr069753/PN99.2.postdft.04252025/impl/hm_be/sleep_lcr_port.ptn
hm_io_e :
via blockage adjesent to pad's to avoid delta violations
All I/O blocks :
voltage markers have to read for all the verification steps
hm_grad :
memories to be moved down by 80 microns
and tighter well tap in that region
pll blocks :
PLL datasheet in below path.
/project/mercury/iplib/pulls/EN.01032023/cpll03_pllsys01_top_ns_02-001/PLL/documentation/cpll03_pllsys01_top_ns_02/external_documentation/cpll03_pllsys01_top_ns_02_datasheet.pdf
Special Requirements:
a. TIE cells should be Dense. tighter pitch (please check if it is coming in the flow)
b. Keep out of 5um to be followed as per documentation.
https://drive.google.com/file/d/1aEHjBezuvZqke6pL9qf6Zss4dLWtRbCG/view?usp=drive_link
https://drive.google.com/file/d/13scwdlejKO6YaK-23bGMHQYKKY2zpQFX/view?usp=drive_link
hm_pss :
Add below registers in to size_only
i_pss_pp__pulse_expander_VEO2_dma__expanded_pulse_reg*
hm_msix : move below ports to top left
msix_axi4init_RUSER
pcie_axi4t_AWUSER
pcie_axi4t_WUSER
FOR BELOW BLOCKS :
hm_ae
hm_clipi
hm_clipo
hm_conv_n
hm_conv_s
hm_dl
hm_efr_n
hm_efr_s
hm_fh_n
hm_fh_s
hm_grad
hm_iop
hm_l1dl
hm_l1ul
hm_mac
hm_msix
hm_ulcap
hm_xlgx
pss_subsys_nokmercury
newgrp design_apd
cd /project/mercury
/bin/bash
. /project/mercury/bin/chip_env_FN.1 -proj_dir FN.1_postdft_08182025 -prog_desc FN.1
export DROP_DATA=/project/mercury/source/FN.1/80_blockdrop/FN.1.fp17.nv_run.17Aug2025_Rel_V1
export MY_BLOCK=<your block name here - see the list below>
export MY_BLOCK_ROOT=$BLOCKPATH/$MY_BLOCK
/project/mercury/bin/mercury_block_setup
cd $GEV_PROJECT_ROOT/user/$USER/$PROJECT_DIR/impl/$MY_BLOCK
cat $GEV_PROJECT_ROOT/user/$USER/$PROJECT_DIR/impl/$MY_BLOCK/scripts/con/${MY_BLOCK}.trc_waivers | gawk '/nochain_flop_instance/ {print $2}' > SIZE_ONLY
cat $GEV_PROJECT_ROOT/user/$USER/$PROJECT_DIR/impl/$MY_BLOCK/scripts/con/${MY_BLOCK}.tetrc_waivers | gawk '/nochain_flop_instance/ {print $2}' | sed "s/\\///g" >> SIZE_ONLY
cat /project/mercury/data_transfer/incoming/release_ww29_2025_FN1_07162025/release_ww29_2025_FN1/$MY_BLOCK/reports/${MY_BLOCK}.dont_touch.rpt | awk '{print $3}' | sed "s/\//__/g" | sed "s/]//" >> SIZE_ONLY
( For pss_subsys_nokmercury : cat /project/mercury/data_transfer/incoming/pss_subsys_nokmercury_dont_touch_list_0819/pss_subsys_nokmercury-sizeonly.tcl >> SIZE_ONLY )
sort -u SIZE_ONLY > source/${MY_BLOCK}.size_only_list.tcl
zgrep "get_pins" source/${MY_BLOCK}.sdc | grep -e "\/phi" -e "\/q" -e "\/d" | grep set_multicycle_path | sed 's/\[get_pins/\n \[get_pins/g' | grep -e "\/phi" -e "\/q" -e "\/d" | awk '{print $NF}' | sort -u | sed 's/\// /' | awk '{print $1}' | sort -u >> source/${MY_BLOCK}.size_only_list.tcl
FOR BELOW BLOCKS :
hm_be
hm_pss
pcie_ss_pcie_0
newgrp design_apd
cd /project/mercury
/bin/bash
. /project/mercury/bin/chip_env_FN.1 -proj_dir FN.1_postdft_08182025 -prog_desc FN.1
export DROP_DATA=/project/mercury/source/FN.1.1/80_blockdrop/FN.1.fp17.nv_run.17Aug2025_Rel_V2
export MY_BLOCK=<your block name here - see the list below>
export MY_BLOCK_ROOT=$BLOCKPATH/$MY_BLOCK
/project/mercury/bin/mercury_block_setup
cd $GEV_PROJECT_ROOT/user/$USER/$PROJECT_DIR/impl/$MY_BLOCK
cat $GEV_PROJECT_ROOT/user/$USER/$PROJECT_DIR/impl/$MY_BLOCK/scripts/con/${MY_BLOCK}.trc_waivers | gawk '/nochain_flop_instance/ {print $2}' > SIZE_ONLY
cat $GEV_PROJECT_ROOT/user/$USER/$PROJECT_DIR/impl/$MY_BLOCK/scripts/con/${MY_BLOCK}.tetrc_waivers | gawk '/nochain_flop_instance/ {print $2}' | sed "s/\\///g" >> SIZE_ONLY
cat /project/mercury/data_transfer/incoming/release_ww33_2025_FN1_incr_1_0814/release_ww33_2025_FN1_incr_1/$MY_BLOCK/reports/${MY_BLOCK}.dont_touch.rpt | awk '{print $3}' | sed "s/\//__/g" | sed "s/]//" >> SIZE_ONLY
( For pcie_ss_pcie_0 : cat /project/mercury/data_transfer/incoming/pcie_ss_pcie_0_dont_touch_list_0819/dont_touch_pcie_ss.rpt >> SIZE_ONLY )
sort -u SIZE_ONLY > source/${MY_BLOCK}.size_only_list.tcl
zgrep "get_pins" source/${MY_BLOCK}.sdc | grep -e "\/phi" -e "\/q" -e "\/d" | grep set_multicycle_path | sed 's/\[get_pins/\n \[get_pins/g' | grep -e "\/phi" -e "\/q" -e "\/d" | awk '{print $NF}' | sort -u | sed 's/\// /' | awk '{print $1}' | sort -u >> source/${MY_BLOCK}.size_only_list.tcl
FOR BELOW BLOCKS :
lv_top_core_pll_0
nv_top_mcu_pll_0
nv_top_pcie_pll_0
sbus_qmmi_qmmi_pll_wrapper_0
newgrp design_apd
cd /project/mercury
/bin/bash
. /project/mercury/bin/chip_env_FN.1 -proj_dir FN.1_postdft_08192025 -prog_desc FN.1
export DROP_DATA= /project/mercury/source/FN.1/80_blockdrop/FN.1.fp17.nv_run.18Aug2025_Rel_V3
export MY_BLOCK=<your block name here - see the list below>
export MY_BLOCK_ROOT=$BLOCKPATH/$MY_BLOCK
/project/mercury/bin/mercury_block_setup
cd $GEV_PROJECT_ROOT/user/$USER/$PROJECT_DIR/impl/$MY_BLOCK
FOR BELOW BLOCKS :
hm_io_big
hm_io_pm
newgrp design_apd
cd /project/mercury
/bin/bash
. /project/mercury/bin/chip_env_FN.1 -proj_dir FN.1_postdft_08192025 -prog_desc FN.1
export DROP_DATA= /project/mercury/source/FN.1/80_blockdrop/FN.1.fp17.nv_run.18Aug2025_Rel_V4
export MY_BLOCK=<your block name here - see the list below>
export MY_BLOCK_ROOT=$BLOCKPATH/$MY_BLOCK
/project/mercury/bin/mercury_block_setup
cd $GEV_PROJECT_ROOT/user/$USER/$PROJECT_DIR/impl/$MY_BLOCK
cat $GEV_PROJECT_ROOT/user/$USER/$PROJECT_DIR/impl/$MY_BLOCK/scripts/con/${MY_BLOCK}.trc_waivers | gawk '/nochain_flop_instance/ {print $2}' > SIZE_ONLY
cat $GEV_PROJECT_ROOT/user/$USER/$PROJECT_DIR/impl/$MY_BLOCK/scripts/con/${MY_BLOCK}.tetrc_waivers | gawk '/nochain_flop_instance/ {print $2}' | sed "s/\\///g" >> SIZE_ONLY
cat /project/mercury/data_transfer/incoming/release_ww29_2025_FN1_07162025/release_ww29_2025_FN1/$MY_BLOCK/reports/${MY_BLOCK}.dont_touch.rpt | awk '{print $3}' | sed "s/\//__/g" | sed "s/]//" >> SIZE_ONLY
zgrep "get_pins" source/${MY_BLOCK}.sdc | grep -e "\/phi" -e "\/q" -e "\/d" | grep set_multicycle_path | sed 's/\[get_pins/\n \[get_pins/g' | grep -e "\/phi" -e "\/q" -e "\/d" | awk '{print $NF}' | sort -u | sed 's/\// /' | awk '{print $1}' | sort -u >> source/${MY_BLOCK}.size_only_list.tcl
FOR BELOW BLOCKS :
hm_io_e
hm_io_nw
hm_io_sw
newgrp design_apd
cd /project/mercury
/bin/bash
. /project/mercury/bin/chip_env_FN.1 -proj_dir FN.1_postdft_08192025 -prog_desc FN.1
export DROP_DATA= /project/mercury/source/FN.1.1/80_blockdrop/FN.1.fp17.nv_run.17Aug2025_Rel_V5
export MY_BLOCK=<your block name here - see the list below>
export MY_BLOCK_ROOT=$BLOCKPATH/$MY_BLOCK
/project/mercury/bin/mercury_block_setup
cd $GEV_PROJECT_ROOT/user/$USER/$PROJECT_DIR/impl/$MY_BLOCK
cat $GEV_PROJECT_ROOT/user/$USER/$PROJECT_DIR/impl/$MY_BLOCK/scripts/con/${MY_BLOCK}.trc_waivers | gawk '/nochain_flop_instance/ {print $2}' > SIZE_ONLY
cat $GEV_PROJECT_ROOT/user/$USER/$PROJECT_DIR/impl/$MY_BLOCK/scripts/con/${MY_BLOCK}.tetrc_waivers | gawk '/nochain_flop_instance/ {print $2}' | sed "s/\\///g" >> SIZE_ONLY
cat /project/mercury/data_transfer/incoming/release_ww29_2025_FN1_07162025/release_ww29_2025_FN1/$MY_BLOCK/reports/${MY_BLOCK}.dont_touch.rpt | awk '{print $3}' | sed "s/\//__/g" | sed "s/]//" >> SIZE_ONLY
zgrep "get_pins" source/${MY_BLOCK}.sdc | grep -e "\/phi" -e "\/q" -e "\/d" | grep set_multicycle_path | sed 's/\[get_pins/\n \[get_pins/g' | grep -e "\/phi" -e "\/q" -e "\/d" | awk '{print $NF}' | sort -u | sed 's/\// /' | awk '{print $1}' | sort -u >> source/${MY_BLOCK}.size_only_list.tcl
Notes:
1. Perform Tag/Watermark check on the netlist.
2. Restore the database with latest nelists and place the unplaced TEST* ports.
3. Provide floorplan LEF's after going through the default pad block flow for TLR purpose.
4. We will incrementally review the pin placement and do necessary changes. (hm_io_e <=> hm_ae interface, and if any other interface to reduce the TLR route.)
5. Please share the Drop Sheet which captures the Top & Mike Ho Drops (DEF). Maintain all the issues consolidated in the same sheet to discuss with Mike for any additional changes.
6. TIE cells' pitch needs to be tighter in the pad block please review.
[09/05] hm_io_big from mike
/project/mercury/data_transfer/incoming/to_DI_Mercury_PN99.3_hm_io_big_build_files_090525/
[10/09] Mercury FN delivery from mike all I/O blocks
/project/mercury/data_transfer/incoming/FN_PAD_DELIVERABLES_10092025/to_DI_Mercury_FN_pad_block_build_files_100825
[09/12] Block context DEF's for the FN.1
/project/mercury/source/FN.1/80_blockdrop/context_defs_FN.1_V1_12092025
[03/11]
Hi Sai,
Please use the below config file and there are few errors that are expected.
/project/mercury_test/giant/giant-2025.1.2/mm890906/FN.1_iter0/impl/mercury_top/release/40_scan_v8/sbus_qmmi_qmmi_pll_wrapper_0.trc_config.multi_mode.flattened
[24/10]
I have updated the trc config file on the path below. Kindly please take the trc config file from below path and update in your flow.
/project/mercury_test/giant/giant-2025.1.2/mm890906/FN.1_iter0/impl/mercury_top/release/40_scan_v8/
You will see some errors for hm_io_e and pcie_ss_pcie_0 , that you can ignore.
[27/10]
for hm_io_pm,
trc++ -p -j -l -T -t , switch -j is not needed as this is not IO block and no boundary scan chain.
CUBBY :
09/08] flow flush cubby
release_block_data FN.1_FLOW_FLUSH -E <avo_tag>
[09/13] first timing cubby
release_block_data FN.1_V2_0913 -E <avo_tag>
I/O REVIEW PATHS : [ 10/26]
/project/mercury/block_cubby/gold/FN.1.2_V3/hm_io_e
/project/mercury/block_cubby/gold/FN.1.2_V3/hm_io_big
/project/mercury/block_cubby/gold/FN.1.2_V2_1013_TIMING_IVD/hm_io_sw
/project/mercury/block_cubby/gold/FN.1.2_V2_1013_TIMING_IVD/hm_io_nw
/project/mercury/block_cubby/gold/FN.1.2_V2_1013_TIMING_IVD/hm_io_pm
/project/mercury/giant/giant-2025.1.2/user/vu900258/FN.1.2_postdft_09212025/impl/hm_io_e/avo.cc_timing_fix_final_FN_pad_drop
/project/mercury/giant/giant-2025.1.2/user/vu900258/FN.1_postdft_08192025/impl/hm_io_big/avo.4_RV_fixes_final_FN_PAD_drop
/project/mercury/giant/giant-2025.1.2/user/vu900258/FN.1_postdft_08192025/impl/hm_io_nw/avo.2_drc_fix_final_FN_pad_drop
/project/mercury/giant/giant-2025.1.2/user/vu900258/FN.1_postdft_08192025/impl/hm_io_sw/avo.final_FN_pad_drop
/project/mercury/giant/giant-2025.1.2/user/vu900258/FN.1_postdft_08192025/impl/hm_io_pm/avo.5_tran_fix_final_FN_PAD_drop
PathFinder :
/project/mercury/giant/giant-2025.1.2/user/vu900258/FN.1_postdft_08192025/impl/hm_io_big/avo.final_FN_pad_drop
/project/mercury/giant/giant-2025.1.2/user/vu900258/FN.1_postdft_08192025/impl/hm_io_nw/avo.2_drc_fix_final_FN_pad_drop
/project/mercury/giant/giant-2025.1.2/user/vu900258/FN.1_postdft_08192025/impl/hm_io_sw/avo.final_FN_pad_drop
/project/mercury/giant/giant-2025.1.2/user/vu900258/FN.1.2_postdft_09212025/impl/hm_io_e/avo.cc_timing_fix_final_FN_pad_drop