From 251d7fde58c5cfc53d299ad96e7e431b87d8606f Mon Sep 17 00:00:00 2001 From: zhangyh <717572325@qq.com> Date: Thu, 11 Dec 2025 20:09:26 +0800 Subject: [PATCH] spiOverJtag: Add support for Efinix T120F324 --- doc/FPGAs.yml | 1 + spiOverJtag/Makefile | 2 +- spiOverJtag/efinix_build.py | 23 +++++++++++++----- .../spiOverJtag_efinix_t120f324.bit.gz | Bin 0 -> 53160 bytes 4 files changed, 19 insertions(+), 7 deletions(-) create mode 100644 spiOverJtag/spiOverJtag_efinix_t120f324.bit.gz diff --git a/doc/FPGAs.yml b/doc/FPGAs.yml index f596718..78ef1f3 100644 --- a/doc/FPGAs.yml +++ b/doc/FPGAs.yml @@ -36,6 +36,7 @@ Efinix: Model: - T8 - T13 + - T120 URL: https://www.efinixinc.com/products-trion.html Memory: NA Flash: OK diff --git a/spiOverJtag/Makefile b/spiOverJtag/Makefile index e9c94ee..344e714 100644 --- a/spiOverJtag/Makefile +++ b/spiOverJtag/Makefile @@ -21,7 +21,7 @@ ALTERA_PARTS := 10cl025256 10cl016484 10cl055484 \ ep4ce622 ep4ce1017 ep4ce2217 ep4ce1523 ep4ce11523 ep4cgx15027 5ce215 5ce223 5ce423 5ce523 5ce927 5sgsd5 ALTERA_BIT_FILES := $(addsuffix .rbf.gz, $(addprefix spiOverJtag_, $(ALTERA_PARTS))) -EFINIX_PARTS := t8f81 t13f256 ti180j484 +EFINIX_PARTS := t8f81 t13f256 t120f324 ti180j484 EFINIX_BIT_FILES := $(addsuffix .bit.gz, $(addprefix spiOverJtag_efinix_, $(EFINIX_PARTS))) BIT_FILES := $(ALTERA_BIT_FILES) $(EFINIX_BIT_FILES) $(XILINX_BIT_FILES) diff --git a/spiOverJtag/efinix_build.py b/spiOverJtag/efinix_build.py index dba50e5..27fe18c 100755 --- a/spiOverJtag/efinix_build.py +++ b/spiOverJtag/efinix_build.py @@ -59,6 +59,7 @@ timing_models = { "T8F81": "C2", "T13F256": "C3", "TI180J484": "C3", + "T120F324": "C4", } def gen_isf_constr(gateware_name, build_path, device_name, family, pkg): @@ -66,14 +67,24 @@ def gen_isf_constr(gateware_name, build_path, device_name, family, pkg): # Basic settings isf_array = [ "# Device setting", - "design.set_device_property(\"1A\",\"VOLTAGE\",\"3.3\",\"IOBANK\")", - "design.set_device_property(\"1B\",\"VOLTAGE\",\"3.3\",\"IOBANK\")", - "design.set_device_property(\"1C\",\"VOLTAGE\",\"1.1\",\"IOBANK\")", - "design.set_device_property(\"2A\",\"VOLTAGE\",\"3.3\",\"IOBANK\")", - "design.set_device_property(\"2B\",\"VOLTAGE\",\"3.3\",\"IOBANK\")", - "", ] + if pkg == "F324": + # F324 package has 1A and merged 1B_1C IOBank + isf_array.extend([ + "design.set_device_property(\"1A\",\"VOLTAGE\",\"3.3\",\"IOBANK\")", + "design.set_device_property(\"1B_1C\",\"VOLTAGE\",\"3.3\",\"IOBANK\")", + ]) + else: + isf_array.extend([ + "design.set_device_property(\"1A\",\"VOLTAGE\",\"3.3\",\"IOBANK\")", + "design.set_device_property(\"1B\",\"VOLTAGE\",\"3.3\",\"IOBANK\")", + "design.set_device_property(\"1C\",\"VOLTAGE\",\"1.1\",\"IOBANK\")", + "design.set_device_property(\"2A\",\"VOLTAGE\",\"3.3\",\"IOBANK\")", + "design.set_device_property(\"2B\",\"VOLTAGE\",\"3.3\",\"IOBANK\")", + ]) + isf_array.append("") + # JTAG settings isf_array.append("# ---------- JTAG 1 ---------") isf_array.append("design.create_block(\"jtag_soc\", block_type=\"JTAG\")") diff --git a/spiOverJtag/spiOverJtag_efinix_t120f324.bit.gz b/spiOverJtag/spiOverJtag_efinix_t120f324.bit.gz new file mode 100644 index 0000000000000000000000000000000000000000..743613cecdbc751fa6304ec08a26f482d813b4ba GIT binary patch literal 53160 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 literal 0 HcmV?d00001