more constraint stuff
This commit is contained in:
parent
ea3d579c13
commit
eef05e4712
@ -534,9 +534,22 @@ Arch::Arch(ArchArgs args) : args(args)
|
|||||||
if (speed == nullptr) {
|
if (speed == nullptr) {
|
||||||
log_error("Unsuported speed grade '%s'.\n", args.speed.c_str());
|
log_error("Unsuported speed grade '%s'.\n", args.speed.c_str());
|
||||||
}
|
}
|
||||||
|
const VariantPOD* variant = nullptr;
|
||||||
|
for (unsigned int i = 0; i < db->num_variants; i++) {
|
||||||
|
auto var = &db->variants[i];
|
||||||
|
std::cout << IdString(var->name_id).str(this) << std::endl;
|
||||||
|
if (IdString(var->name_id) == id(args.device)) {
|
||||||
|
variant = var;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (variant == nullptr) {
|
||||||
|
log_error("Unsuported device grade '%s'.\n", args.device.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
package = nullptr;
|
package = nullptr;
|
||||||
for (unsigned int i = 0; i < db->num_packages; i++) {
|
for (unsigned int i = 0; i < variant->num_packages; i++) {
|
||||||
auto pkg = &db->packages[i];
|
auto pkg = &variant->packages[i];
|
||||||
// std::cout << IdString(pkg->name_id).str(this) << std::endl;
|
// std::cout << IdString(pkg->name_id).str(this) << std::endl;
|
||||||
if (IdString(pkg->name_id) == id(args.package)) {
|
if (IdString(pkg->name_id) == id(args.package)) {
|
||||||
package = pkg;
|
package = pkg;
|
||||||
|
10
gowin/arch.h
10
gowin/arch.h
@ -124,6 +124,12 @@ NPNR_PACKED_STRUCT(struct PackagePOD {
|
|||||||
RelPtr<PairPOD> pins;
|
RelPtr<PairPOD> pins;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
NPNR_PACKED_STRUCT(struct VariantPOD {
|
||||||
|
uint32_t name_id;
|
||||||
|
uint32_t num_packages;
|
||||||
|
RelPtr<PackagePOD> packages;
|
||||||
|
});
|
||||||
|
|
||||||
NPNR_PACKED_STRUCT(struct DatabasePOD {
|
NPNR_PACKED_STRUCT(struct DatabasePOD {
|
||||||
RelPtr<char> family;
|
RelPtr<char> family;
|
||||||
uint32_t version;
|
uint32_t version;
|
||||||
@ -134,8 +140,8 @@ NPNR_PACKED_STRUCT(struct DatabasePOD {
|
|||||||
RelPtr<GlobalAliasPOD> aliases;
|
RelPtr<GlobalAliasPOD> aliases;
|
||||||
uint32_t num_speeds;
|
uint32_t num_speeds;
|
||||||
RelPtr<TimingClassPOD> speeds;
|
RelPtr<TimingClassPOD> speeds;
|
||||||
uint32_t num_packages;
|
uint32_t num_variants;
|
||||||
RelPtr<PackagePOD> packages;
|
RelPtr<VariantPOD> variants;
|
||||||
uint16_t num_constids;
|
uint16_t num_constids;
|
||||||
uint16_t num_ids;
|
uint16_t num_ids;
|
||||||
RelPtr<RelPtr<char>> id_strs;
|
RelPtr<RelPtr<char>> id_strs;
|
||||||
|
Loading…
Reference in New Issue
Block a user