/*
IEEE 1149.1 UCF File netlist exporter
Copyright (c) 2008 Martin Hinner
Public domain, no warranty of any kind, "AS IS" usage.
This ULP file exports netlist to UCF file for use with JTAGTest (http://www.jtagtest.com)
*/
void ExportUCF(string PartName, string PartValue, string PartPackage) {
string FileName;
int t = time();
board(B) FileName = filesetext(filesetext(B.name, "") + "_" + PartValue + "_" + PartName, ".ucf");
FileName = dlgFileSave("Save UCF File", FileName);
if (FileName) {
string a[];
if (!fileglob(a, FileName) || dlgMessageBox("File '" + FileName + "' exists\n\nOverwrite?", "+&Yes", "-&No") == 0)
if (board) board(B)
output(FileName) {
printf("# Generated by export-jtagtest-ucf.ulp\n");
printf("# http://www.jtagtest.com/\n");
printf("#\n");
printf("# Board : %s\n", B.name);
printf("# Part Name : %s\n", PartName);
printf("# Part ID : %s\n", PartValue);
printf("# Part pkg : %s\n", PartPackage);
printf("# Exported on: %02d.%02d.%02d %02d:%02d:%02d\n\n",
t2day(t),t2month(t),t2year(t),t2hour(t),t2minute(t),t2second(t));
if (board) board(B) {
B.signals(S) {
S.contactrefs(C)
if ( C.element.name == PartName) {
printf("NET \"%s\" LOC = \"P%s\";\n", S.name, C.contact.name);
}
}
}
}
}
}
int NumParts;
numeric string Parts[];
numeric string PartNames[];
numeric string PartValues[];
numeric string PartPackages[];
int Selected;
NumParts=0;
if (board) board(B) B.elements(E) {
PartNames[NumParts] = E.name;
PartValues[NumParts] = E.value;
PartPackages[NumParts] = E.package.name;
Parts[NumParts] = E.name + "\t" + E.package.name + "\t" + E.value;
NumParts++;
}
else {
dlgMessageBox("Program works only on boards (.BRD)!", "OK");
exit(1);
}
dlgDialog("Export UCF file for SECONS JTAGTest") {
dlgLabel("Please select part from this list in order to export JTAGTest .ucf file:\n");
dlgHBoxLayout dlgSpacing(400);
dlgListView("Part\tPackage\tValue", Parts, Selected) ExportUCF(PartNames[Selected],PartValues[Selected],PartPackages[Selected]);
dlgPushButton("Close") dlgAccept();
dlgLabel("\nFor more information about jtagtest please visit http://www.jtagtest.com/\n");
};