aboutsummaryrefslogtreecommitdiffstats
path: root/mistral
diff options
context:
space:
mode:
Diffstat (limited to 'mistral')
-rw-r--r--mistral/arch.cc12
-rw-r--r--mistral/globals.cc13
2 files changed, 13 insertions, 12 deletions
diff --git a/mistral/arch.cc b/mistral/arch.cc
index 60456846..034ecb98 100644
--- a/mistral/arch.cc
+++ b/mistral/arch.cc
@@ -81,18 +81,16 @@ Arch::Arch(ArchArgs args)
auto hps_pos = cyclonev->hps_get_pos();
if (!hps_pos.empty()) {
- create_hps_mpu_general_purpose(CycloneV::pos2x(hps_pos[CycloneV::I_HPS_MPU_GENERAL_PURPOSE]), CycloneV::pos2y(hps_pos[CycloneV::I_HPS_MPU_GENERAL_PURPOSE]));
+ create_hps_mpu_general_purpose(CycloneV::pos2x(hps_pos[CycloneV::I_HPS_MPU_GENERAL_PURPOSE]),
+ CycloneV::pos2y(hps_pos[CycloneV::I_HPS_MPU_GENERAL_PURPOSE]));
}
// This import takes about 5s, perhaps long term we can speed it up, e.g. defer to Mistral more...
log_info("Initialising routing graph...\n");
int pip_count = 0;
- for (const auto &mux : cyclonev->dest_node_to_rmux) {
- const auto &rmux = cyclonev->rmux_info[mux.second];
- WireId dst_wire(mux.first);
- for (const auto &src : rmux.sources) {
- if (CycloneV::rn2t(src) == CycloneV::NONE)
- continue;
+ for (const auto &rnode : cyclonev->rnodes()) {
+ WireId dst_wire(rnode.id());
+ for (const auto &src : rnode.sources()) {
WireId src_wire(src);
wires[dst_wire].wires_uphill.push_back(src_wire);
wires[src_wire].wires_downhill.push_back(dst_wire);
diff --git a/mistral/globals.cc b/mistral/globals.cc
index 40d34155..d41b2afe 100644
--- a/mistral/globals.cc
+++ b/mistral/globals.cc
@@ -45,18 +45,21 @@ bool Arch::is_clkbuf_cell(IdString cell_type) const
void Arch::create_hps_mpu_general_purpose(int x, int y)
{
- BelId gp_bel = add_bel(x, y, id_cyclonev_hps_interface_mpu_general_purpose, id_cyclonev_hps_interface_mpu_general_purpose);
+ BelId gp_bel =
+ add_bel(x, y, id_cyclonev_hps_interface_mpu_general_purpose, id_cyclonev_hps_interface_mpu_general_purpose);
for (int i = 0; i < 32; i++) {
- add_bel_pin(gp_bel, id(stringf("gp_in[%d]", i)), PORT_IN, get_port(CycloneV::HPS_MPU_GENERAL_PURPOSE, x, y, -1, CycloneV::GP_IN, i));
- add_bel_pin(gp_bel, id(stringf("gp_out[%d]", i)), PORT_OUT, get_port(CycloneV::HPS_MPU_GENERAL_PURPOSE, x, y, -1, CycloneV::GP_OUT, i));
+ add_bel_pin(gp_bel, id(stringf("gp_in[%d]", i)), PORT_IN,
+ get_port(CycloneV::HPS_MPU_GENERAL_PURPOSE, x, y, -1, CycloneV::GP_IN, i));
+ add_bel_pin(gp_bel, id(stringf("gp_out[%d]", i)), PORT_OUT,
+ get_port(CycloneV::HPS_MPU_GENERAL_PURPOSE, x, y, -1, CycloneV::GP_OUT, i));
}
}
void Arch::create_control(int x, int y)
{
BelId oscillator_bel = add_bel(x, y, id_cyclonev_oscillator, id_cyclonev_oscillator);
- add_bel_pin(oscillator_bel, id("oscena"), PORT_IN, get_port(CycloneV::CTRL, x, y, -1, CycloneV::OSC_ENA, -1));
- add_bel_pin(oscillator_bel, id("clkout"), PORT_OUT, get_port(CycloneV::CTRL, x, y, -1, CycloneV::CLK_OUT, -1));
+ add_bel_pin(oscillator_bel, id("oscena"), PORT_IN, get_port(CycloneV::CTRL, x, y, -1, CycloneV::OSC_ENA, -1));
+ add_bel_pin(oscillator_bel, id("clkout"), PORT_OUT, get_port(CycloneV::CTRL, x, y, -1, CycloneV::CLK_OUT, -1));
add_bel_pin(oscillator_bel, id("clkout1"), PORT_OUT, get_port(CycloneV::CTRL, x, y, -1, CycloneV::CLK_OUT1, -1));
}