Skip to content

Packing Devices from Two Separate Parts of a Netlist into a Single CLB #2726

Open
@WindFrank

Description

Packing Devices from Two Separate Parts of a Netlist into a Single CLB
Hi VTR team,
I merged two netlists into a single BLIF file and used VPR to obtain its design solution on the architecture. However, I noticed that the worst slack of the solution was much lower than expected.

solution_whole

solution_abnormal_clb

Expected Behaviour

It would be more optimal if the devices from the two netlists were packed into two separate CLBs and placed closer to their respective IOs.

Current Behaviour

Upon reviewing the design, I found that a single CLB contained devices from both merged netlists. VPR had to consider the connections from this CLB to the IOs on two opposite sides of the architecture, resulting in the CLB being placed in the middle of the architecture.

Possible Solution

I have experimented with the command options for Packing and Placement as outlined in the VTR documentation, but have seen no improvement. I suspect that the packing algorithm may need to be examined for potential bugs. Additionally, it might be beneficial for the VTR flow to consider implementing a strategy that involves splitting inappropriately packed CLBs.

Steps to Reproduce

Run the following command:
vpr EArch_fixed_160_230_no_power.xml condition_program_first2713_and_condition_program_first5685.pre-vpr --circuit_file condition_program_first2713_and_condition_program_first5685.pre-vpr.blif --device fixed --route_chan_width 100 --alpha_clustering 1 --place_quench_algorithm slack_timing --noc_placement_weighting 0 --noc_latency_weighting 0 --noc_swap_percentage 0 --timing_report_detail detailed --timing_report_npaths 100000 --fix_clusters condition_program_first2713_and_condition_program_first5685_fixed_pin.place

Context

I am attempting to obtain a high-performance P&R solution but encountered an unexpected detour situation. I would greatly appreciate a prompt response.

Your Environment

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions