⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lvds_fpga2.restore

📁 FPGA芯片与ADI公司的AD9779之间的通信
💻 RESTORE
📖 第 1 页 / 共 4 页
字号:
   OnOkPtr iPropTableFetch {      $iPropTableFetch GetPropTable prop_table_comp   }   set iScratch [ GetInterface $prop_table_comp $xilinx::Dpm::IScratchPropertyManagerID ]   OnNullPtr iScratch {      ERR "Could not get the Scratch Property Manager from the Project Helper."   }   return $iScratch}#  Helper to get the Design from the Project Helper.#  Clients must release this.proc GetDesign { iProjHelper } {   set iProject [GetProject $iProjHelper]   set iDesign 0   OnOkPtr iProject { $iProject GetDesign iDesign }   OnNullPtr iDesign {      ERR "Could not get the Design from the Project Helper."   }   Release $iProject   return $iDesign}#  Helper to get the Data Store from the Project Helper.#  Clients must NOT release this.proc GetDataStore { iProjHelper } {   set iDesign [ GetDesign $iProjHelper]   set iDataStore 0   OnOkPtr iDesign { $iDesign GetDataStore iDataStore }   OnNullPtr iDataStore {      ERR "Could not get the Data Store from the Project Helper."   }   Release $iDesign   return $iDataStore}#  Helper to get the View Manager from the Project Helper.#  Clients must NOT release this.proc GetViewManager { iProjHelper } {   set iDesign [ GetDesign $iProjHelper]   set iViewMgr [ GetInterface $iDesign $xilinx::Dpm::IViewManagerID ]   OnNullPtr iViewMgr {      ERR "Could not get the View Manager from the Project Helper."   }   # Don't release the design here, clients will release it    # when they release its IViewManager interface.   return $iViewMgr}#  Helper to get the Property Manager from the Project Helper.#  Clients must release this.proc GetPropertyManager { iProjHelper } {   set iDesign [ GetDesign $iProjHelper]   set iPropMgr 0   OnOkPtr iDesign { $iDesign GetPropertyManager iPropMgr }   OnNullPtr iPropMgr {      ERR "Could not get the Property Manager from the Project Helper."   }   Release $iDesign   return $iPropMgr}#  Helper to find a property template, based on prop_name#  Clients must NOT release this.proc GetPropertyTemplate { iProjHelper prop_name } {   set iPropTempl 0   set iUnk 0   set iDefdataId 0   set iPropTemplStore 0   set iDataStore [GetDataStore $iProjHelper]   OnOkPtr iDataStore { $iDataStore GetComponentByName $prop_name iUnk }   OnOkPtr iUnk { set iDefdataId [ GetInterface $iUnk $xilinx::Dpm::IDefDataIdID IDefDataId ] }   OnOkPtr iDefdataId {      set iPropTemplStore [ GetInterface $iDataStore $xilinx::Dpm::IPropertyTemplateStoreID IPropertyTemplateStore ]   }   OnOkPtr iPropTemplStore { $iPropTemplStore GetPropertyTemplate $iDefdataId iPropTempl }   OnNullPtr iPropTempl {      WARN "Could not get the property template for \"$prop_name\"."   }   return $iPropTempl}#  Helper to get a component's name.proc GetName { iUnk } {   set name ""   set iName [ GetInterface $iUnk $xilinx::Prjrep::INameID IName ]   OnOkPtr iName { $iName GetName name }   return $name}#  Helper to get the name of a view's type.proc GetViewTypeName { iView } {   set typeName ""   set iType 0   set iDefdataType 0   OnOkPtr iView { $iView GetType iType }   OnOkPtr iType {      set iDefdataType [ GetInterface $iType $xilinx::Dpm::IDefDataIdID IDefDataId ]   }   OnOkPtr iDefdataType { $iDefdataType GetID typeName }   return $typeName}#  Helper to find a view and return its context.#  Must clients release this?proc GetViewContext { iProjHelper view_id view_name } {   # Simply return if the view_id or view_name is empty.   if { [IsBlank $view_id] || [IsBlank $view_name] } { return 0 }   set foundview 0   set viewiter 0   set iViewMgr [GetViewManager $iProjHelper]   OnOkPtr iViewMgr { $iViewMgr GetViews viewiter }   ForEachIterEle view $viewiter {      set typeName [GetViewTypeName $view]      set name [GetName $view]      if { [ string equal $name $view_name ] && [ string equal $view_id $typeName ] } {         set foundview $view      }   }   set context [ GetInterface $foundview $xilinx::Dpm::IPropertyContextID ]   OnNullPtr context {      WARN "Could not get the context for view \"$view_id\":\"$view_name\"."   }   return $context}#  Helper to get a string property instance from the property manager.proc GetStringPropertyInstance { iProjHelper simple_id } {   set iPropMgr [GetPropertyManager $iProjHelper]   if {$iPropMgr == 0} { return 0 }   set iPropInst 0   $iPropMgr GetStringProperty $simple_id iPropInst   OnNullPtr iPropInst { WARN "Could not get the string property instance $simple_id." }   Release $iPropMgr   return $iPropInst}#  Helper to get a property instance from the property manager.proc GetPropertyInstance { iProjHelper view_name view_id prop_name } {   set iPropInst 0   set iPropTempl [ GetPropertyTemplate $iProjHelper $prop_name ]   if {$iPropTempl == 0} { return 0 }   set context [ GetViewContext $iProjHelper $view_id $view_name ]   set iPropMgr [GetPropertyManager $iProjHelper]   if {$iPropMgr == 0} { return 0 }   $iPropMgr GetPropertyInstance $iPropTempl $context iPropInst   OnNullPtr iPropInst {      if { ![IsBlank $view_id] && ![IsBlank $view_name] } {         WARN "Could not get the context sensitive property instance $prop_name."      } else {         WARN "Could not get the property instance $prop_name."      }   }   Release $iPropMgr   return $iPropInst}#  Helper to store properties back into the property manager.proc RestoreProcessProperties { iProjHelper process_props } {   INFO "Restoring process properties"   foreach { unused view_name view_id simple_id prop_name prop_val } $process_props {      set iPropInst 0      if {![IsBlank $simple_id]} {         set iPropInst [ GetStringPropertyInstance $iProjHelper $simple_id ]      } else {         set iPropInst [ GetPropertyInstance $iProjHelper $view_name $view_id $prop_name ]      }      OnOkPtr iPropInst {         OnFail [ $iPropInst SetStringValue "$prop_val" ] {            WARN "Could not set the value of the $prop_name property to \"$prop_val\"."         }      }      Release $iPropInst   }}#  Helper to recreate partitions from the variable name with#  a list of instance names.proc RestorePartitions { namelist } {   INFO "Restoring partitions."   set iHDProject [ GetCurrentHDProject ]   OnOkPtr iHDProject {      foreach name $namelist {         set iPartition [ $iHDProject CreatePartition "$name" ]      }   }}#  Helper to create and populate a library#proc CreateLibrary { iProjHelper libname filelist } {   set iLibMgr [ GetSourceLibraryManager $iProjHelper ]   set iFileMgr [ GetFileManager $iProjHelper ]   if {$iLibMgr == 0} { return 0 }   if {$iFileMgr == 0} { return 0 }   $iLibMgr CreateSourceLibrary "libname" ilib   OnOkPtr ilib {      foreach filename $filelist {         set argfile [ file normalize "$filename" ]         set found 0         set fileiter 0         $iFileMgr GetFiles fileiter         ForEachIterEle ifile $fileiter {            set path ""            set file ""            $ifile getPath path file            set currentfile [ file normalize [ file join "$path" "$file" ] ]            if { $currentfile == $argfile } {               set found 1               $ilib AddFile ifile               break            }         }         OnNullPtr found {            WARN "Could not add the file \"$filename\" to the library \"$libname\"."         }      }   }}#  Helper to create source libraries and populate them.proc RestoreSourceLibraries { iProjHelper libraries } {   INFO "Restoring source libraries."   foreach { libname filelist } $libraries {      CreateLibrary $iProjHelper "$libname" $filelist   }}# Helper to add user files to the project using the PnF.proc AddUserFiles { iProjHelper files } {   INFO "Adding User files."   set iconflict 0   set iSrcHelper [ GetProjSrcHelper $iProjHelper ]   if {$iSrcHelper == 0} { return 0 }   foreach filename $files {      INFO "Adding the file \"$filename\" to the project."      set result [$iSrcHelper AddSourceFile "$filename" iconflict]      OnFail $result {         if {$result == 6} {            INFO "The file \"$filename\" is already in the project."         } else {            ERR "A problem occurred adding the file \"$filename\" to the project."         }      }   }}# Helper to add files to the project and set their origination. # Valid origination values are:#   0 - User#   1 - Generated#   2 - Imported# Files of origination "User" are added through the facilitator, # otherwise they are added directly to the File Manager.proc AddImportedFiles { iProjHelper files origination } {   switch $origination {      0 { INFO "Adding User files." }      1 { INFO "Adding Generated files." }      2 { INFO "Adding Imported files." }      default {         ERR "Invalid parameter: origination was set to \"$origination\", but may only be 0, 1, or 2."         return 0      }   }   set iFileMgr [ GetFileManager $iProjHelper ]   if {$iFileMgr == 0} { return 0 }   foreach filename $files {      set file_type 0      set hdl_file 0      set result [$iFileMgr AddFile "$filename" $file_type hdl_file]      OnFail $result {         if {$result == 6} {            INFO "The file \"$filename\" is already in the project."         } elseif { $hdl_file == 0 } {            ERR "A problem occurred adding the file \"$filename\" to the project."         }      }      OnOkPtr hdl_file {         set ifile [ GetInterface $hdl_file $xilinx::Dpm::IFileID IFile ]         OnOkPtr ifile {            set result [ $ifile SetOrigination $origination ]            if {$result != 1} {               ERR "A problem occurred setting the origination of \"$filename\" to \"$origination\"."            }            Release $ifile         }      }   }   return 1}proc RestoreProjectSettings { iProjHelper project_settings } {   INFO "Restoring device settings"   set iScratch [GetScratchPropertyManager $iProjHelper]   set iPropIter 0   set iPropSet [ GetInterface $iScratch $xilinx::Dpm::IPropertyNodeSetID IPropertyNodeSet ]   OnOkPtr iPropSet {      $iPropSet GetIterator iPropIter   }   set index 0   set lastindex [llength $project_settings]   ForEachIterEle prop_node $iPropIter {      set prop_instance 0      $prop_node GetPropertyInstance prop_instance      if { $index < $lastindex } {         set argname [ lindex $project_settings $index ]         set argvalue [ lindex $project_settings [ expr $index + 1 ] ]      } else {         set argname {}         set argvalue {}      }      if { $prop_instance != 0 } {         set name {}         $prop_instance GetName name         if { [string equal $name $argname ] } {            $prop_instance SetStringValue $argvalue            incr index            incr index         }      }      Release $prop_instance   }   $iScratch Commit   # initialize   $iProjHelper Init}#  Helper to load a source control configuration from a stream#  and then store it back into an ise file.proc RestoreSourceControlOptions { prjfile istream } {   INFO "Restoring source control options"   set config_comp [::Xilinx::Cit::FactoryCreate $::xilinx::Dpm::SourceControlConfigurationCompID ]   OnOkPtr config_comp { set ipersist [ $config_comp GetInterface $xilinx::Prjrep::IPersistID ] }   OnOkPtr config_comp { set igetopts [ $config_comp GetInterface $xilinx::Dpm::SrcCtrl::IGetOptionsID ] }   set helper_comp [::Xilinx::Cit::FactoryCreate $::xilinx::Dpm::SourceControlHelpCompID ]   OnOkPtr helper_comp { set ihelper [ $config_comp GetInterface $xilinx::Dpm::SrcCtrl::IHelperID ] }   OnOkPtr ipersist { $ipersist Load istream }   OnOkPtr ihelper { OnOkPtr igetopts { $ihelper SaveOptions $prjfile $igetopts } }   Release $helper_comp $config_comp}# put a string message in a GUI popup message dialog (if possible),# Get a user Yes/No response. If the GUI isn't active just 'puts' # the message to stdout and return the default value.#		sMessageGUI - string, the message to display in GUI environment#		sMessageCmdLine - string, the message to display in CMdLine environment#		defaultValue - integer, the response to return on a timeout</In>#		hasCancel - integer, defaulting to 0. If 1, show Yes/No/Cancel buttons</In>proc dpm_DisplayQuestionDialog { sMessageGUI sMessageCmdLine defaultValue { hasCancel 0} } {   set iMessageDisplay 0   if {[catch {	   set iInterface [Xilinx::CitP::GetInstance $::xilinx::GuiI::IMessageDlgID]	   set iMessageDisplay [$iInterface GetInterface $::xilinx::GuiI::IMessageDlgID]   }]} { 	   # if we cannot get the IMessageDlgID interface then we are most likely

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -