Merge pull request #711 from acomodi/interchange-site-to-pseudo-pips

interchange: phys: add site instance idstr for pseudo tile PIPs
This commit is contained in:
gatecat 2021-05-20 19:45:27 +01:00 committed by GitHub
commit 54b8364cea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 30 additions and 5 deletions

View File

@ -22,14 +22,17 @@ jobs:
uses: hendrikmuhs/ccache-action@v1
- name: Get yosys
run: git clone https://github.com/YosysHQ/yosys.git
run: |
git clone https://github.com/YosysHQ/yosys.git
cd yosys
echo "YOSYS_SHA=$(git rev-parse HEAD)" >> $GITHUB_ENV
- name: Cache yosys installation
uses: actions/cache@v2
id: cache-yosys
with:
path: .yosys
key: cache-yosys-${{ hashFiles('**/yosys/.git/HEAD') }}
key: cache-yosys-${{ env.YOSYS_SHA }}
- name: Build yosys
run: |
@ -88,14 +91,17 @@ jobs:
uses: hendrikmuhs/ccache-action@v1
- name: Get yosys
run: git clone https://github.com/YosysHQ/yosys.git
run: |
git clone https://github.com/YosysHQ/yosys.git
cd yosys
echo "YOSYS_SHA=$(git rev-parse HEAD)" >> $GITHUB_ENV
- name: Cache yosys installation
uses: actions/cache@v2
id: cache-yosys
with:
path: .yosys
key: cache-yosys-${{ hashFiles('**/yosys/.git/HEAD') }}
key: cache-yosys-${{ env.YOSYS_SHA }}
- name: Build yosys
run: |

@ -1 +1 @@
Subproject commit b3ab09776c8dc31a71ca2c7fbcb4575219232d16
Subproject commit 7e850b6bb0d5c4b7e25e94ce9fbbd68a0dbc1e1a

View File

@ -91,6 +91,25 @@ static PhysicalNetlist::PhysNetlist::RouteBranch::Builder emit_branch(
pip_obj.setForward(true);
pip_obj.setIsFixed(pip_place_strength.at(pip) >= STRENGTH_FIXED);
// If this is a pseudo PIP, get its name
if (pip_data.pseudo_cell_wires.size() != 0) {
for (int32_t wire_index : pip_data.pseudo_cell_wires) {
const TileWireInfoPOD &wire_data = tile_type.wire_data[wire_index];
if (wire_data.site == -1) {
continue;
}
const SiteInstInfoPOD & site_data = site_inst_info(ctx->chip_info, pip.tile, wire_data.site);
std::string site_name = site_data.site_name.get();
int site_idx = strings->get_index(site_name);
pip_obj.setSite(site_idx);
// It is assumed that a pseudo PIP traverses one site only
break;
}
}
return branch;
} else {
BelId bel;