32 lines
884 B
Text
32 lines
884 B
Text
main =>
|
|
deps(with_cycle,Deps),
|
|
Prec=[],
|
|
foreach(Lib=Dep in Deps)
|
|
Prec := Prec ++ [[D,Lib] : D in Dep, D != Lib]
|
|
end,
|
|
topological_sort(Prec,Sort),
|
|
println(Sort),
|
|
nl.
|
|
|
|
deps(with_cycle,Deps) =>
|
|
Deps = [
|
|
des_system_lib=[std,synopsys,std_cell_lib,des_system_lib,dw02,dw01,ramlib,ieee],
|
|
% dw01=[ieee,dw01,dware,gtech], % orig
|
|
dw01=[ieee,dw01,dware,gtech,dw04], % make a cycle
|
|
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=[],
|
|
% And some other cycles
|
|
cycle_1=[cycle_2],
|
|
cycle_2=[cycle_1],
|
|
cycle_3=[dw01,cycle_4,dw02,daw03],
|
|
cycle_4=[cycle_3,dw01,dw04]
|
|
].
|