From a12793ed70213bedfcabcc2c8510784810c5d5a2 Mon Sep 17 00:00:00 2001 From: Stephan Ruloff Date: Fri, 25 Mar 2022 21:29:00 +0100 Subject: [PATCH 1/4] Added spiOverJtag for Spartan3E (xc3s500evq100) --- spiOverJtag/Makefile | 2 +- spiOverJtag/build.py | 10 ++++++- spiOverJtag/constr_xc3s_vq100.ucf | 5 ++++ spiOverJtag/spiOverJtag_xc3s500evq100.bit.gz | Bin 0 -> 1239 bytes spiOverJtag/xilinx_spiOverJtag.v | 29 +++++++++++++++++++ 5 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 spiOverJtag/constr_xc3s_vq100.ucf create mode 100644 spiOverJtag/spiOverJtag_xc3s500evq100.bit.gz diff --git a/spiOverJtag/Makefile b/spiOverJtag/Makefile index 49557d2..b05e267 100644 --- a/spiOverJtag/Makefile +++ b/spiOverJtag/Makefile @@ -1,4 +1,4 @@ -XILINX_PARTS := xc6slx16ftg256 xc6slx16csg324 xc6slx45csg324 xc6slx100fgg484 \ +XILINX_PARTS := xc3s500evq100 xc6slx16ftg256 xc6slx16csg324 xc6slx45csg324 xc6slx100fgg484 \ xc6slx150tfgg484 \ xc7a35tcpg236 xc7a35tcsg324 xc7a35tftg256 \ xc7a50tcpg236 xc7a75tfgg484 xc7a100tcsg324 xc7a100tfgg484 xc7a200tsbg484 \ diff --git a/spiOverJtag/build.py b/spiOverJtag/build.py index c8bb554..33af234 100755 --- a/spiOverJtag/build.py +++ b/spiOverJtag/build.py @@ -44,12 +44,18 @@ elif subpart == "xc7s": elif subpart == "xc6s": family = "Spartan6" tool = "ise" + speed = -3 +elif subpart == "xc3s": + family = "Spartan3E" + tool = "ise" + speed = -4 else: print("Error: unknown device") os.sys.exit() if tool in ["ise", "vivado"]: pkg_name = { + "xc3s500evq100" : "xc3s_vq100", "xc6slx16ftg256" : "xc6s_ftg256", "xc6slx16csg324" : "xc6s_csg324", "xc6slx45csg324" : "xc6s_csg324", @@ -73,18 +79,20 @@ if tool in ["ise", "vivado"]: cst_type = "UCF" tool_options = {'family': family, 'device': { + "xc3s500evq100": "xc3s500e", "xc6slx16ftg256": "xc6slx16", "xc6slx16csg324": "xc6slx16", "xc6slx45csg324": "xc6slx45", "xc6slx100fgg484": "xc6slx100", "xc6slx150tfgg484": "xc6slx150t"}[part], 'package': { + "xc3s500evq100": "vq100", "xc6slx16ftg256": "ftg256", "xc6slx16csg324": "csg324", "xc6slx45csg324": "csg324", "xc6slx100fgg484": "fgg384", "xc6slx150tfgg484": "fgg484"}[part], - 'speed' : -3 + 'speed' : speed } else: cst_type = "xdc" diff --git a/spiOverJtag/constr_xc3s_vq100.ucf b/spiOverJtag/constr_xc3s_vq100.ucf new file mode 100644 index 0000000..14ce462 --- /dev/null +++ b/spiOverJtag/constr_xc3s_vq100.ucf @@ -0,0 +1,5 @@ +NET "sdi_dq0" LOC = P27 | IOSTANDARD = LVCMOS33; +NET "sdo_dq1" LOC = P44 | IOSTANDARD = LVCMOS33; +NET "csn" LOC = P24 | IOSTANDARD = LVCMOS33; +NET "sck" LOC = P50 | IOSTANDARD = LVCMOS33; + diff --git a/spiOverJtag/spiOverJtag_xc3s500evq100.bit.gz b/spiOverJtag/spiOverJtag_xc3s500evq100.bit.gz new file mode 100644 index 0000000000000000000000000000000000000000..0326c0e152c0403e62e51da7e5cd5efecad6e587 GIT binary patch literal 1239 zcmb2|=HPHqw@PASE-uLQFH0@*DoIS&OUf)^czf42U&d8};la(%R*}|fhJjpMUBaS^ z6eb%B1_@je6BII8qOeFs(XfN9)uKzoTz1jYrdO{*{-xtpg z{`>2{zFwyOPl{fRY}q%yb;ox6|In^&*k=9kj*6e!^vCy}o>aNR8$G$=ZS(5ukJ=OM zpTvjgr^)@V`aD}=l}<~6S=x5K<=d0Y&bd82HQ%s$QfhrqedoiI5C0hGZx=mW@$tP* zo6(&UdVj?jqLMzhNf?B@56$OfVt|1;3C6F-WryI7{eyDo>K0fYuOmg7nKOcH#^_5y{>(zIyIv#uAleu@;CdJLUZy7-j_|g8Q z`O6}K1(A)4d@u(A=?1?ETPDq8u|g7JV0gh+IrHVo(a91Hy)t0jaS%~2R?&oXTCg1U4-N~zYWSP0!E4qQ3>80msYnZY@H|o47;dIX3ml|N#aFUHhppq*|O$O zrp-4)+tX097EE03Ki^)w^-2s2D}#e{j6lK>fw=qT$iR*$33WdjQi9L(~C2qYG^LT#XYGE<8zPdRyqmA+c%E zCLxt@PRHAOW(c-^J-wFu!z5ls0}tm}ZR=mY{?FJKYcsFMl_||j@x`3ErdK37!s25M zCp@1MmlJg{*c<4F7t1$0O^7p{p=?~B^!)qFiEpM_{>(mOSrqr>+WUC|YmThW-D6RE z&f?0hbxCzzM%Q%Y+k*B5{txY)9rHdq>*HyYfA<|9?Z0BHYPsdpY3b9E%ipd{op5Za zfSIeJ;m?!00i297Z!blPGc4fsy1krX!i2|H6nrJXo?CF%#@uY{eOq%gOHB)ycd^hL zeCAD`Iq!KYA~zu^@_n=G@S0SpfbP|)#+jGp^qJ3}e$yCeT75O{&EjA4FaLfPdS+kJ z#WiUwqBryS+O4kZ-IRP{TxR^|)QysdO=kBOY Date: Fri, 25 Mar 2022 21:33:58 +0100 Subject: [PATCH 2/4] Documentation for the xc3s500e part --- doc/FPGAs.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/doc/FPGAs.yml b/doc/FPGAs.yml index 02fa25b..3a3c610 100644 --- a/doc/FPGAs.yml +++ b/doc/FPGAs.yml @@ -182,10 +182,12 @@ Xilinx: Flash: OK - Description: Spartan 3 - Model: xc3s200 + Model: + - xc3s200 + - xc3s500e URL: https://www.xilinx.com/products/silicon-devices/fpga/spartan-3.html Memory: OK - Flash: NA + Flash: OK - Description: Spartan 6 Model: From b60f37b56d6a48bb043ee710256aad5c5ce876db Mon Sep 17 00:00:00 2001 From: Stephan Ruloff Date: Fri, 25 Mar 2022 21:44:05 +0100 Subject: [PATCH 3/4] Support for the Papilio One board --- doc/boards.yml | 7 +++++++ doc/cable.yml | 7 +++++++ src/board.hpp | 1 + src/cable.hpp | 1 + src/part.hpp | 1 + 5 files changed, 17 insertions(+) diff --git a/doc/boards.yml b/doc/boards.yml index a372d12..fc35dd5 100644 --- a/doc/boards.yml +++ b/doc/boards.yml @@ -341,6 +341,13 @@ Flash: OK (DFU) Constraints: OrangeCrab-r0.2 +- ID: papilio_one + Description: Papilio One + URL: https://papilio.cc/index.php?n=Papilio.PapilioOne + FPGA: Spartan3E xc3s500e-vq100 + Memory: OK + Flash: OK + - ID: pipistrello Description: Saanlima Pipistrello LX45 URL: http://pipistrello.saanlima.com/index.php?title=Welcome_to_Pipistrello diff --git a/doc/cable.yml b/doc/cable.yml index a460d00..2b3a16c 100644 --- a/doc/cable.yml +++ b/doc/cable.yml @@ -197,6 +197,13 @@ orbtrace: URL: https://github.com/orbcode/orbtrace +papilio: + + - Name: papilio + Description: Papilio FPGA Platform + URL: https://papilio.cc/ + + tigard: - Name: tigard diff --git a/src/board.hpp b/src/board.hpp index 3c2c047..82abd0e 100644 --- a/src/board.hpp +++ b/src/board.hpp @@ -191,6 +191,7 @@ static std::map board_list = { JTAG_BOARD("zc706", "xc7z045ffg900", "jtag-smt2-nc", 0, 0, CABLE_DEFAULT), JTAG_BOARD("zcu102", "xczu9egffvb1156", "jtag-smt2-nc", 0, 0, CABLE_DEFAULT), JTAG_BOARD("zedboard", "xc7z020clg484", "digilent_hs2", 0, 0, CABLE_DEFAULT), + JTAG_BOARD("papilio_one", "xc3s500evq100", "papilio", 0, 0, CABLE_DEFAULT), }; #endif diff --git a/src/cable.hpp b/src/cable.hpp index e949171..2cc1dae 100644 --- a/src/cable.hpp +++ b/src/cable.hpp @@ -63,6 +63,7 @@ static std::map cable_list = { {"jlink", {MODE_JLINK, {0x1366, 0x0105, 0, 0, 0, 0, 0 }}}, {"jtag-smt2-nc", {MODE_FTDI_SERIAL, {0x0403, 0x6014, INTERFACE_A, 0xe8, 0xeb, 0x00, 0x60}}}, {"orbtrace", {MODE_CMSISDAP, {0x1209, 0x3443, 0, 0, 0, 0, 0 }}}, + {"papilio", {MODE_FTDI_SERIAL, {0x0403, 0x6010, INTERFACE_A, 0x08, 0x0B, 0x09, 0x0B}}}, {"tigard", {MODE_FTDI_SERIAL, {0x0403, 0x6010, INTERFACE_B, 0x08, 0x3B, 0x00, 0x00}}}, {"usb-blaster", {MODE_USBBLASTER, {0x09Fb, 0x6001, 0, 0, 0, 0, 0 }}}, {"usb-blasterII", {MODE_USBBLASTER, {0x09Fb, 0x6810, 0, 0, 0, 0, 0 }}}, diff --git a/src/part.hpp b/src/part.hpp index a8b34a9..f1abb5a 100644 --- a/src/part.hpp +++ b/src/part.hpp @@ -31,6 +31,7 @@ static std::map fpga_list = { {0x03651093, {"xilinx", "kintex7", "xc7k325t", 6}}, {0x01414093, {"xilinx", "spartan3", "xc3s200", 6}}, + {0x41c22093, {"xilinx", "spartan3", "xc3s500e", 6}}, {0x04001093, {"xilinx", "spartan6", "xc6slx9", 6}}, {0x04002093, {"xilinx", "spartan6", "xc6slx16", 6}}, From 6da87c3d24a61b782ffc3d3cd5353bbcde486341 Mon Sep 17 00:00:00 2001 From: Stephan Ruloff Date: Mon, 28 Mar 2022 18:14:25 +0200 Subject: [PATCH 4/4] xc3s500e IDCODE: revision set to zero. --- src/part.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/part.hpp b/src/part.hpp index f1abb5a..509e1ce 100644 --- a/src/part.hpp +++ b/src/part.hpp @@ -31,7 +31,7 @@ static std::map fpga_list = { {0x03651093, {"xilinx", "kintex7", "xc7k325t", 6}}, {0x01414093, {"xilinx", "spartan3", "xc3s200", 6}}, - {0x41c22093, {"xilinx", "spartan3", "xc3s500e", 6}}, + {0x01c22093, {"xilinx", "spartan3", "xc3s500e", 6}}, {0x04001093, {"xilinx", "spartan6", "xc6slx9", 6}}, {0x04002093, {"xilinx", "spartan6", "xc6slx16", 6}},