Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 19 additions & 34 deletions tclapp/bluepearl/README
Original file line number Diff line number Diff line change
@@ -1,39 +1,24 @@
MyCompany Tcl Apps (demonstration)
Blue Pearl Software, Visual Verification Suite

This directory is the top-level directory for Tcl Apps provided
by MyCompany.
This directory contains the **bpsvvs** app provided by Blue Pearl's
Visual Verification Suite

The only Tcl file within this directory is a manually copied
pkgIndex.tcl file. The file pkgIndex.tcl is the same in all
provider directories.
All Tcl procs, variables, etc. must be defined within the
::tclapp::mycompany::myapp namespace. No globals of any kind are
allowed.

### bpsvs commands list
::tclapp::bluepearl::bpsvvs::generate_bps_project
::tclapp::bluepearl::bpsvvs::launch_bps
::tclapp::bluepearl::bpsvvs::update_vivado_into_bps
Vivado% auto_mkindex .

================================================================
CREATING A NEW TCL APP
USING THIS APP FROM VIVADO
================================================================
To create a new Tcl App simply make a new directory with the
name of the App, e.g.

% mkdir myapp

In the app directory you can add any number of Tcl files that
together make up the app. The only requirement is that the app
directory contains one Tcl file with the same name as the app,
e.g. myapp.tcl with at least this content

% cat myapp/myapp.tcl
################################################################
namespace eval ::tclapp::mycompany::myapp {

# Allow Tcl to find tclIndex
variable home [file join [pwd] [file dirname [info script]]]
if {[lsearch -exact $::auto_path $home] == -1} {
lappend ::auto_path $home
}

}
package provide ::tclapp::mycompany::myapp 1.0
################################################################

No other files in myapp/ should use the 'package provide' command.

Now follow the directions in the myapp/README file.
### After your Vivado design has been loaded
Vivado% package require ::tclapp::bluepearl::bpsvvs
Vivado% ::tclapp::bluepearl::bpsvvs::generate_bps_project
Vivado% ::tclapp::bluepearl::bpsvvs::launch_bps
### After your Vivado design has been implemented
Vivado% ::tclapp::bluepearl::bpsvvs::update_vivado_into_bps
56 changes: 28 additions & 28 deletions tclapp/bluepearl/bpsvvs/app.xml
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<catalog>
<apps>
<app>
<revision_history>Initial Revision</revision_history>
<name>bpsvvs</name>
<pkg_require>Vivado 2014.1</pkg_require>
<company>bluepearl</company>
<company_display>Blue Pearl Software, Inc.</company_display>
<summary>This is a Blue Pearl Software Visual Verification Suite (VVS) integration app that helps you load your Xilinx design into Blue Pearl&apos;s Visual Verification Suite RTL debugging environment.</summary>
<display>Blue Pearl Visual Verification Suite</display>
<procs>
<proc>
<name>generate_bps_project</name>
<summary>Generates the Blue Pearl Tcl project file</summary>
</proc>
<proc>
<name>launch_bps</name>
<summary>Launches Blue Pearl Visual Verification Suite</summary>
</proc>
<proc>
<name>update_vivado_into_bps</name>
<summary>Updates the current results into the Blue Pearl Visual Verification Suite</summary>
</proc>
</procs>
</app>
</apps>
</catalog>
<?xml version="1.0" encoding="utf-8"?>
<catalog>
<apps>
<app>
<revision_history>Fix for missing global includes. Fix for black boxed IP</revision_history>
<name>bpsvvs</name>
<pkg_require>Vivado 2014.1</pkg_require>
<company>bluepearl</company>
<company_display>Blue Pearl Software, Inc.</company_display>
<summary>This is a Blue Pearl Software Visual Verification Suite (VVS) integration app that helps you load your Xilinx design into Blue Pearl&apos;s Visual Verification Suite RTL debugging environment.</summary>
<display>Blue Pearl Visual Verification Suite</display>
<procs>
<proc>
<name>generate_bps_project</name>
<summary>Generates the Blue Pearl Tcl project file</summary>
</proc>
<proc>
<name>launch_bps</name>
<summary>Launches Blue Pearl Visual Verification Suite</summary>
</proc>
<proc>
<name>update_vivado_into_bps</name>
<summary>Updates the current results into the Blue Pearl Visual Verification Suite</summary>
</proc>
</procs>
</app>
</apps>
</catalog>
14 changes: 12 additions & 2 deletions tclapp/bluepearl/bpsvvs/bluepearl_vvs.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
#
# 2017.1 - v1.0 (rev 1.0)
# * Initial Version
# 2017.2 - v1.1 (rev 1.1)
# * Fix for missing global includes
# * Fix for black boxed IP
#
###############################################################################
package require Vivado 1.2014.1
Expand Down Expand Up @@ -303,7 +306,7 @@ proc ::tclapp::bluepearl::bpsvvs::generate_bps_project {} {
puts "INFO: Writing Blue Pearl tcl project file to file {$bpsProjectFile}"
}

