Skip to content

Latest commit

 

History

History
641 lines (607 loc) · 37.8 KB

0136-2023-08-29.md

File metadata and controls

641 lines (607 loc) · 37.8 KB

29 Aug 2023

Previous journal: Next journal:
0135-2023-08-28.md 0137-2023-08-30.md

wall_tracer changes

Accomplishments

  • Using better names for FSM states.
  • Initial shared reciprocal implementation:
    • Branch: shared_rcp
    • Added lots of extra states to share a single reciprocal in wall_tracer, via a single-bit register which mux-selects the input to the register (either rayDirX or rayDirY).
    • stepDist needs to be registered now. They are directly calculated by rcp, and rely on rayDir as inputs. rayDir is sum of facing and minified rayAddend. rayAddend is registered before PREP, then updated during DONE.
    • WARNING: trackDist comes from trackInit, which depends on stepDist!

Extra FSM states

These are essentially the really naive states I settled on (though I used different state names and didn't do a registered rcp_in):

  • SETUP_RDX_RCP: Setup rayDirX reciprocal.
    • rcp_in <= rayDirX
    • rcp_abs <= 1
  • WAIT_SDX: (OPTIONAL) Wait state.
    • Do nothing
  • LOAD_SDX: Load stepDistX from rayDirX reciprocal.
    • stepDistX <= rcp_out -- could be combined with next step.
  • SETUP_RDY_RCP: Setup rayDirY rcp.
    • rcp_in <= rayDirY
  • WAIT_SDX: (OPTIONAL) Wait state.
    • Do nothing
  • LOAD_SDY: Load stepDistY from rayDirY rcp.
    • stepDistY <= rcp_out -- could be combined with next step.
  • TRACE_PREP:
    • Set initial mapXY.
    • Set trackDist, from trackInit.
  • TRACE_STEP:
    • As-is.
  • TRACE_TEST: -- later might get complex: map setup/read states esp. for SPI flash.
    • As-is.
  • TRACE_DONE:
    • Modify this to use rcp to get size from vdist.
  • More states required before hitting LINE_READY (which is when we present output).

Stats with wall_tracer reset before shared rcp

4x2:1 8x2:1 4x2:2 8x2:2 4x2:3 8x2:3 4x2:4 8x2:4
cells_pre_abc 29,767 29,767 29,767 29,767 29,821 29,821 29,767 29,767
TotalCells 18,157 41,510 18,157 41,676 0 0 14,659 39,576
suggested_mhz 24.39 25.00 47.62 38.12 47.62 47.62 47.62 34.72
logic_cells 15,837 16,500 15,837 16,526 12,387 12,387 12,339 12,972
utilisation_% 105.72 52.47 105.72 52.47 84.64 42.01 82.28 40.83
wire_length_um 0 533,398 0 535,363 0 0 0 367,744

Stats for first shared_reciprocal attempt

4x2:1 8x2:1 4x2:2 8x2:2 4x2:3 8x2:3 4x2:4 8x2:4
cells_pre_abc 22,238 22,238 22,238 22,238 22,239 22,239 22,238 22,238
TotalCells 15,023 39,886 15,023 39,842 0 0 13,089 38,725
suggested_mhz 24.39 25.00 47.62 42.99 47.62 47.62 47.62 40.63
logic_cells 12,703 13,430 12,703 13,445 10,769 14,631 10,769 11,349
utilisation_% 87.51 43.43 87.51 43.43 70.48 34.98 70.68 35.08
wire_length_um 0 390,987 0 390,351 0 4,029,628 0 286,517

NOTE:

  • Still only fits 8x2 so far but looking closer to fitting 4x2.
  • ~22.2k cells reduces to ~11.3k with combo 4. A bit of an improvement over yesterday.
  • That combo 4's clock is up to ~40MHz from ~34MHz yesterday, too.
  • There were fewer antenna violations (5, down from 7) and they're a little less severe: 575/400 was the worst.
  • Power reduced from 2.84W to 0.89W

Max. expected clocks needed for tracing:

  • Each line:
    • Reset
    • 3 for RDX rcp
    • 3 for RDY rcp
    • TRACE_PREP
    • (Corner-to-corner of 64x64 map is about 90 cells. This could mean 90 X tests, and 90 Y tests, though realistically shouldn't be more than 64 of each. Let's work with 90, though...)
    • 180x STEP
    • 180x TEST
    • TRACE_DONE
    • 3 for vdist rcp
    • TOTAL: 372 max.
  • But I THINK for all reasonable cases it should be more like 12+(128*2)=268
  • This means that our 800-wide line could be made up of:
    • 270 tracing clocks.
    • 256 map overlay clocks (to avoid ROM contention).
    • 274 spare clocks -- divide by 5 means we could receive up to 54 SPI bits, but more likely 40 given MCU response time. Hence, we could load new 80-bit vectors within 2 lines (so long as they were double-buffered on input), or 144-bit vectors within 4 lines.
  • NOTE: Timing gets much worse if we need to support reading from SPI ROM. In that case, maybe it would be better to have:
    • An initial state just for clocking out a 12-bit address (made up of half row, half column).
    • A state to increment/decrement each independently. External logic will be needed for this.
    • NOTE: Why just 12 bits? We could go more, and support larger and non-square maps even.

Notes

  • To use make clean_sim_random on my Legion 7 Win 11 Home laptop, I had to configure the 'Windows Time' service to be auto-start (Automatic (Delayed Start)). This is because the script winrand.bat relies on it to generate a random number. A bit silly, really!

  • Combo 3 at 8x2 got stuck running way too long on detailed routing (I think over 45mins before I killed it). This was its log:

    Click to show log...
    OpenROAD 7f00621cb612fd94e15b35790afe744c89d433a7 
    This program is licensed under the BSD-3 license. See the LICENSE file for details.
    Components of this program may be licensed under more restrictive licenses which must be honored.
    [INFO ORD-0030] Using 15 thread(s).
    [INFO DRT-0149] Reading tech and libs.
    
    Units:                1000
    Number of layers:     13
    Number of macros:     441
    Number of vias:       25
    Number of viarulegen: 25
    
    [INFO DRT-0150] Reading design.
    
    Design:                   tt_um_algofoogle_raybox_zero
    Die area:                 ( 0 0 ) ( 1359760 225760 )
    Number of track patterns: 12
    Number of DEF vias:       3
    Number of components:     42597
    Number of terminals:      45
    Number of snets:          2
    Number of nets:           11180
    
    [INFO DRT-0167] List of default vias:
    Layer mcon
        default via: L1M1_PR
    Layer via
        default via: M1M2_PR
    Layer via2
        default via: M2M3_PR
    Layer via3
        default via: M3M4_PR
    Layer via4
        default via: M4M5_PR
    [INFO DRT-0162] Library cell analysis.
    [INFO DRT-0163] Instance analysis.
    Complete 10000 instances.
    Complete 20000 instances.
    Complete 30000 instances.
    Complete 40000 instances.
    [INFO DRT-0164] Number of unique instances = 408.
    [INFO DRT-0168] Init region query.
    [INFO DRT-0018]   Complete 10000 insts.
    [INFO DRT-0018]   Complete 20000 insts.
    [INFO DRT-0018]   Complete 30000 insts.
    [INFO DRT-0018]   Complete 40000 insts.
    [INFO DRT-0024]   Complete FR_MASTERSLICE.
    [INFO DRT-0024]   Complete Fr_VIA.
    [INFO DRT-0024]   Complete li1.
    [INFO DRT-0024]   Complete mcon.
    [INFO DRT-0024]   Complete met1.
    [INFO DRT-0024]   Complete via.
    [INFO DRT-0024]   Complete met2.
    [INFO DRT-0024]   Complete via2.
    [INFO DRT-0024]   Complete met3.
    [INFO DRT-0024]   Complete via3.
    [INFO DRT-0024]   Complete met4.
    [INFO DRT-0024]   Complete via4.
    [INFO DRT-0024]   Complete met5.
    [INFO DRT-0033] FR_MASTERSLICE shape region query size = 0.
    [INFO DRT-0033] FR_VIA shape region query size = 0.
    [INFO DRT-0033] li1 shape region query size = 528468.
    [INFO DRT-0033] mcon shape region query size = 478629.
    [INFO DRT-0033] met1 shape region query size = 104208.
    [INFO DRT-0033] via shape region query size = 3690.
    [INFO DRT-0033] met2 shape region query size = 2214.
    [INFO DRT-0033] via2 shape region query size = 2952.
    [INFO DRT-0033] met3 shape region query size = 2214.
    [INFO DRT-0033] via3 shape region query size = 2952.
    [INFO DRT-0033] met4 shape region query size = 817.
    [INFO DRT-0033] via4 shape region query size = 0.
    [INFO DRT-0033] met5 shape region query size = 0.
    [INFO DRT-0165] Start pin access.
    [INFO DRT-0076]   Complete 100 pins.
    [INFO DRT-0076]   Complete 200 pins.
    [INFO DRT-0076]   Complete 300 pins.
    [INFO DRT-0076]   Complete 400 pins.
    [INFO DRT-0076]   Complete 500 pins.
    [INFO DRT-0076]   Complete 600 pins.
    [INFO DRT-0076]   Complete 700 pins.
    [INFO DRT-0076]   Complete 800 pins.
    [INFO DRT-0076]   Complete 900 pins.
    [INFO DRT-0077]   Complete 1000 pins.
    [INFO DRT-0078]   Complete 1632 pins.
    [INFO DRT-0079]   Complete 100 unique inst patterns.
    [INFO DRT-0079]   Complete 200 unique inst patterns.
    [INFO DRT-0079]   Complete 300 unique inst patterns.
    [INFO DRT-0081]   Complete 390 unique inst patterns.
    [INFO DRT-0082]   Complete 1000 groups.
    [INFO DRT-0082]   Complete 2000 groups.
    [INFO DRT-0082]   Complete 3000 groups.
    [INFO DRT-0082]   Complete 4000 groups.
    [INFO DRT-0082]   Complete 5000 groups.
    [INFO DRT-0082]   Complete 6000 groups.
    [INFO DRT-0082]   Complete 7000 groups.
    [INFO DRT-0082]   Complete 8000 groups.
    [INFO DRT-0082]   Complete 9000 groups.
    [INFO DRT-0083]   Complete 10000 groups.
    [INFO DRT-0084]   Complete 13721 groups.
    #scanned instances     = 42597
    #unique  instances     = 408
    #stdCellGenAp          = 12244
    #stdCellValidPlanarAp  = 100
    #stdCellValidViaAp     = 9202
    #stdCellPinNoAp        = 0
    #stdCellPinCnt         = 37919
    #instTermValidViaApCnt = 0
    #macroGenAp            = 0
    #macroValidPlanarAp    = 0
    #macroValidViaAp       = 0
    #macroNoAp             = 0
    [INFO DRT-0166] Complete pin access.
    [INFO DRT-0267] cpu time = 00:01:21, elapsed time = 00:00:05, memory = 319.02 (MB), peak = 319.02 (MB)
    [INFO DRT-0156] guideIn read 100000 guides.
    
    Number of guides:     166290
    
    [INFO DRT-0169] Post process guides.
    [INFO DRT-0176] GCELLGRID X 0 DO 197 STEP 6900 ;
    [INFO DRT-0177] GCELLGRID Y 0 DO 32 STEP 6900 ;
    [INFO DRT-0026]   Complete 10000 origin guides.
    [INFO DRT-0026]   Complete 20000 origin guides.
    [INFO DRT-0026]   Complete 30000 origin guides.
    [INFO DRT-0026]   Complete 40000 origin guides.
    [INFO DRT-0026]   Complete 50000 origin guides.
    [INFO DRT-0026]   Complete 60000 origin guides.
    [INFO DRT-0026]   Complete 70000 origin guides.
    [INFO DRT-0026]   Complete 80000 origin guides.
    [INFO DRT-0026]   Complete 90000 origin guides.
    [INFO DRT-0027]   Complete 100000 origin guides.
    [INFO DRT-0028]   Complete FR_MASTERSLICE.
    [INFO DRT-0028]   Complete Fr_VIA.
    [INFO DRT-0028]   Complete li1.
    [INFO DRT-0028]   Complete mcon.
    [INFO DRT-0028]   Complete met1.
    [INFO DRT-0028]   Complete via.
    [INFO DRT-0028]   Complete met2.
    [INFO DRT-0028]   Complete via2.
    [INFO DRT-0028]   Complete met3.
    [INFO DRT-0028]   Complete via3.
    [INFO DRT-0028]   Complete met4.
    [INFO DRT-0028]   Complete via4.
    [INFO DRT-0028]   Complete met5.
    [WARNING DRT-0225] _00006_ 3 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _00198_ 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _00246_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _00482_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _00651_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _00720_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _00935_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _00986_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _01047_ 5 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _01058_ 5 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _01080_ 6 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _01186_ 8 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _01201_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _01203_ 11 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _01252_ 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _01279_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _01312_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _01390_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _01528_ 4 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _01529_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _01534_ 3 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _01588_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _01594_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _01621_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _01656_ 7 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _01660_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _01665_ 8 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _01714_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _01727_ 3 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _01760_ 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _01789_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _01792_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _01809_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _02245_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _02485_ 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _02489_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _02575_ 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _02728_ 9 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _02742_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _02838_ 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _02919_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _03054_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _03080_ 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _03103_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _03159_ 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _03201_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _03263_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _03381_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _03448_ 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _03481_ 5 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _03491_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _03652_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _03665_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _03714_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _03808_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _03825_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _03828_ 8 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _03830_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _03833_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _03839_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _03870_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _04159_ 4 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _04184_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _04185_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _04202_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _04211_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _04233_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _04257_ 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _04421_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _04512_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _04580_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _04614_ 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _04720_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _04815_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _04848_ 3 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _04940_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _04957_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _04981_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _04988_ 3 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _05007_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _05053_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _05078_ 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _05120_ 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _05136_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _05141_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _05336_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _05351_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _05387_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _05499_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _05598_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _05636_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _05653_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _05702_ 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _05753_ 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _05889_ 6 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _05907_ 9 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _05981_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _05993_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _06006_ 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _06173_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _06201_ 6 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _06254_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _06256_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _06273_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _06308_ 7 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _06331_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _06358_ 9 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _06365_ 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _06377_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _06397_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _06427_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _06435_ 3 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _06437_ 3 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _06483_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _06618_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _06656_ 3 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _06723_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _06944_ 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _07036_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _07124_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _07139_ 6 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _07165_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _07183_ 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _07208_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _07224_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _07237_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _07333_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _07392_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _07418_ 3 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _07504_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _07645_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _07697_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _07916_ 9 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _07973_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _07995_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08018_ 10 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08019_ 3 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08038_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08068_ 7 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08097_ 4 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08107_ 3 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08133_ 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08143_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08169_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08193_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08215_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08258_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08262_ 8 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08268_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08273_ 7 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08302_ 3 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08304_ 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08305_ 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08341_ 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08354_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08378_ 15 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08438_ 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08463_ 9 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08594_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08616_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08696_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08834_ 3 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08879_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08923_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08947_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _08961_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _09053_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _09219_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _09253_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _09279_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _09281_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _09345_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _09369_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _09370_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _09472_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _09543_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _09544_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _09627_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _09655_ 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _09734_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _09745_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _09752_ 4 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _09781_ 3 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _09836_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _09837_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _09840_ 7 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _09877_ 1 pin not visited, fall back to feedthrough mode.
    complete 10000 nets.
    [WARNING DRT-0225] _10009_ 5 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _10041_ 4 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] _10114_ 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.facingX\[-6\] 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.facingX\[0\] 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.facingX\[10\] 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.hpos\[0\] 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.hpos\[7\] 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.hpos\[9\] 6 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.playerX\[-9\] 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.playerY\[-3\] 4 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.playerY\[-4\] 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.pov.ready_buffer\[101\] 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.pov.ready_buffer\[87\] 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.pov.spi_buffer\[104\] 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.pov.spi_buffer\[123\] 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.pov.spi_buffer\[49\] 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.pov.spi_buffer\[65\] 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.pov.spi_buffer\[70\] 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.pov.spi_buffer\[88\] 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.pov.spi_buffer\[94\] 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.pov.spi_buffer\[99\] 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.pov.vplaneY\[-10\] 8 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.wall_tracer.rayAddendY\[0\] 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.wall_tracer.rcp_sel 6 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.wall_tracer.stepDistX\[9\] 5 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.wall_tracer.stepDistY\[-1\] 3 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.wall_tracer.stepDistY\[-4\] 3 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.wall_tracer.stepDistY\[8\] 6 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.wall_tracer.trackDistX\[-10\] 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.wall_tracer.trackDistX\[-12\] 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.wall_tracer.trackDistY\[-10\] 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.wall_tracer.trackDistY\[-8\] 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] rbzero.wall_tracer.trackDistY\[5\] 6 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] net1 4 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] clknet_leaf_5_clk 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] clknet_leaf_26_clk 6 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] clknet_leaf_28_clk 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] net90 2 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] net325 1 pin not visited, fall back to feedthrough mode.
    [WARNING DRT-0225] net337 1 pin not visited, fall back to feedthrough mode.
    [INFO DRT-0178] Init guide query.
    [INFO DRT-0029]   Complete 10000 nets (guide).
    [INFO DRT-0035]   Complete FR_MASTERSLICE (guide).
    [INFO DRT-0035]   Complete Fr_VIA (guide).
    [INFO DRT-0035]   Complete li1 (guide).
    [INFO DRT-0035]   Complete mcon (guide).
    [INFO DRT-0035]   Complete met1 (guide).
    [INFO DRT-0035]   Complete via (guide).
    [INFO DRT-0035]   Complete met2 (guide).
    [INFO DRT-0035]   Complete via2 (guide).
    [INFO DRT-0035]   Complete met3 (guide).
    [INFO DRT-0035]   Complete via3 (guide).
    [INFO DRT-0035]   Complete met4 (guide).
    [INFO DRT-0035]   Complete via4 (guide).
    [INFO DRT-0035]   Complete met5 (guide).
    [INFO DRT-0036] FR_MASTERSLICE guide region query size = 0.
    [INFO DRT-0036] FR_VIA guide region query size = 0.
    [INFO DRT-0036] li1 guide region query size = 49085.
    [INFO DRT-0036] mcon guide region query size = 0.
    [INFO DRT-0036] met1 guide region query size = 54731.
    [INFO DRT-0036] via guide region query size = 0.
    [INFO DRT-0036] met2 guide region query size = 31520.
    [INFO DRT-0036] via2 guide region query size = 0.
    [INFO DRT-0036] met3 guide region query size = 14535.
    [INFO DRT-0036] via3 guide region query size = 0.
    [INFO DRT-0036] met4 guide region query size = 5181.
    [INFO DRT-0036] via4 guide region query size = 0.
    [INFO DRT-0036] met5 guide region query size = 0.
    [INFO DRT-0179] Init gr pin query.
    [INFO DRT-0245] skipped writing guide updates to database.
    [INFO DRT-0185] Post process initialize RPin region query.
    [INFO DRT-0181] Start track assignment.
    [INFO DRT-0184] Done with 85786 vertical wires in 4 frboxes and 69266 horizontal wires in 1 frboxes.
    [INFO DRT-0186] Done with 52487 vertical wires in 4 frboxes and 64601 horizontal wires in 1 frboxes.
    [INFO DRT-0182] Complete track assignment.
    [INFO DRT-0267] cpu time = 00:00:31, elapsed time = 00:00:22, memory = 516.79 (MB), peak = 649.79 (MB)
    [INFO DRT-0187] Start routing data preparation.
    [INFO DRT-0267] cpu time = 00:00:00, elapsed time = 00:00:00, memory = 592.06 (MB), peak = 649.79 (MB)
    [INFO DRT-0194] Start detail routing.
    [INFO DRT-0195] Start 0th optimization iteration.
        Completing 10% with 0 violations.
        elapsed time = 00:02:54, memory = 1665.39 (MB).
        Completing 20% with 0 violations.
        elapsed time = 00:05:29, memory = 2176.18 (MB).
        Completing 30% with 0 violations.
        elapsed time = 00:07:00, memory = 2428.37 (MB).
        Completing 40% with 546821 violations.
        elapsed time = 00:11:09, memory = 2650.96 (MB).
        Completing 50% with 546821 violations.
        elapsed time = 00:13:40, memory = 2851.23 (MB).
        Completing 60% with 1106629 violations.
        elapsed time = 00:16:39, memory = 3054.27 (MB).
        Completing 70% with 1106629 violations.
        elapsed time = 00:20:40, memory = 3104.85 (MB).
        Completing 80% with 1106629 violations.
        elapsed time = 00:22:40, memory = 3219.21 (MB).
        Completing 90% with 1650316 violations.
        elapsed time = 00:27:01, memory = 3589.81 (MB).
        Completing 100% with 2211654 violations.
        elapsed time = 00:30:01, memory = 3814.49 (MB).
    [INFO DRT-0199]   Number of violations = 2246712.
    Viol/Layer         li1   mcon   met1    via   met2   via2   met3   via3   met4
    Cut Spacing          0    517      0    209      0    159      0      2      0
    Metal Spacing     7699      0  70610      0  25843      0   4513      0   1775
    Min Hole             0      0      8      0      2      0      0      0      0
    NS Metal             0      0      1      0      0      0      0      0      0
    Recheck          30152      0   3822      0    555      0    305      0    224
    Short            12398   96531636945   5293 337425    325  69941    295  28041
    [INFO DRT-0267] cpu time = 05:52:07, elapsed time = 00:30:03, memory = 3961.18 (MB), peak = 3961.18 (MB)
    Total wire length = 3950600 um.
    Total wire length on LAYER li1 = 0 um.
    Total wire length on LAYER met1 = 2236774 um.
    Total wire length on LAYER met2 = 875631 um.
    Total wire length on LAYER met3 = 544042 um.
    Total wire length on LAYER met4 = 294151 um.
    Total wire length on LAYER met5 = 0 um.
    Total number of vias = 148234.
    Up-via summary (total 148234):.
    
    -------------------------
    FR_MASTERSLICE         0
                li1     40888
            met1     74541
            met2     20762
            met3     12043
            met4         0
    -------------------------
                    148234
    
    
    [INFO DRT-0195] Start 1st optimization iteration.
        Completing 10% with 2246712 violations.
        elapsed time = 00:03:01, memory = 3978.16 (MB).
        Completing 20% with 2246712 violations.
        elapsed time = 00:06:02, memory = 4100.40 (MB).
        Completing 30% with 2246712 violations.
        elapsed time = 00:08:34, memory = 4430.09 (MB).
        Completing 40% with 2883093 violations.
        elapsed time = 00:13:09, memory = 4305.48 (MB).
        Completing 50% with 2883093 violations.
        elapsed time = 00:15:56, memory = 4441.07 (MB).
        Completing 60% with 3358235 violations.
        elapsed time = 00:20:45, memory = 4516.61 (MB).
        Completing 70% with 3358235 violations.
        elapsed time = 00:24:46, memory = 4652.23 (MB).
        Completing 80% with 3358235 violations.
        elapsed time = 00:28:37, memory = 5120.28 (MB).
        Completing 90% with 3990890 violations.
        elapsed time = 00:35:41, memory = 5088.08 (MB).
        Completing 100% with 4483066 violations.
        elapsed time = 00:39:22, memory = 5299.86 (MB).
    [INFO DRT-0199]   Number of violations = 4495042.
    Viol/Layer        mcon   met1    via   met2   via2   met3   via3   met4
    Cut Spacing        352      0    711      0    135      0     10      0
    Metal Spacing        0 355496      0 104340      0  33236      0   1236
    Min Hole             0     57      0      1      0      0      0      0
    NS Metal             0      3      0      0      0      0      0      0
    Recheck              0    758      0      4      0   5288      0   5926
    Short                03015270   2250 741851    365 178593    175  48985
    [INFO DRT-0267] cpu time = 08:13:42, elapsed time = 00:39:25, memory = 5498.11 (MB), peak = 5498.11 (MB)
    Total wire length = 4029628 um.
    Total wire length on LAYER li1 = 0 um.
    Total wire length on LAYER met1 = 2088906 um.
    Total wire length on LAYER met2 = 974752 um.
    Total wire length on LAYER met3 = 634340 um.
    Total wire length on LAYER met4 = 331629 um.
    Total wire length on LAYER met5 = 0 um.
    Total number of vias = 150258.
    Up-via summary (total 150258):.
    
    -------------------------
    FR_MASTERSLICE         0
                li1     40880
            met1     73111
            met2     23982
            met3     12285
            met4         0
    -------------------------
                    150258
    
    
    [INFO DRT-0195] Start 2nd optimization iteration.
        Completing 10% with 4495042 violations.
        elapsed time = 00:04:04, memory = 5350.59 (MB).
        Completing 20% with 4495042 violations.
        elapsed time = 00:06:43, memory = 5377.40 (MB).
    

Next steps

  • Try putting height_scaler into wall_tracer too, making it shared. Rename it: size_scaler.
  • Compare cell count when using rcp_in as a register instead of mux.
  • Try reducing size of facing/vplane vectors.
  • Try a bigger map.
  • Combine TraceStep and TraceTest if using combo map ROM. No good if using external ROM.
  • IS there a way to combine STEP and TEST? I feel like there should be:
    • Maybe there's even a way to avoid trackDistY-stepDistY by holding a previous value.
  • Move the rcp OUT of wall_tracer, along with vdist-to-size?

NOTE: What we gain in sharing rcp could also be eroded by needing extra registers, mux logic, etc...