xschem/src/import_opus_symbols.awk

72 lines
1.1 KiB
Awk
Executable File

#!/usr/bin/awk -f
# import a opus generated list of symbols (cell_pinouts)
# (generated with the cell_binding.il skill)
# and outputs a tcl source file.
# this source file can be sourced by the xschem tcl interpreter
# to generate schematics and symbols
# IMPORTANT: set the target library in library variable !!!!
#
# stefan 20090305
# ### input file format
# cell fullchip port CSNPAD : input
# cell fullchip port CKCPAD : input
BEGIN{
library = "lpddr2_opus"
print "set create_sym_interactive 0"
}
/^cell/ {
cell=$2
if( (NR>1 && oldcell!=cell)) {
print_cell()
delete ipins
delete opins
delete iopins
}
if($6=="input") ipins[$4]=1
if($6=="output") opins[$4]=1
if($6=="inputOutput") iopins[$4]=1
oldcell=cell
}
END{
print_cell()
}
function print_cell()
{
print "set cellname " library "/" oldcell
printf "set gensch_i_pin {"
for(i in ipins) {
printf "%s ", i
}
printf "}\n"
printf "set gensch_o_pin {"
for(i in opins) {
printf "%s ", i
}
printf "}\n"
printf "set gensch_io_pin {"
for(i in iopins) {
printf "%s ", i
}
printf "}\n"
print "create_sym"
print "make_symbol " library "/" oldcell
}