Loading src/com/elphel/vdt/core/tools/generators/FilteredIncludesListGenerator.java +17 −12 Original line number Original line Diff line number Diff line Loading @@ -34,13 +34,6 @@ import java.util.regex.PatternSyntaxException; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResource; //import com.elphel.vdt.VDT; //import com.elphel.vdt.VDT; import com.elphel.vdt.VerilogUtils; import com.elphel.vdt.VerilogUtils; import com.elphel.vdt.core.tools.params.FormatProcessor; import com.elphel.vdt.core.tools.params.FormatProcessor; Loading Loading @@ -98,12 +91,24 @@ public class FilteredIncludesListGenerator extends AbstractGenerator { String[] file_names = null; String[] file_names = null; IResource resource = SelectedResourceManager.getDefault().getChosenVerilogFile(); IResource resource = SelectedResourceManager.getDefault().getChosenVerilogFile(); if ((topFile != null) && (!topFile.equals("")) && (resource !=null)) { if ((topFile != null) && (!topFile.equals("")) && (resource !=null)) { // If topFile is absolute, try to convert top file to project resource if (topFile.startsWith("/")){ String aPojectStr=resource.getProject().getLocation().toOSString(); if (topFile.startsWith(aPojectStr)){ topFile = topFile.substring(aPojectStr.length()+1); } } // Only apply if topFile is not absolute anymore if (!topFile.startsWith("/")){ IResource resource1 = resource.getProject().getFile(topFile); IResource resource1 = resource.getProject().getFile(topFile); if ((resource1 != null) && (resource1.getType() == IResource.FILE)){ if ((resource1 != null) && (resource1.getType() == IResource.FILE)){ resource = resource1; resource = resource1; // System.out.println("resource1="+resource1); // System.out.println("resource1="+resource1); } } } } } Pattern ignorePattern = null; Pattern ignorePattern = null; if (ignoreFilter!=null){ if (ignoreFilter!=null){ try { try { Loading src/com/elphel/vdt/core/tools/generators/FilteredSourceListGenerator.java +15 −13 Original line number Original line Diff line number Diff line Loading @@ -34,14 +34,6 @@ import java.util.regex.PatternSyntaxException; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResource; //import com.elphel.vdt.VDT; //import com.elphel.vdt.VDT; import com.elphel.vdt.VerilogUtils; import com.elphel.vdt.VerilogUtils; import com.elphel.vdt.core.tools.params.FormatProcessor; import com.elphel.vdt.core.tools.params.FormatProcessor; Loading Loading @@ -91,7 +83,7 @@ public class FilteredSourceListGenerator extends AbstractGenerator { System.out.println("FilteredSourceListGenerator().getStringValue(): tool="+tool.getName()+", ignoreFilter="+ignoreFilter); System.out.println("FilteredSourceListGenerator().getStringValue(): tool="+tool.getName()+", ignoreFilter="+ignoreFilter); } } topFile = tool.getTopFile(); topFile = tool.getTopFile(); toolDefine = tool.getDefine(); toolDefine = tool.getDefine(); // correct absolute if ((toolDefine == null) || (toolDefine == "")) { if ((toolDefine == null) || (toolDefine == "")) { if ((topFile == null ) || (topFile == "")) toolDefine = null; // no need to reparse tree for this tool if ((topFile == null ) || (topFile == "")) toolDefine = null; // no need to reparse tree for this tool else toolDefine = ""; // reparse for this tool - top file may have different defines else toolDefine = ""; // reparse for this tool - top file may have different defines Loading @@ -109,12 +101,22 @@ public class FilteredSourceListGenerator extends AbstractGenerator { String[] file_names = null; String[] file_names = null; IResource resource = SelectedResourceManager.getDefault().getChosenVerilogFile(); IResource resource = SelectedResourceManager.getDefault().getChosenVerilogFile(); if ((topFile != null) && (!topFile.equals("")) && (resource !=null)) { if ((topFile != null) && (!topFile.equals("")) && (resource !=null)) { // If topFile is absolute, try to convert top file to project resource if (topFile.startsWith("/")){ String aPojectStr=resource.getProject().getLocation().toOSString(); if (topFile.startsWith(aPojectStr)){ topFile = topFile.substring(aPojectStr.length()+1); } } // Only apply if topFile is not absolute anymore if (!topFile.startsWith("/")){ IResource resource1 = resource.getProject().getFile(topFile); IResource resource1 = resource.getProject().getFile(topFile); if ((resource1 != null) && (resource1.getType() == IResource.FILE)){ if ((resource1 != null) && (resource1.getType() == IResource.FILE)){ resource = resource1; resource = resource1; // System.out.println("resource1="+resource1); // System.out.println("resource1="+resource1); } } } } } Pattern ignorePattern = null; Pattern ignorePattern = null; if (ignoreFilter!=null){ if (ignoreFilter!=null){ try { try { Loading src/com/elphel/vdt/ui/options/component/FileComponent.java +24 −5 Original line number Original line Diff line number Diff line Loading @@ -26,6 +26,7 @@ *******************************************************************************/ *******************************************************************************/ package com.elphel.vdt.ui.options.component; package com.elphel.vdt.ui.options.component; import org.eclipse.core.resources.IProject; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Composite; Loading @@ -33,6 +34,7 @@ import org.eclipse.swt.widgets.FileDialog; import com.elphel.vdt.core.tools.params.Parameter; import com.elphel.vdt.core.tools.params.Parameter; import com.elphel.vdt.core.tools.params.types.ParamTypeString; import com.elphel.vdt.core.tools.params.types.ParamTypeString; import com.elphel.vdt.ui.variables.SelectedResourceManager; public class FileComponent extends BrowsableComponent { public class FileComponent extends BrowsableComponent { Loading Loading @@ -61,8 +63,25 @@ public class FileComponent extends BrowsableComponent { FileDialog dialog = (FileDialog)locationField.getBrowseDialog(); FileDialog dialog = (FileDialog)locationField.getBrowseDialog(); String selectedFile = dialog.open(); String selectedFile = dialog.open(); if(selectedFile != null) if(selectedFile != null) { // try to convert to project-relative IProject project = SelectedResourceManager.getDefault().getSelectedProject(); String projectPath=null; if (project!=null) { projectPath=project.getLocation().toString(); if ((selectedFile!=null) && selectedFile.startsWith(projectPath)) { if (selectedFile.equals(projectPath)){ System.out.println("FileListPromptDialog(): Path equals to project path = \""+selectedFile+"\", returning \".\""); selectedFile = "."; } selectedFile = selectedFile.substring(projectPath.length()+1); } } locationField.getBrowsedNameField().setText(selectedFile); locationField.getBrowsedNameField().setText(selectedFile); } } } }); }); Loading tools/DesignMenu.xml +1 −1 Original line number Original line Diff line number Diff line Loading @@ -41,7 +41,7 @@ <menuitem name="cocotb" <menuitem name="cocotb" label="Cocotb Python Verification" label="Cocotb Python Verification" icon="pv_logo_32x32.png" icon="pv_hc.png" call="cocotb"/> call="cocotb"/> <menuitem name="GTKWave" <menuitem name="GTKWave" Loading tools/Verilog/Cocotb.xml +54 −85 Original line number Original line Diff line number Diff line Loading @@ -45,19 +45,19 @@ </typedef> </typedef> <syntax name="ListEqMultiline" format="%%ParamName = %(%%ParamValue%| \\n%)" /> <syntax name="ListEqMultiline" format="%%ParamName = %(%%ParamValue%| \\n%)" /> <syntax name="ListEqMultilineAbs" format="%%ParamName = %($(PROJECT_ROOT)/%%ParamValue%| \\n%)" /> <syntax name="ListEqMultilineAbs" format="%%ParamName = %($(PROJECT_ROOT)/%%ParamValue%| \\n%)" /> <syntax name="ListEqMultilineAbsExtra" format="%%ParamName += %($(PROJECT_ROOT)/%%ParamValue%| \\n%)" /> <syntax name="MakeCleanItems" format="clean::\n%(\t-@rm -f %%ParamValue%|\n%)"/> <syntax name="MakeCleanItems" format="clean::\n%(\t-@rm -f %%ParamValue%|\n%)"/> <syntax name="ListEqComma" format="%%ParamName = %(%%ParamValue%|,%)" /> <syntax name="ListEqComma" format="%%ParamName = %(%%ParamValue%|,%)" /> <syntax name="CocotbIncludeDirSyntax" format="%%ParamName += %(-I%%ParamValue%| %)" /> <syntax name="CocotbIncludeDirSyntax" format="%%ParamName += %(-I%%ParamValue%| %)" /> <syntax name="CocotbTopModulesOtherSyntax" format="%%ParamName += %(-s%%ParamValue%| %)" /> <syntax name="CocotbModuleLibrarySyntax" format="%%ParamName += %(-y%%ParamValue%| %)" /> <syntax name="D_ParamSyntax" format="-D%%ParamName" /> <syntax name="D_ParamSyntax" format="-D%%ParamName" /> <syntax name="g_ParamSyntax" format="-g%%ParamName" /> <syntax name="g_ParamSyntax" format="-g%%ParamName" /> <syntax name="NospecifySyntax" format="-gno-specify" /> <syntax name="NospecifySyntax" format="-gno-specify" /> <syntax name="TopModuleSyntax" format="-s%%TopModule" /> <syntax name="TopModulesOtherSyntax" format="%(-s%%ParamValue%| %)" /> <syntax name="ModuleLibrarySyntax" format="%(-y%%ParamValue%| %)" /> <syntax name="IncludeDirSyntax" format="%(-I%%ParamValue%| %)" /> <syntax name="ExtraFilesSyntax" format="%(%%ParamValue%| %)" /> <syntax name="SwitchSyntax" format="-%%ParamName" /> <syntax name="SwitchSyntax" format="-%%ParamName" /> <syntax name="GrepFindSyntax" <syntax name="GrepFindSyntax" format="| { grep --line-buffered -E "%%ParamValue" || true; }" /> format="| { grep --line-buffered -E "%%ParamValue" || true; }" /> Loading Loading @@ -174,8 +174,8 @@ <!-- <parameter id="CocotbMakefileDir" type="Pathname" label="Makefile directory" tooltip="Cocotb project Makefile directory" <!-- <parameter id="CocotbMakefileDir" type="Pathname" label="Makefile directory" tooltip="Cocotb project Makefile directory" format="CopyValue" default="%CocotbFilesDir" readonly="false" visible="true" />--> format="CopyValue" default="%CocotbFilesDir" readonly="false" visible="true" />--> <parameter id="CocotbRoot" outid="COCOTB" type="Pathname" label="Cocotb installation" tooltip="Cocotb installation root directory" <parameter id="CocotbRootRel" type="String" label="Cocotb installation" tooltip="Cocotb installation root directory relative to VDT plugin root" format="NameEqValue" default="%%PluginRoot/cocotb" readonly="false" visible="true" /> format="CopyValue" default="cocotb" readonly="false" visible="true" /> <parameter id="ProjectAbsolutePath" outid="PROJECT_ROOT" default="%%ProjectPath" label = "Project absolute path" <parameter id="ProjectAbsolutePath" outid="PROJECT_ROOT" default="%%ProjectPath" label = "Project absolute path" type="Pathname" format="NameEqValue" visible="true" /> type="Pathname" format="NameEqValue" visible="true" /> Loading @@ -195,10 +195,22 @@ <parameter id="ShowWaves" type="BoolYesNo" format="None" <parameter id="ShowWaves" type="BoolYesNo" format="None" default="true" label="Show simulation result in waveform viewer" /> default="true" label="Show simulation result in waveform viewer" /> <parameter id="IcarusTopFile" label="Simulation top file" tooltip="IVerilog simulator top file" <parameter id="CocotbTopModulesOther" outid="COMPILE_ARGS" type="Stringlist" default="%SimulationTopFile" format="CocotbTopModulesOtherSyntax" default="" omit="" type="String" format="CopyValue" /> label="Select top modules not referenced by the chosen target" readonly="false" visible="true" /> <parameter id="CocotbModuleLibrary" outid="COMPILE_ARGS" type="ModuleLibraryType" format="CocotbModuleLibrarySyntax" default="" label="Select additional libraries to include" omit="" readonly="false" visible="true" /> <parameter id="CocotbExtraFiles" outid="VERILOG_SOURCES" type="Filelist" format="ListEqMultilineAbsExtra" default="" label="Select additional Verilog files to include" omit="" readonly="false" visible="true" /> <parameter id="Param_Shell_Options" label="Param_Shell_Options" <parameter id="Param_Shell_Options" label="Param_Shell_Options" Loading @@ -224,28 +236,6 @@ format="CopyValue" default="gtkwave" readonly="false" format="CopyValue" default="gtkwave" readonly="false" visible="true" /> visible="true" /> <parameter id="Param_TopModule" label="Top module extracted from the chosen target file" type="String" format="TopModuleSyntax" default="%%TopModule" readonly="true" visible="true" /> <parameter id="TopModulesOther" type="Stringlist" format="TopModulesOtherSyntax" default="" omit="" label="Select top modules not referenced by the chosen target" readonly="false" visible="true" /> <parameter id="ModuleLibrary" type="ModuleLibraryType" format="ModuleLibrarySyntax" default="" label="Select additional libraries to include" omit="" readonly="false" visible="true" /> <parameter id="ExtraFiles" type="Filelist" format="ExtraFilesSyntax" default="" label="Select additional files to include" readonly="false" visible="true" /> <parameter id="IncludeDir" type="IncludeDirType" format="IncludeDirSyntax" default="" label="Select include file directories" omit="" readonly="false" visible="true" /> <parameter id="legacy_model" outid="legacy_model" type="D_ParamType" <parameter id="legacy_model" outid="legacy_model" type="D_ParamType" format="D_ParamSyntax" default="true" label="Use legacy model" /> format="D_ParamSyntax" default="true" label="Use legacy model" /> Loading Loading @@ -371,45 +361,36 @@ <parameter id="cocotbInstallDir" default="%CocotbRoot" <parameter id="cocotbInstallDir" default="%CocotbRoot" type="String" format="CopyValue" visible="false" /> --> type="String" format="CopyValue" visible="false" /> --> <parameter id="CocotbRoot" outid="COCOTB" type="String" format="NameEqValue" default="%%PluginRoot/%CocotbRootRel" visible="false" /> <input> <input> <group name="cocotb" label="Cocotb"> <group name="cocotb" label="Cocotb"> "CocotbMODULE" "CocotbTESTCASE" "CocotbDutTopFile" "CocotbDutTopModule" "ShowWaves" "CocotbVERILOG_SOURCES" "CocotbExtraFiles" "CocotbTopModulesOther" "GTKWaveSavFile" "CocotbIncludeDir" "IncludeParametersList" "---" "CocotbGUI" "CocotbGUI" "CocotbSIM" "CocotbSIM" "CocotbVERILOG_SOURCES" "CocotbVHDL_SOURCES" "CocotbVHDL_SOURCES" "CocotbCOMPILE_ARGS" "CocotbCOMPILE_ARGS" "CocotbSIM_ARGS" "CocotbSIM_ARGS" "CocotbEXTRA_ARGS" "CocotbEXTRA_ARGS" "CocotbCUSTOM_COMPILE_DEPS" "CocotbCUSTOM_COMPILE_DEPS" "CocotbCUSTOM_SIM_DEPS" "CocotbCUSTOM_SIM_DEPS" "CocotbDutTopFile" "CocotbDutTopModule" "CocotbRANDOM_SEED" "CocotbRANDOM_SEED" "COCOTB_ANSI_OUTPUT" "COCOTB_ANSI_OUTPUT" "CocotbMODULE" "CocotbRootRel" "CocotbTESTCASE" "CocotbRoot" "CocotbFilesDir" "CocotbIncludeDir" "MakeCleanPatterns" "MakeCleanPatterns" "ShowWaves" "CocotbModuleLibrary" "GTKWaveSavFile" <!-- "CocotbMakefileDir" --> "ParsersRoot" "ProjectAbsolutePath" </group> <group name="files" label="Files"> <!-- "SimulationTopFile" --> "IcarusTopFile" "Param_TopModule" "TopModulesOther" "ExtraFiles" "ModuleLibrary" "IncludeDir" "IncludeParametersList" </group> </group> <group name="options" label="Options"> <group name="options" label="Options"> <!--"ShowWaves" --> <!--"ShowWaves" --> Loading Loading @@ -460,29 +441,13 @@ "exit 0;" "exit 0;" - "else echo 'FAILURE';" - "else echo 'FAILURE';" "fi" "fi" <!-- "%Param_Shell_Options" "while true; do" " read -p 'Do you wish to install this program? ' yn;" " case $yn in" " [Yy]* ) echo 'Installing...'; break;;" " [Nn]* ) exit;;" " * ) echo 'Please answer yes or no.';;" " esac" "done" --> </line> </line> <!-- TODO: watch for new lines inserted inside quoted tokens during autoformat - they break output <!-- TODO: watch for new lines inserted inside quoted tokens during autoformat - they break output Maybe add filter to the code to transform white spaces --> Maybe add filter to the code to transform white spaces --> <line name="command_line" <line name="command_line" sep=" " sep=" " success = "SIMULATION FINISHED SUCCESSFULLY" success = "SIMULATION FINISHED SUCCESSFULLY" failure = "recipe for target '[^']*' failed" > > <!-- success="SIMULATION FINISHED SUCCESSFULLY" --> "%Param_Shell_Options" "%Param_Shell_Options" "%Param_PreExe" "%Param_PreExe" <!-- MKDIR - ALWAYS --> <!-- MKDIR - ALWAYS --> Loading Loading @@ -529,18 +494,26 @@ "%CocotbMODULE" "%CocotbMODULE" "%CocotbTESTCASE" "%CocotbTESTCASE" "%CocotbVERILOG_SOURCES" "%CocotbVERILOG_SOURCES" "%CocotbExtraFiles" "%CocotbVHDL_SOURCES" "%CocotbVHDL_SOURCES" "%CocotbGUI" "%CocotbGUI" "%CocotbSIM" "%CocotbSIM" "%CocotbCOMPILE_ARGS" "%CocotbCOMPILE_ARGS" <!-- Always include top project dir (where IVERILOG_INCLUDE.v is) --> <!-- Always include top project dir (where IVERILOG_INCLUDE.v is) --> "COMPILE_ARGS += -I/$(PROJECT_ROOT)" "COMPILE_ARGS += -I/$(PROJECT_ROOT)" <if ShowWaves="true"> "COMPILE_ARGS += -DTRACE" </if> "%CocotbTopModulesOther" "%CocotbModuleLibrary" "%CocotbIncludeDir" "%CocotbIncludeDir" "%CocotbSIM_ARGS" "%CocotbSIM_ARGS" "%CocotbEXTRA_ARGS" "%CocotbEXTRA_ARGS" "%CocotbCUSTOM_COMPILE_DEPS" "%CocotbCUSTOM_COMPILE_DEPS" <!--"CUSTOM_COMPILE_DEPS += %%ProjectPath/IVERILOG_INCLUDE.v"--> <!--"CUSTOM_COMPILE_DEPS += %%ProjectPath/IVERILOG_INCLUDE.v"--> ""CUSTOM_COMPILE_DEPS += $(PROJECT_ROOT)/IVERILOG_INCLUDE.v "CUSTOM_COMPILE_DEPS += $(PROJECT_ROOT)/IVERILOG_INCLUDE.v" "%CocotbCUSTOM_SIM_DEPS" "%CocotbCUSTOM_SIM_DEPS" "%CocotbRANDOM_SEED" "%CocotbRANDOM_SEED" "%COCOTB_ANSI_OUTPUT" "%COCOTB_ANSI_OUTPUT" Loading @@ -548,10 +521,6 @@ "include $(COCOTB)/makefiles/Makefile.inc" "include $(COCOTB)/makefiles/Makefile.inc" "include $(COCOTB)/makefiles/Makefile.sim" "include $(COCOTB)/makefiles/Makefile.sim" "%MakeCleanPatterns" "%MakeCleanPatterns" <!-- "clean::" "\t-@rm -f *.pyc" "\t-@rm -f *.jpg" "\t-@rm -f results.xml" --> </line> </line> </output> </output> Loading Loading
src/com/elphel/vdt/core/tools/generators/FilteredIncludesListGenerator.java +17 −12 Original line number Original line Diff line number Diff line Loading @@ -34,13 +34,6 @@ import java.util.regex.PatternSyntaxException; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResource; //import com.elphel.vdt.VDT; //import com.elphel.vdt.VDT; import com.elphel.vdt.VerilogUtils; import com.elphel.vdt.VerilogUtils; import com.elphel.vdt.core.tools.params.FormatProcessor; import com.elphel.vdt.core.tools.params.FormatProcessor; Loading Loading @@ -98,12 +91,24 @@ public class FilteredIncludesListGenerator extends AbstractGenerator { String[] file_names = null; String[] file_names = null; IResource resource = SelectedResourceManager.getDefault().getChosenVerilogFile(); IResource resource = SelectedResourceManager.getDefault().getChosenVerilogFile(); if ((topFile != null) && (!topFile.equals("")) && (resource !=null)) { if ((topFile != null) && (!topFile.equals("")) && (resource !=null)) { // If topFile is absolute, try to convert top file to project resource if (topFile.startsWith("/")){ String aPojectStr=resource.getProject().getLocation().toOSString(); if (topFile.startsWith(aPojectStr)){ topFile = topFile.substring(aPojectStr.length()+1); } } // Only apply if topFile is not absolute anymore if (!topFile.startsWith("/")){ IResource resource1 = resource.getProject().getFile(topFile); IResource resource1 = resource.getProject().getFile(topFile); if ((resource1 != null) && (resource1.getType() == IResource.FILE)){ if ((resource1 != null) && (resource1.getType() == IResource.FILE)){ resource = resource1; resource = resource1; // System.out.println("resource1="+resource1); // System.out.println("resource1="+resource1); } } } } } Pattern ignorePattern = null; Pattern ignorePattern = null; if (ignoreFilter!=null){ if (ignoreFilter!=null){ try { try { Loading
src/com/elphel/vdt/core/tools/generators/FilteredSourceListGenerator.java +15 −13 Original line number Original line Diff line number Diff line Loading @@ -34,14 +34,6 @@ import java.util.regex.PatternSyntaxException; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResource; //import com.elphel.vdt.VDT; //import com.elphel.vdt.VDT; import com.elphel.vdt.VerilogUtils; import com.elphel.vdt.VerilogUtils; import com.elphel.vdt.core.tools.params.FormatProcessor; import com.elphel.vdt.core.tools.params.FormatProcessor; Loading Loading @@ -91,7 +83,7 @@ public class FilteredSourceListGenerator extends AbstractGenerator { System.out.println("FilteredSourceListGenerator().getStringValue(): tool="+tool.getName()+", ignoreFilter="+ignoreFilter); System.out.println("FilteredSourceListGenerator().getStringValue(): tool="+tool.getName()+", ignoreFilter="+ignoreFilter); } } topFile = tool.getTopFile(); topFile = tool.getTopFile(); toolDefine = tool.getDefine(); toolDefine = tool.getDefine(); // correct absolute if ((toolDefine == null) || (toolDefine == "")) { if ((toolDefine == null) || (toolDefine == "")) { if ((topFile == null ) || (topFile == "")) toolDefine = null; // no need to reparse tree for this tool if ((topFile == null ) || (topFile == "")) toolDefine = null; // no need to reparse tree for this tool else toolDefine = ""; // reparse for this tool - top file may have different defines else toolDefine = ""; // reparse for this tool - top file may have different defines Loading @@ -109,12 +101,22 @@ public class FilteredSourceListGenerator extends AbstractGenerator { String[] file_names = null; String[] file_names = null; IResource resource = SelectedResourceManager.getDefault().getChosenVerilogFile(); IResource resource = SelectedResourceManager.getDefault().getChosenVerilogFile(); if ((topFile != null) && (!topFile.equals("")) && (resource !=null)) { if ((topFile != null) && (!topFile.equals("")) && (resource !=null)) { // If topFile is absolute, try to convert top file to project resource if (topFile.startsWith("/")){ String aPojectStr=resource.getProject().getLocation().toOSString(); if (topFile.startsWith(aPojectStr)){ topFile = topFile.substring(aPojectStr.length()+1); } } // Only apply if topFile is not absolute anymore if (!topFile.startsWith("/")){ IResource resource1 = resource.getProject().getFile(topFile); IResource resource1 = resource.getProject().getFile(topFile); if ((resource1 != null) && (resource1.getType() == IResource.FILE)){ if ((resource1 != null) && (resource1.getType() == IResource.FILE)){ resource = resource1; resource = resource1; // System.out.println("resource1="+resource1); // System.out.println("resource1="+resource1); } } } } } Pattern ignorePattern = null; Pattern ignorePattern = null; if (ignoreFilter!=null){ if (ignoreFilter!=null){ try { try { Loading
src/com/elphel/vdt/ui/options/component/FileComponent.java +24 −5 Original line number Original line Diff line number Diff line Loading @@ -26,6 +26,7 @@ *******************************************************************************/ *******************************************************************************/ package com.elphel.vdt.ui.options.component; package com.elphel.vdt.ui.options.component; import org.eclipse.core.resources.IProject; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Composite; Loading @@ -33,6 +34,7 @@ import org.eclipse.swt.widgets.FileDialog; import com.elphel.vdt.core.tools.params.Parameter; import com.elphel.vdt.core.tools.params.Parameter; import com.elphel.vdt.core.tools.params.types.ParamTypeString; import com.elphel.vdt.core.tools.params.types.ParamTypeString; import com.elphel.vdt.ui.variables.SelectedResourceManager; public class FileComponent extends BrowsableComponent { public class FileComponent extends BrowsableComponent { Loading Loading @@ -61,8 +63,25 @@ public class FileComponent extends BrowsableComponent { FileDialog dialog = (FileDialog)locationField.getBrowseDialog(); FileDialog dialog = (FileDialog)locationField.getBrowseDialog(); String selectedFile = dialog.open(); String selectedFile = dialog.open(); if(selectedFile != null) if(selectedFile != null) { // try to convert to project-relative IProject project = SelectedResourceManager.getDefault().getSelectedProject(); String projectPath=null; if (project!=null) { projectPath=project.getLocation().toString(); if ((selectedFile!=null) && selectedFile.startsWith(projectPath)) { if (selectedFile.equals(projectPath)){ System.out.println("FileListPromptDialog(): Path equals to project path = \""+selectedFile+"\", returning \".\""); selectedFile = "."; } selectedFile = selectedFile.substring(projectPath.length()+1); } } locationField.getBrowsedNameField().setText(selectedFile); locationField.getBrowsedNameField().setText(selectedFile); } } } }); }); Loading
tools/DesignMenu.xml +1 −1 Original line number Original line Diff line number Diff line Loading @@ -41,7 +41,7 @@ <menuitem name="cocotb" <menuitem name="cocotb" label="Cocotb Python Verification" label="Cocotb Python Verification" icon="pv_logo_32x32.png" icon="pv_hc.png" call="cocotb"/> call="cocotb"/> <menuitem name="GTKWave" <menuitem name="GTKWave" Loading
tools/Verilog/Cocotb.xml +54 −85 Original line number Original line Diff line number Diff line Loading @@ -45,19 +45,19 @@ </typedef> </typedef> <syntax name="ListEqMultiline" format="%%ParamName = %(%%ParamValue%| \\n%)" /> <syntax name="ListEqMultiline" format="%%ParamName = %(%%ParamValue%| \\n%)" /> <syntax name="ListEqMultilineAbs" format="%%ParamName = %($(PROJECT_ROOT)/%%ParamValue%| \\n%)" /> <syntax name="ListEqMultilineAbs" format="%%ParamName = %($(PROJECT_ROOT)/%%ParamValue%| \\n%)" /> <syntax name="ListEqMultilineAbsExtra" format="%%ParamName += %($(PROJECT_ROOT)/%%ParamValue%| \\n%)" /> <syntax name="MakeCleanItems" format="clean::\n%(\t-@rm -f %%ParamValue%|\n%)"/> <syntax name="MakeCleanItems" format="clean::\n%(\t-@rm -f %%ParamValue%|\n%)"/> <syntax name="ListEqComma" format="%%ParamName = %(%%ParamValue%|,%)" /> <syntax name="ListEqComma" format="%%ParamName = %(%%ParamValue%|,%)" /> <syntax name="CocotbIncludeDirSyntax" format="%%ParamName += %(-I%%ParamValue%| %)" /> <syntax name="CocotbIncludeDirSyntax" format="%%ParamName += %(-I%%ParamValue%| %)" /> <syntax name="CocotbTopModulesOtherSyntax" format="%%ParamName += %(-s%%ParamValue%| %)" /> <syntax name="CocotbModuleLibrarySyntax" format="%%ParamName += %(-y%%ParamValue%| %)" /> <syntax name="D_ParamSyntax" format="-D%%ParamName" /> <syntax name="D_ParamSyntax" format="-D%%ParamName" /> <syntax name="g_ParamSyntax" format="-g%%ParamName" /> <syntax name="g_ParamSyntax" format="-g%%ParamName" /> <syntax name="NospecifySyntax" format="-gno-specify" /> <syntax name="NospecifySyntax" format="-gno-specify" /> <syntax name="TopModuleSyntax" format="-s%%TopModule" /> <syntax name="TopModulesOtherSyntax" format="%(-s%%ParamValue%| %)" /> <syntax name="ModuleLibrarySyntax" format="%(-y%%ParamValue%| %)" /> <syntax name="IncludeDirSyntax" format="%(-I%%ParamValue%| %)" /> <syntax name="ExtraFilesSyntax" format="%(%%ParamValue%| %)" /> <syntax name="SwitchSyntax" format="-%%ParamName" /> <syntax name="SwitchSyntax" format="-%%ParamName" /> <syntax name="GrepFindSyntax" <syntax name="GrepFindSyntax" format="| { grep --line-buffered -E "%%ParamValue" || true; }" /> format="| { grep --line-buffered -E "%%ParamValue" || true; }" /> Loading Loading @@ -174,8 +174,8 @@ <!-- <parameter id="CocotbMakefileDir" type="Pathname" label="Makefile directory" tooltip="Cocotb project Makefile directory" <!-- <parameter id="CocotbMakefileDir" type="Pathname" label="Makefile directory" tooltip="Cocotb project Makefile directory" format="CopyValue" default="%CocotbFilesDir" readonly="false" visible="true" />--> format="CopyValue" default="%CocotbFilesDir" readonly="false" visible="true" />--> <parameter id="CocotbRoot" outid="COCOTB" type="Pathname" label="Cocotb installation" tooltip="Cocotb installation root directory" <parameter id="CocotbRootRel" type="String" label="Cocotb installation" tooltip="Cocotb installation root directory relative to VDT plugin root" format="NameEqValue" default="%%PluginRoot/cocotb" readonly="false" visible="true" /> format="CopyValue" default="cocotb" readonly="false" visible="true" /> <parameter id="ProjectAbsolutePath" outid="PROJECT_ROOT" default="%%ProjectPath" label = "Project absolute path" <parameter id="ProjectAbsolutePath" outid="PROJECT_ROOT" default="%%ProjectPath" label = "Project absolute path" type="Pathname" format="NameEqValue" visible="true" /> type="Pathname" format="NameEqValue" visible="true" /> Loading @@ -195,10 +195,22 @@ <parameter id="ShowWaves" type="BoolYesNo" format="None" <parameter id="ShowWaves" type="BoolYesNo" format="None" default="true" label="Show simulation result in waveform viewer" /> default="true" label="Show simulation result in waveform viewer" /> <parameter id="IcarusTopFile" label="Simulation top file" tooltip="IVerilog simulator top file" <parameter id="CocotbTopModulesOther" outid="COMPILE_ARGS" type="Stringlist" default="%SimulationTopFile" format="CocotbTopModulesOtherSyntax" default="" omit="" type="String" format="CopyValue" /> label="Select top modules not referenced by the chosen target" readonly="false" visible="true" /> <parameter id="CocotbModuleLibrary" outid="COMPILE_ARGS" type="ModuleLibraryType" format="CocotbModuleLibrarySyntax" default="" label="Select additional libraries to include" omit="" readonly="false" visible="true" /> <parameter id="CocotbExtraFiles" outid="VERILOG_SOURCES" type="Filelist" format="ListEqMultilineAbsExtra" default="" label="Select additional Verilog files to include" omit="" readonly="false" visible="true" /> <parameter id="Param_Shell_Options" label="Param_Shell_Options" <parameter id="Param_Shell_Options" label="Param_Shell_Options" Loading @@ -224,28 +236,6 @@ format="CopyValue" default="gtkwave" readonly="false" format="CopyValue" default="gtkwave" readonly="false" visible="true" /> visible="true" /> <parameter id="Param_TopModule" label="Top module extracted from the chosen target file" type="String" format="TopModuleSyntax" default="%%TopModule" readonly="true" visible="true" /> <parameter id="TopModulesOther" type="Stringlist" format="TopModulesOtherSyntax" default="" omit="" label="Select top modules not referenced by the chosen target" readonly="false" visible="true" /> <parameter id="ModuleLibrary" type="ModuleLibraryType" format="ModuleLibrarySyntax" default="" label="Select additional libraries to include" omit="" readonly="false" visible="true" /> <parameter id="ExtraFiles" type="Filelist" format="ExtraFilesSyntax" default="" label="Select additional files to include" readonly="false" visible="true" /> <parameter id="IncludeDir" type="IncludeDirType" format="IncludeDirSyntax" default="" label="Select include file directories" omit="" readonly="false" visible="true" /> <parameter id="legacy_model" outid="legacy_model" type="D_ParamType" <parameter id="legacy_model" outid="legacy_model" type="D_ParamType" format="D_ParamSyntax" default="true" label="Use legacy model" /> format="D_ParamSyntax" default="true" label="Use legacy model" /> Loading Loading @@ -371,45 +361,36 @@ <parameter id="cocotbInstallDir" default="%CocotbRoot" <parameter id="cocotbInstallDir" default="%CocotbRoot" type="String" format="CopyValue" visible="false" /> --> type="String" format="CopyValue" visible="false" /> --> <parameter id="CocotbRoot" outid="COCOTB" type="String" format="NameEqValue" default="%%PluginRoot/%CocotbRootRel" visible="false" /> <input> <input> <group name="cocotb" label="Cocotb"> <group name="cocotb" label="Cocotb"> "CocotbMODULE" "CocotbTESTCASE" "CocotbDutTopFile" "CocotbDutTopModule" "ShowWaves" "CocotbVERILOG_SOURCES" "CocotbExtraFiles" "CocotbTopModulesOther" "GTKWaveSavFile" "CocotbIncludeDir" "IncludeParametersList" "---" "CocotbGUI" "CocotbGUI" "CocotbSIM" "CocotbSIM" "CocotbVERILOG_SOURCES" "CocotbVHDL_SOURCES" "CocotbVHDL_SOURCES" "CocotbCOMPILE_ARGS" "CocotbCOMPILE_ARGS" "CocotbSIM_ARGS" "CocotbSIM_ARGS" "CocotbEXTRA_ARGS" "CocotbEXTRA_ARGS" "CocotbCUSTOM_COMPILE_DEPS" "CocotbCUSTOM_COMPILE_DEPS" "CocotbCUSTOM_SIM_DEPS" "CocotbCUSTOM_SIM_DEPS" "CocotbDutTopFile" "CocotbDutTopModule" "CocotbRANDOM_SEED" "CocotbRANDOM_SEED" "COCOTB_ANSI_OUTPUT" "COCOTB_ANSI_OUTPUT" "CocotbMODULE" "CocotbRootRel" "CocotbTESTCASE" "CocotbRoot" "CocotbFilesDir" "CocotbIncludeDir" "MakeCleanPatterns" "MakeCleanPatterns" "ShowWaves" "CocotbModuleLibrary" "GTKWaveSavFile" <!-- "CocotbMakefileDir" --> "ParsersRoot" "ProjectAbsolutePath" </group> <group name="files" label="Files"> <!-- "SimulationTopFile" --> "IcarusTopFile" "Param_TopModule" "TopModulesOther" "ExtraFiles" "ModuleLibrary" "IncludeDir" "IncludeParametersList" </group> </group> <group name="options" label="Options"> <group name="options" label="Options"> <!--"ShowWaves" --> <!--"ShowWaves" --> Loading Loading @@ -460,29 +441,13 @@ "exit 0;" "exit 0;" - "else echo 'FAILURE';" - "else echo 'FAILURE';" "fi" "fi" <!-- "%Param_Shell_Options" "while true; do" " read -p 'Do you wish to install this program? ' yn;" " case $yn in" " [Yy]* ) echo 'Installing...'; break;;" " [Nn]* ) exit;;" " * ) echo 'Please answer yes or no.';;" " esac" "done" --> </line> </line> <!-- TODO: watch for new lines inserted inside quoted tokens during autoformat - they break output <!-- TODO: watch for new lines inserted inside quoted tokens during autoformat - they break output Maybe add filter to the code to transform white spaces --> Maybe add filter to the code to transform white spaces --> <line name="command_line" <line name="command_line" sep=" " sep=" " success = "SIMULATION FINISHED SUCCESSFULLY" success = "SIMULATION FINISHED SUCCESSFULLY" failure = "recipe for target '[^']*' failed" > > <!-- success="SIMULATION FINISHED SUCCESSFULLY" --> "%Param_Shell_Options" "%Param_Shell_Options" "%Param_PreExe" "%Param_PreExe" <!-- MKDIR - ALWAYS --> <!-- MKDIR - ALWAYS --> Loading Loading @@ -529,18 +494,26 @@ "%CocotbMODULE" "%CocotbMODULE" "%CocotbTESTCASE" "%CocotbTESTCASE" "%CocotbVERILOG_SOURCES" "%CocotbVERILOG_SOURCES" "%CocotbExtraFiles" "%CocotbVHDL_SOURCES" "%CocotbVHDL_SOURCES" "%CocotbGUI" "%CocotbGUI" "%CocotbSIM" "%CocotbSIM" "%CocotbCOMPILE_ARGS" "%CocotbCOMPILE_ARGS" <!-- Always include top project dir (where IVERILOG_INCLUDE.v is) --> <!-- Always include top project dir (where IVERILOG_INCLUDE.v is) --> "COMPILE_ARGS += -I/$(PROJECT_ROOT)" "COMPILE_ARGS += -I/$(PROJECT_ROOT)" <if ShowWaves="true"> "COMPILE_ARGS += -DTRACE" </if> "%CocotbTopModulesOther" "%CocotbModuleLibrary" "%CocotbIncludeDir" "%CocotbIncludeDir" "%CocotbSIM_ARGS" "%CocotbSIM_ARGS" "%CocotbEXTRA_ARGS" "%CocotbEXTRA_ARGS" "%CocotbCUSTOM_COMPILE_DEPS" "%CocotbCUSTOM_COMPILE_DEPS" <!--"CUSTOM_COMPILE_DEPS += %%ProjectPath/IVERILOG_INCLUDE.v"--> <!--"CUSTOM_COMPILE_DEPS += %%ProjectPath/IVERILOG_INCLUDE.v"--> ""CUSTOM_COMPILE_DEPS += $(PROJECT_ROOT)/IVERILOG_INCLUDE.v "CUSTOM_COMPILE_DEPS += $(PROJECT_ROOT)/IVERILOG_INCLUDE.v" "%CocotbCUSTOM_SIM_DEPS" "%CocotbCUSTOM_SIM_DEPS" "%CocotbRANDOM_SEED" "%CocotbRANDOM_SEED" "%COCOTB_ANSI_OUTPUT" "%COCOTB_ANSI_OUTPUT" Loading @@ -548,10 +521,6 @@ "include $(COCOTB)/makefiles/Makefile.inc" "include $(COCOTB)/makefiles/Makefile.inc" "include $(COCOTB)/makefiles/Makefile.sim" "include $(COCOTB)/makefiles/Makefile.sim" "%MakeCleanPatterns" "%MakeCleanPatterns" <!-- "clean::" "\t-@rm -f *.pyc" "\t-@rm -f *.jpg" "\t-@rm -f results.xml" --> </line> </line> </output> </output> Loading