24 #include "../../../Common/str.h"
30 int deviceID = getDeviceByIDCODE(IDCODE);
32 throw runtime_error(
string(
"Unknown device with IDCODE = ").append(
to_string(IDCODE)).append(
" . Maybe the device is not Xilinx Series 7 device?"));
38 int deviceID = getDeviceByName(name);
40 throw runtime_error(
string(
"Unknown device: ").append(name).append(
". Maybe the device is not Xilinx Series 7 device?"));
45 setDeviceByNameOrThrow(partName);
49 int deviceID = getDeviceByNameOrThrow(name);
50 setDevice(deviceID, name);
54 int deviceID = getDeviceByIDCODEorThrow(idcode);
272 if(
str::iff::stringContains(name,
"kc705",
"kintex-7evaluation",
"kintex7evaluation",
"kintex-7embedded",
"kintex7embedded"))
354 bool customNameSet =
false;
355 #define setCustomPartName(x) {customNameSet = true; partName = x;}
471 throw runtime_error(
"XC7VH580 needs special handling for GTZ SLRs, which is not yet implemented.");
475 throw runtime_error(
"XCV7VH870 needs special handling for GTZ SLRs, which is not yet implemented.");
504 setCustomPartName(
"xc7z045ffg900-2");
508 setCustomPartName(
"xc7k325t-2ffg900c");
512 setCustomPartName(
"xc7k325t-2ffg900c");
516 setCustomPartName(
"xc7k325t-3ffg900e");
520 setCustomPartName(
"xc7s100-2fgga676c");
524 setCustomPartName(
"xc7a200t-2fbg676c");
528 setCustomPartName(
"xc7a35ticsg324-1l");
532 setCustomPartName(
"xc7a100tcsg324-1");
536 setCustomPartName(
"xc7z010-1clg400c");
540 setCustomPartName(
"xc7z020-1clg400c");
544 setCustomPartName(
"xc7s25-csga324");
548 setCustomPartName(
"xc7s50-csga324");
552 setCustomPartName(
"xc7a35t-1cpg236c");
556 setCustomPartName(
"xc7z020-1clg400c");
560 setCustomPartName(
"xc7z020-1clg400c");
564 setCustomPartName(
"xc7a50t-1csg324c");
568 setCustomPartName(
"xc7a100t-1csg324c");
572 setCustomPartName(
"xc7z010-1clg400c");
576 setCustomPartName(
"xc7z020-1clg400c");
580 setCustomPartName(
"xc7a15t-1cpg236c");
584 setCustomPartName(
"xc7a35t-1cpg236c");
588 setCustomPartName(
"xc7s25-1csga225c");
592 setCustomPartName(
"xc7z020-clg484");
596 setCustomPartName(
"xc7z007s-1clg400c");
600 setCustomPartName(
"xc7z010-1clg400c");
604 setCustomPartName(
"xc7a200t-1sbg484c");
608 setCustomPartName(
"xc7k325t-2ffg900c");
612 setCustomPartName(
"xc7z020-1clg484c");
616 setCustomPartName(
"xc7a100t-1csg324i");
620 setCustomPartName(
"xc7vx690t-3ffg1761c");
624 setCustomPartName(
"xc7vx485t-2ffg1761");
628 setCustomPartName(
"xc7vx690t-2ffg1761c");
632 setCustomPartName(
"xc7vx690t-3ffg1927e");
636 setCustomPartName(
"xc7vx485t-3ffg1761e");
640 setCustomPartName(
"xc7vh580t-g2hcg1155e");
644 setCustomPartName(
"xc7z020-clg484-1");
648 setCustomPartName(
"xc7z045-2ffg900c");
651 default:
throw runtime_error(
"Unknown device ID.");
653 #undef setCustomPartName
655 if(customPartName !=
"")
656 partName = customPartName;
658 log(
"Initialized device resource string for \"" + initializedResourceStringShortPartName +
"\"");
663 if(initializedResourceStringShortPartName ==
"") {
664 cout <<
"A list of currently supported Xilinx Series 7 devices: " << endl;
666 cout <<
" Series 7 Spartan: " << endl;
667 cout <<
" XC7S6, XA7S6, XC7S15, XA7S15, XC7S25, XA7S25, XC7S50, XA7S50, XC7S75, XA7S75, XC7S100, XA7S100" << endl;
670 cout <<
" Series 7 Artix: " << endl;
671 cout <<
" XC7A12, XA7A12, XC7A15, XA7A15, XC7A25, XA7A25, XC7A35, XA7A35, XC7A50, XQ7A50, XA7A50, " << endl;
672 cout <<
" XC7A75, XA7A75, XC7A100, XQ7A100, XA7A100, XC7A200, XQ7A200" << endl;
675 cout <<
" Series 7 Zynq: " << endl;
676 cout <<
" XC7Z007, XC7Z010, XA7Z010, XC7Z012, XC7Z014, XC7Z015, XC7Z020, XQ7Z020, XA7Z020, " << endl;
677 cout <<
" XC7Z030, XQ7Z030, XA7Z030, XC7Z035, XC7Z045, XQ7Z045, XC7Z100, XQ7Z100" << endl;
680 cout <<
" Series 7 Kintex: " << endl;
681 cout <<
" XC7K70, XC7K160, XA7K160, XC7K325, XQ7K325, XC7K355, XC7K410, XQ7K410, XC7K420, XC7K480" << endl;
684 cout <<
" Series 7 Virtex: " << endl;
685 cout <<
" XC7V585, XQ7V585, XC7V2000, XC7VX330, XQ7VX330, XC7VX415, XC7VX485, XQ7VX485, XC7VX550, " << endl;
686 cout <<
" XC7VX690, XQ7VX690, XC7VX980, XQ7VX980, XC7VX1140" << endl;
689 cout <<
" Series 7 Boards: " << endl;
690 cout <<
" Wizarde, Kintex-7 Connectivity Kit, KC705, KC724, SP701, AC701, Arty A7-35, Arty A7-100, Arty Z7-10, Arty Z7-20, " << endl;
691 cout <<
" Arty S7-25, Arty S7-50, Basys 3, Pynq Z1, Pynq Z2, Nexys A7-50, Nexys A7-100, Zybo Z7-10, Zybo Z7-20, Cmod A7-15, " << endl;
692 cout <<
" Cmod A7-35, Cmod S7, ZedBoard, Cora Z7-07, Cora Z7-10, Nexys Video, Genesys 2, Eclypse Z7, USB104, NetFPGA-SUME, " << endl;
693 cout <<
" VC707, VC709, VC7203, VC7215, VC7222, ZC702, ZC706" << endl;
@ XS7_DEVICE_KINTEX7CONNECTIVITY
@ XS7_DEVICE_NETFPGA_SUME
@ XS7_DEVICE_ARTY_GENESYS2
void setDeviceByPartNameOrThrow() override
int getDeviceByIDCODEorThrow(int) override
int getDeviceByNameOrThrow(std::string) override
int getDeviceByName(std::string) override
int getDeviceByIDCODE(int) override
void setDevice(int, std::string="") override
void setDeviceByNameOrThrow(std::string) override
void setDeviceByIDCODEOrThrow(int) override
void clearResourceStringArrays()
void printResourceStringInfo()
std::string to_string(Endianness e)
bool stringContains(std::string checkedString)
Returns false. End of recursion for template.
std::string stringToLower(std::string str)
Replaces all uppercase characters in str with lowercase and returns the resulting string.
std::string removeSpaces(std::string str)
Removes all space chars of str returns the resulting string.