diff --git a/spiOverJtag/Makefile b/spiOverJtag/Makefile index f4201ca..7f86a61 100644 --- a/spiOverJtag/Makefile +++ b/spiOverJtag/Makefile @@ -5,7 +5,8 @@ XILINX_PARTS := xc3s500evq100 xc6slx16ftg256 xc6slx16csg324 xc6slx45csg324 xc6sl xc7a100tcsg324 xc7a100tfgg484 xc7a100tfgg676\ xc7a200tsbg484 \ xc7s25csga324 xc7s50csga324 \ - xc7k325tffg676 xc7k325tffg900 + xc7k325tffg676 xc7k325tffg900 \ + xc7k420tffg901 XILINX_BIT_FILES := $(addsuffix .bit.gz,$(addprefix spiOverJtag_, $(XILINX_PARTS))) ALTERA_PARTS := 10cl025256 ep4ce2217 ep4ce1523 5ce223 5ce423 5ce523 5ce927 diff --git a/spiOverJtag/build.py b/spiOverJtag/build.py index 86b495a..770229e 100755 --- a/spiOverJtag/build.py +++ b/spiOverJtag/build.py @@ -36,8 +36,14 @@ elif subpart == "xc7a": family = "Artix" tool = "vivado" elif subpart == "xc7k": - family = "Kintex 7" - tool = "vivado" + device_size = int(part.split('k')[1].split('t')[0]) + if device_size <= 160: + family = "Kintex 7" + tool = "vivado" + else: + family = "Kintex7" + tool = "ise" + speed = -2 elif subpart == "xc7s": family = "Spartan 7" tool = "vivado" @@ -73,6 +79,7 @@ if tool in ["ise", "vivado"]: "xc7a200tfbg484" : "xc7a_fbg484", "xc7k325tffg676" : "xc7k_ffg676", "xc7k325tffg900" : "xc7k_ffg900", + "xc7k420tffg901" : "xc7k_ffg901", "xc7s25csga324" : "xc7s_csga324", "xc7s50csga324" : "xc7s_csga324" }[part] @@ -80,19 +87,27 @@ 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], + "xc3s500evq100": "xc3s500e", + "xc6slx16ftg256": "xc6slx16", + "xc6slx16csg324": "xc6slx16", + "xc6slx45csg324": "xc6slx45", + "xc6slx100fgg484": "xc6slx100", + "xc6slx150tfgg484": "xc6slx150t", + "xc7k325tffg676": "xc7k325t", + "xc7k325tffg900": "xc7k325t", + "xc7k420tffg901": "xc7k420t", + }[part], 'package': { - "xc3s500evq100": "vq100", - "xc6slx16ftg256": "ftg256", - "xc6slx16csg324": "csg324", - "xc6slx45csg324": "csg324", - "xc6slx100fgg484": "fgg384", - "xc6slx150tfgg484": "fgg484"}[part], + "xc3s500evq100": "vq100", + "xc6slx16ftg256": "ftg256", + "xc6slx16csg324": "csg324", + "xc6slx45csg324": "csg324", + "xc6slx100fgg484": "fgg384", + "xc6slx150tfgg484": "fgg484", + "xc7k325tffg676": "ffg676", + "xc7k325tffg900": "ffg900", + "xc7k420tffg901": "ffg901", + }[part], 'speed' : speed } else: diff --git a/spiOverJtag/constr_xc7k_ffg676.ucf b/spiOverJtag/constr_xc7k_ffg676.ucf new file mode 100644 index 0000000..09592cc --- /dev/null +++ b/spiOverJtag/constr_xc7k_ffg676.ucf @@ -0,0 +1,6 @@ +NET "csn" LOC = C23 | IOSTANDARD = LVCMOS33; +NET "sdi_dq0" LOC = B24 | IOSTANDARD = LVCMOS33; +NET "sdo_dq1" LOC = A25 | IOSTANDARD = LVCMOS33; +NET "wpn_dq2" LOC = B22 | IOSTANDARD = LVCMOS33; +NET "hldn_dq3" LOC = A22 | IOSTANDARD = LVCMOS33; + diff --git a/spiOverJtag/constr_xc7k_ffg900.ucf b/spiOverJtag/constr_xc7k_ffg900.ucf new file mode 100644 index 0000000..a89e557 --- /dev/null +++ b/spiOverJtag/constr_xc7k_ffg900.ucf @@ -0,0 +1,6 @@ +NET "csn" LOC = U19 | IOSTANDARD = LVCMOS33; +NET "sdi_dq0" LOC = P24 | IOSTANDARD = LVCMOS33; +NET "sdo_dq1" LOC = R25 | IOSTANDARD = LVCMOS33; +NET "wpn_dq2" LOC = R20 | IOSTANDARD = LVCMOS33; +NET "hldn_dq3" LOC = R21 | IOSTANDARD = LVCMOS33; + diff --git a/spiOverJtag/constr_xc7k_ffg901.ucf b/spiOverJtag/constr_xc7k_ffg901.ucf new file mode 100644 index 0000000..de2dfbe --- /dev/null +++ b/spiOverJtag/constr_xc7k_ffg901.ucf @@ -0,0 +1,6 @@ +NET "csn" LOC = V26 | IOSTANDARD = LVCMOS33; +NET "sdi_dq0" LOC = R30 | IOSTANDARD = LVCMOS33; +NET "sdo_dq1" LOC = T30 | IOSTANDARD = LVCMOS33; +NET "wpn_dq2" LOC = R28 | IOSTANDARD = LVCMOS33; +NET "hldn_dq3" LOC = T28 | IOSTANDARD = LVCMOS33; + diff --git a/spiOverJtag/spiOverJtag_xc7k420tffg901.bit.gz b/spiOverJtag/spiOverJtag_xc7k420tffg901.bit.gz new file mode 100644 index 0000000..f8833b0 Binary files /dev/null and b/spiOverJtag/spiOverJtag_xc7k420tffg901.bit.gz differ