Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,99 +0,0 @@
|
|||
#Input Data
|
||||
$a=@"
|
||||
des_system_lib std synopsys std_cell_lib des_system_lib dw02 dw01 ramlib ieee
|
||||
dw01 ieee dw01 dware gtech
|
||||
dw02 ieee dw02 dware
|
||||
dw03 std synopsys dware dw03 dw02 dw01 ieee gtech
|
||||
dw04 dw04 ieee dw01 dware gtech
|
||||
dw05 dw05 ieee dware
|
||||
dw06 dw06 ieee dware
|
||||
dw07 ieee dware
|
||||
dware ieee dware
|
||||
gtech ieee gtech
|
||||
ramlib std ieee
|
||||
std_cell_lib ieee std_cell_lib
|
||||
synopsys
|
||||
"@
|
||||
#Convert to Object[]
|
||||
$c = switch ( $a.split([char] 10) ) {
|
||||
$_ {
|
||||
$b=$_.split(' ')
|
||||
New-Object PSObject -Property @{
|
||||
Library = $b[0]
|
||||
"Library Dependencies" = @( $( $b[1..($b.length-1)] | Where-Object { $_ -match '\w' } ) )
|
||||
}
|
||||
}
|
||||
}
|
||||
#Add pure dependencies
|
||||
$c | ForEach-Object {
|
||||
$_."Library Dependencies" | Where-Object {
|
||||
$d=$_
|
||||
$(:andl foreach($i in $c) {
|
||||
if($d -match $i.Library) {
|
||||
$false
|
||||
break andl
|
||||
}
|
||||
}) -eq $null
|
||||
} | ForEach-Object {
|
||||
$c+=New-Object PSObject -Property @{
|
||||
Library=$_
|
||||
"Library Dependencies"=@()
|
||||
}
|
||||
}
|
||||
}
|
||||
#Associate with a dependency value
|
||||
##Initial Dependency Value
|
||||
$d = $c | Sort Library | Select-Object Library,"Library Dependencies",@{
|
||||
Name="Dep Value"
|
||||
Expression={
|
||||
1
|
||||
}
|
||||
}
|
||||
##Modify Dependency Value, perform check for incorrect dependency
|
||||
##Dep Value is determined by a parent child relationship, if a library is a parent, all libraries dependant on it are children
|
||||
for( $i=0; $i -lt $d.count; $i++ ) {
|
||||
$errmsg=""
|
||||
foreach( $j in ( 0..( $d.count - 1 ) | Where-Object { $_ -ne $i } ) ) {
|
||||
#Foreach other Child Library where this is a dependency, increase the Dep Value of the Child
|
||||
if( $( :orl foreach( $k in $d[$j]."Library Dependencies" ) {
|
||||
if( $k -match $d[$i].Library ) {
|
||||
foreach( $n in $d[$i]."Library Dependencies" ) {
|
||||
if( $n -match $d[$j].Library ) {
|
||||
$errmsg="Error Cyclic Dependency {0}<->{1}" -f $d[$i].Library, $d[$j].Library
|
||||
break
|
||||
}
|
||||
}
|
||||
$true
|
||||
break orl
|
||||
}
|
||||
} ) ) {
|
||||
#If the child has already been processed, increase the Dep Value of its children
|
||||
if( $j -lt $i ) {
|
||||
foreach( $l in ( 0..( $d.count - 1 ) | Where-Object { $_ -ne $j } ) ) {
|
||||
if( $( :orl2 foreach( $m in $d[$l]."Library Dependencies" ) {
|
||||
if( $m -match $d[$j].Library ) {
|
||||
$true
|
||||
break orl2
|
||||
}
|
||||
} ) ) {
|
||||
$d[$l]."Dep Value"+=$d[$i]."Dep Value"
|
||||
}
|
||||
}
|
||||
}
|
||||
$d[$j]."Dep Value"+=$d[$i]."Dep Value"
|
||||
}
|
||||
if( $errmsg -ne "" ) {
|
||||
$errmsg
|
||||
$d=$null
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
#Sort and Display
|
||||
if( $d ) {
|
||||
$d | Sort "Dep Value",Library | ForEach-Object {
|
||||
"{0,-14} LIBRARY DEPENDENCIES`n{1,-14} ====================" -f "LIBRARY", "======="
|
||||
} {
|
||||
"{0,-14} $($_."Library Dependencies")" -f $_.Library
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue