diff --git a/doc/xschem_man/developer_info.html b/doc/xschem_man/developer_info.html
index 6feda0eb..e5e97533 100644
--- a/doc/xschem_man/developer_info.html
+++ b/doc/xschem_man/developer_info.html
@@ -122,6 +122,8 @@ p{padding: 15px 30px 10px;}
v : XSCHEM Version string
S : Global property associated to the .sch file for SPICE netlisting
V : Global property associated to the .sch file for VERILOG netlisting
+ F : Global property associated to the .sch file for SPECTRE netlisting
+ (file format 1.3 and newer)
G : Global property associated to the .sch file for VHDL netlisting OR
Global property associated to the .sym file for netlisting (in 1,2 file
format K is used, although backward compatibility is guaranteed)
@@ -189,11 +191,11 @@ T {NF=@nf} -5 -15 0 1 0.15 0.15 {}
VERSION STRING
Example:
-v {xschem version=2.9.7 file_version=1.2}
+v {xschem version=3.4.7 file_version=1.3}
Two attributes are defined, the xschem version and the file format version.
- Current file format version is 1.2. This string is guaranteed to be the first one in XSCHEM .sch and .sym files.
+ Current file format version is 1.3. This string is guaranteed to be the first one in XSCHEM .sch and .sym files.
A comment can be added (by manually editing the xschem schematic or symbol file) as shown below:
@@ -236,7 +238,8 @@ template="name=U1 footprint=TO220"}
telling netlisters what to do with the symbol, while global property
strings in schematic files corresponding to the active netlisting mode of XSCHEM are
copied verbatim to the netlist.
- the object tag (S, V, G, E, K) is followed by the property string enclosed in curly braces
+ File formats 1.3 and newer introduce also the SPECTRE global attribute ('F') for Spectre netlists.
+ the object tag (S, V, G, E, F, K) is followed by the property string enclosed in curly braces
({...}). This allows strings to contain any white space and newlines.
Curly braces if present in the string are automatically escaped with the '\' character
by XSCHEM when saving data.
diff --git a/src/gschemtoxschem.awk b/src/gschemtoxschem.awk
index f7bcefec..1fbf3f97 100755
--- a/src/gschemtoxschem.awk
+++ b/src/gschemtoxschem.awk
@@ -461,7 +461,7 @@ function print_header()
"device @name @device\n" \
"@comptag\"\n"
}
- print "v {xschem version=3.4.8RC file_version=1.2}"
+ print "v {xschem version=3.4.8RC file_version=1.3}"
template_attrs = "template=\"" template_attrs "\"\n"
if(FILENAME ~/\.sym$/) {
diff --git a/src/make_sch_from_spice.awk b/src/make_sch_from_spice.awk
index 8f1904f8..071608c9 100755
--- a/src/make_sch_from_spice.awk
+++ b/src/make_sch_from_spice.awk
@@ -700,7 +700,7 @@ function print_sym(sym, template, format, subckt_name, sym_type, extra, dir, pin
print "start print symbol: " sym
- print "v {xschem version=3.4.8RC file_version=1.2}" > sym
+ print "v {xschem version=3.4.8RC file_version=1.3}" > sym
print "K {type=" sym_type > sym
# print "format=\"@name @pinlist @symname " format_translate(template) "\"" > sym
iii = format_translate(template, extra)
diff --git a/src/make_sym.awk b/src/make_sym.awk
index 2f69ff7e..9a67b4d6 100755
--- a/src/make_sym.awk
+++ b/src/make_sym.awk
@@ -68,7 +68,7 @@ function beginfile(f)
text_voffset=20
lab_voffset=4
ip=op=n_pin=0
- print "v {xschem version=3.4.8RC file_version=1.2}" > sym
+ print "v {xschem version=3.4.8RC file_version=1.3}" > sym
if(template !~/^{[ \t\n]*$/) {
printf "%s", "K {type=subcircuit\nformat=\"@name @pinlist @symname\"\n" >sym
printf "%s\n", "template=\"name=x1\"" >sym
diff --git a/src/make_sym_from_spice.awk b/src/make_sym_from_spice.awk
index a8335d11..41876aa4 100755
--- a/src/make_sym_from_spice.awk
+++ b/src/make_sym_from_spice.awk
@@ -401,7 +401,7 @@ function print_sym(sym, template, format, subckt_name, sym_type, extra, dir, pin
print "start print symbol: " sym
- print "v {xschem version=3.4.8RC file_version=1.2}" > sym
+ print "v {xschem version=3.4.8RC file_version=1.3}" > sym
print "K {type=" sym_type > sym
# print "format=\"@name @pinlist @symname " format_translate(template) "\"" > sym
iii = format_translate(template, extra)
diff --git a/src/make_sym_lcc.awk b/src/make_sym_lcc.awk
index 8956f874..39b76876 100644
--- a/src/make_sym_lcc.awk
+++ b/src/make_sym_lcc.awk
@@ -61,7 +61,7 @@ function beginfile(f)
text_voffset=10
lab_voffset=4
ip=op=n_pin=n_p=n_l=0
- print "v {xschem version=3.4.8RC file_version=1.2}" > sym
+ print "v {xschem version=3.4.8RC file_version=1.3}" > sym
if(template=="") {
printf "%s", "K {type=subcircuit\nformat=\"@name @pinlist @symname\"\n" >sym
printf "%s\n", "template=\"name=x1\"" >sym
diff --git a/src/symgen.awk b/src/symgen.awk
index fcc7eb2f..747b958f 100755
--- a/src/symgen.awk
+++ b/src/symgen.awk
@@ -393,7 +393,7 @@ function attrs(a)
function header()
{
- print "v {xschem version=3.4.8RC file_version=1.2}"
+ print "v {xschem version=3.4.8RC file_version=1.3}"
}
function round(n)
diff --git a/src/xschem.h b/src/xschem.h
index 5bec6162..a0db4b19 100644
--- a/src/xschem.h
+++ b/src/xschem.h
@@ -24,7 +24,7 @@
#define CADGLOBALS
#define XSCHEM_VERSION "3.4.8RC"
-#define XSCHEM_FILE_VERSION "1.2"
+#define XSCHEM_FILE_VERSION "1.3" /* 1.3 introduces F {..} field for global Spectre attribute */
#if HAS_PIPE == 1
/* fdopen() */
diff --git a/src/xschem.tcl b/src/xschem.tcl
index 7fec5a5d..ef52da93 100644
--- a/src/xschem.tcl
+++ b/src/xschem.tcl
@@ -5415,7 +5415,7 @@ proc create_symbol {name {in {}} {out {}} {inout {}}} {
set symname [file rootname $name].sym
set res [catch {open $symname {WRONLY CREAT EXCL}} fd]
if {$res} {puts $fd; return 0} ;# Error. Print reason and exit.
- puts $fd {v {xschem version=3.4.8RC file_version=1.2}}
+ puts $fd {v {xschem version=3.4.8RC file_version=1.3}}
puts $fd {K {type=subcircuit format="@name @pinlist @symname" template="name=X1"}}
set x -150
set y 0