mistral: update to mistral dc82215

This commit is contained in:
Lofty 2023-09-02 10:12:54 +01:00
parent a9a9251e42
commit 5b99b99859
5 changed files with 13 additions and 13 deletions

View File

@ -43,7 +43,7 @@ void IdString::initialize_arch(const BaseCtx *ctx)
#undef X
}
CycloneV::rnode_t Arch::find_rnode(CycloneV::block_type_t bt, int x, int y, CycloneV::port_type_t port, int bi,
CycloneV::rnode_coords Arch::find_rnode(CycloneV::block_type_t bt, int x, int y, CycloneV::port_type_t port, int bi,
int pi) const
{
auto pn1 = CycloneV::pnode(bt, x, y, port, bi, pi);

View File

@ -466,7 +466,7 @@ struct Arch : BaseArch<ArchRanges>
void add_bel_pin(BelId bel, IdString pin, PortType dir, WireId wire);
CycloneV::rnode_t find_rnode(CycloneV::block_type_t bt, int x, int y, CycloneV::port_type_t port, int bi = -1,
CycloneV::rnode_coords find_rnode(CycloneV::block_type_t bt, int x, int y, CycloneV::port_type_t port, int bi = -1,
int pi = -1) const;
WireId get_port(CycloneV::block_type_t bt, int x, int y, int bi, CycloneV::port_type_t port, int pi = -1) const;
bool has_port(CycloneV::block_type_t bt, int x, int y, int bi, CycloneV::port_type_t port, int pi = -1) const;

View File

@ -88,13 +88,13 @@ struct BelId
unsigned int hash() const { return mkhash(pos, z); }
};
static constexpr auto invalid_rnode = std::numeric_limits<CycloneV::rnode_t>::max();
static constexpr auto invalid_rnode = std::numeric_limits<CycloneV::rnode_coords>::max();
struct WireId
{
WireId() = default;
explicit WireId(CycloneV::rnode_t node) : node(node){};
CycloneV::rnode_t node = invalid_rnode;
explicit WireId(CycloneV::rnode_coords node) : node(node){};
CycloneV::rnode_coords node = invalid_rnode;
// Wires created by nextpnr have rnode type >= 128
bool is_nextpnr_created() const
@ -112,8 +112,8 @@ struct WireId
struct PipId
{
PipId() = default;
PipId(CycloneV::rnode_t src, CycloneV::rnode_t dst) : src(src), dst(dst){};
CycloneV::rnode_t src = invalid_rnode, dst = invalid_rnode;
PipId(CycloneV::rnode_coords src, CycloneV::rnode_coords dst) : src(src), dst(dst){};
CycloneV::rnode_coords src = invalid_rnode, dst = invalid_rnode;
bool operator==(const PipId &other) const { return src == other.src && dst == other.dst; }
bool operator!=(const PipId &other) const { return src != other.src || dst != other.dst; }

View File

@ -30,13 +30,13 @@ struct MistralBitgen
Context *ctx;
CycloneV *cv;
using rnode_t = CycloneV::rnode_t;
using pnode_t = CycloneV::pnode_t;
using rnode_coords = CycloneV::rnode_coords;
using pnode_coords = CycloneV::pnode_coords;
using pos_t = CycloneV::pos_t;
using block_type_t = CycloneV::block_type_t;
using port_type_t = CycloneV::port_type_t;
rnode_t find_rnode(block_type_t bt, pos_t pos, port_type_t port, int bi = -1, int pi = -1) const
rnode_coords find_rnode(block_type_t bt, pos_t pos, port_type_t port, int bi = -1, int pi = -1) const
{
auto pn1 = CycloneV::pnode(bt, pos, port, bi, pi);
auto rn1 = cv->pnode_to_rnode(pn1);

View File

@ -303,7 +303,7 @@ bool Arch::getArcDelayOverride(const NetInfo *net_info, const PortRef &sink, Del
mistral::AnalogSim::wave input_wave[2], output_wave[2];
mistral::AnalogSim::time_interval output_delays[2];
mistral::AnalogSim::time_interval output_delay_sum[2];
std::vector<std::pair<mistral::CycloneV::rnode_t, int>> outputs;
std::vector<std::pair<mistral::CycloneV::rnode_coords, int>> outputs;
auto temp = mistral::CycloneV::T_100;
auto est = mistral::CycloneV::EST_SLOW;
@ -378,13 +378,13 @@ bool Arch::getArcDelayOverride(const NetInfo *net_info, const PortRef &sink, Del
: mistral::CycloneV::RF_RISE;
mistral::AnalogSim sim;
int input = -1;
std::vector<std::pair<mistral::CycloneV::rnode_t, int>> outputs;
std::vector<std::pair<mistral::CycloneV::rnode_coords, int>> outputs;
cyclonev->rnode_timing_build_circuit(src.node, temp, CycloneV::DELAY_MAX, actual_edge, sim, input, outputs);
sim.set_input_wave(input, input_wave[edge]);
auto o = std::find_if(
outputs.begin(), outputs.end(),
[&](std::pair<mistral::CycloneV::rnode_t, int> output) { return output.first == dst.node; });
[&](std::pair<mistral::CycloneV::rnode_coords, int> output) { return output.first == dst.node; });
NPNR_ASSERT(o != outputs.end());
output_wave[edge].clear();