puts $ofs "#Blue Pearl Visual Verification Suite Project File Generated by Vivado Generator version 1.0"
puts $ofs "#Blue Pearl Visual Verification Suite Project File Generated by Vivado Generator version 1.1"
puts $ofs "\n"
puts $ofs "set BPS::project_results_dir Results"
puts $ofs "\n"
Expand All @@ -329,6 +332,9 @@ proc ::tclapp::bluepearl::bpsvvs::generate_bps_project {} {
set files [get_files -quiet -compile_order sources -used_in synthesis -of_objects $ip]
findIncludeDirs $files
}
set files [get_files -filter {FILE_TYPE == "Verilog Header"} -of [get_filesets]]
findIncludeDirs $files

set files [get_files -norecurse -compile_order sources -used_in synthesis]
findIncludeDirs $files

Expand All @@ -351,7 +357,11 @@ proc ::tclapp::bluepearl::bpsvvs::generate_bps_project {} {
set ipName [get_property NAME $ip]

set files [get_files -quiet -compile_order sources -used_in synthesis -of_objects $ip]
set fileMissing [addFilesToProject "IP $ipName" $files $ofs]
if {[llength $files] == 0} {
set fileMissing 1
} else {
set fileMissing [addFilesToProject "IP $ipName" $files $ofs]
}
if { $fileMissing || $missingFiles } {
set missingFiles 1
}
Expand Down
34 changes: 17 additions & 17 deletions tclapp/bluepearl/bpsvvs/bpsvvs.tcl
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
# tclapp/bluepearl/vvs/vvs.tcl
package require Tcl 8.4
namespace eval ::tclapp::bluepearl::bpsvvs {
# Allow Tcl to find tclIndex
variable home [file join [pwd] [file dirname [info script]]]
if {[lsearch -exact $::auto_path $home] == -1} {
lappend ::auto_path $home
}
}
package provide ::tclapp::bluepearl::bpsvvs 1.0
# this is a comment
# this is another comment
# this is a 3rd comment line
# this is a 4th comment line
# tclapp/bluepearl/vvs/vvs.tcl
package require Tcl 8.4

namespace eval ::tclapp::bluepearl::bpsvvs {

# Allow Tcl to find tclIndex
variable home [file join [pwd] [file dirname [info script]]]
if {[lsearch -exact $::auto_path $home] == -1} {
lappend ::auto_path $home
}

}
package provide ::tclapp::bluepearl::bpsvvs 1.1
# this is a comment
# this is another comment
# this is a 3rd comment line
# this is a 4th comment line
22 changes: 11 additions & 11 deletions tclapp/bluepearl/bpsvvs/pkgIndex.tcl
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Tcl package index file, version 1.1
# This file is generated by the "pkg_mkIndex" command
# and sourced either when an application starts up or
# by a "package unknown" script. It invokes the
# "package ifneeded" command to set up package-related
# information so that packages will be loaded automatically
# in response to "package require" commands. When this
# script is sourced, the variable $dir must contain the
# full path name of this file's directory.
package ifneeded ::tclapp::bluepearl::bpsvvs 1.0 [list source [file join $dir bpsvvs.tcl]]
# Tcl package index file, version 1.1
# This file is generated by the "pkg_mkIndex" command
# and sourced either when an application starts up or
# by a "package unknown" script. It invokes the
# "package ifneeded" command to set up package-related
# information so that packages will be loaded automatically
# in response to "package require" commands. When this
# script is sourced, the variable $dir must contain the
# full path name of this file's directory.

package ifneeded ::tclapp::bluepearl::bpsvvs 1.1 [list source [file join $dir bpsvvs.tcl]]
3 changes: 2 additions & 1 deletion tclapp/bluepearl/bpsvvs/revision_history.txt
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
1.0 Initial Revision
1.1 Fix for missing global includes. Fix for black boxed IP
1.0 Initial Revision
22 changes: 11 additions & 11 deletions tclapp/bluepearl/bpsvvs/tclIndex
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Tcl autoload index file, version 2.0
# This file is generated by the "auto_mkindex" command
# and sourced to set up indexing information for one or
# more commands. Typically each line is a command that
# sets an element in the auto_index array, where the
# element name is the name of a command and the value is
# a script that loads the command.
set auto_index(::tclapp::bluepearl::bpsvvs::generate_bps_project) [list source [file join $dir bluepearl_vvs.tcl]]
set auto_index(::tclapp::bluepearl::bpsvvs::launch_bps) [list source [file join $dir bluepearl_vvs.tcl]]
set auto_index(::tclapp::bluepearl::bpsvvs::update_vivado_into_bps) [list source [file join $dir bluepearl_vvs.tcl]]
# Tcl autoload index file, version 2.0
# This file is generated by the "auto_mkindex" command
# and sourced to set up indexing information for one or
# more commands. Typically each line is a command that
# sets an element in the auto_index array, where the
# element name is the name of a command and the value is
# a script that loads the command.

set auto_index(::tclapp::bluepearl::bpsvvs::generate_bps_project) [list source [file join $dir bluepearl_vvs.tcl]]
set auto_index(::tclapp::bluepearl::bpsvvs::launch_bps) [list source [file join $dir bluepearl_vvs.tcl]]
set auto_index(::tclapp::bluepearl::bpsvvs::update_vivado_into_bps) [list source [file join $dir bluepearl_vvs.tcl]]