From c75a924c3f9dba4fd7d5c4e9674b29f7869a4e52 Mon Sep 17 00:00:00 2001 From: David Shah Date: Wed, 18 Jul 2018 12:12:05 +0200 Subject: ice40: Assign ArchArgs after packing Signed-off-by: David Shah --- ice40/arch.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'ice40/arch.h') diff --git a/ice40/arch.h b/ice40/arch.h index 5dab414b..1c47e958 100644 --- a/ice40/arch.h +++ b/ice40/arch.h @@ -584,7 +584,7 @@ struct Arch : BaseCtx range.e.cursor = chip_info->num_pips; return range; } - + IdString getPipName(PipId pip) const; uint32_t getPipChecksum(PipId pip) const { return pip.index; } -- cgit v1.2.3 From 70cfa7a6a4bbc796f1ddf23f53a932538eb3b84d Mon Sep 17 00:00:00 2001 From: David Shah Date: Wed, 18 Jul 2018 12:21:02 +0200 Subject: ice40: Make assignArchArgs a Arch method; call also after legaliser Signed-off-by: David Shah --- ice40/arch.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'ice40/arch.h') diff --git a/ice40/arch.h b/ice40/arch.h index 1c47e958..8821ded2 100644 --- a/ice40/arch.h +++ b/ice40/arch.h @@ -705,6 +705,11 @@ struct Arch : BaseCtx // Helper function for above bool logicCellsCompatible(const std::vector &cells) const; + // ------------------------------------------------- + // Assign architecure-specific arguments to nets and cells, which must be called between packing or further + // netlist modifications, and validity checks + void assignArchArgs(); + IdString id_glb_buf_out; IdString id_icestorm_lc, id_sb_io, id_sb_gb; IdString id_cen, id_clk, id_sr; -- cgit v1.2.3 From d392b5f63587339c27a30c247f4a045f923edc4b Mon Sep 17 00:00:00 2001 From: David Shah Date: Wed, 18 Jul 2018 12:51:07 +0200 Subject: ice40: Use xArchArgs in validity check Signed-off-by: David Shah --- ice40/arch.h | 1 + 1 file changed, 1 insertion(+) (limited to 'ice40/arch.h') diff --git a/ice40/arch.h b/ice40/arch.h index 8821ded2..8c1a3d41 100644 --- a/ice40/arch.h +++ b/ice40/arch.h @@ -709,6 +709,7 @@ struct Arch : BaseCtx // Assign architecure-specific arguments to nets and cells, which must be called between packing or further // netlist modifications, and validity checks void assignArchArgs(); + void assignCellArgs(CellInfo *cell); IdString id_glb_buf_out; IdString id_icestorm_lc, id_sb_io, id_sb_gb; -- cgit v1.2.3 From 08ceb8a059d96a0546c02eb3ee75e46093e2ee44 Mon Sep 17 00:00:00 2001 From: David Shah Date: Wed, 18 Jul 2018 14:34:32 +0200 Subject: ice40: Renaming Signed-off-by: David Shah --- ice40/arch.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'ice40/arch.h') diff --git a/ice40/arch.h b/ice40/arch.h index 8c1a3d41..f0f734ce 100644 --- a/ice40/arch.h +++ b/ice40/arch.h @@ -708,8 +708,8 @@ struct Arch : BaseCtx // ------------------------------------------------- // Assign architecure-specific arguments to nets and cells, which must be called between packing or further // netlist modifications, and validity checks - void assignArchArgs(); - void assignCellArgs(CellInfo *cell); + void assignArchInfo(); + void assignCellInfo(CellInfo *cell); IdString id_glb_buf_out; IdString id_icestorm_lc, id_sb_io, id_sb_gb; -- cgit v1.2.3 From b0d9b994eb211f4c4060f6b9802ea5692512e08c Mon Sep 17 00:00:00 2001 From: David Shah Date: Thu, 19 Jul 2018 11:14:43 +0200 Subject: ice40: Adding data for extra cell configuration Signed-off-by: David Shah --- ice40/arch.h | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'ice40/arch.h') diff --git a/ice40/arch.h b/ice40/arch.h index f0f734ce..3b6d23dc 100644 --- a/ice40/arch.h +++ b/ice40/arch.h @@ -153,15 +153,31 @@ NPNR_PACKED_STRUCT(struct BitstreamInfoPOD { RelPtr ierens; }); +NPNR_PACKED_STRUCT(struct BelConfigEntryPOD { + RelPtr entry_name; + RelPtr cbit_name; + int8_t x, y; + int16_t padding; +}); + +// Stores mapping between bel parameters and config bits, +// for extra cells where this mapping is non-trivial +NPNR_PACKED_STRUCT(struct BelConfigPOD { + int32_t bel_index; + int32_t num_entries; + RelPtr entries; +}); + NPNR_PACKED_STRUCT(struct ChipInfoPOD { int32_t width, height; int32_t num_bels, num_wires, num_pips; - int32_t num_switches, num_packages; + int32_t num_switches, num_belcfgs, num_packages; RelPtr bel_data; RelPtr wire_data; RelPtr pip_data; RelPtr tile_grid; RelPtr bits_info; + RelPtr bel_config; RelPtr packages_data; }); -- cgit v1.2.3