- a simple example (adder 4 bits) to see how to design a circuit from VHDL up to
CIF layout using Alliance tools. More examples are comming soon ...
This commit is contained in:
parent
8d20649576
commit
af7ca9daf4
|
@ -0,0 +1,346 @@
|
|||
# /*------------------------------------------------------------\
|
||||
# | |
|
||||
# | File : Makefile |
|
||||
# | |
|
||||
# | Author : Jacomme Ludovic |
|
||||
# | |
|
||||
# \------------------------------------------------------------*/
|
||||
# /*------------------------------------------------------------\
|
||||
# | |
|
||||
# | Cells |
|
||||
# | |
|
||||
# \------------------------------------------------------------*/
|
||||
# /*------------------------------------------------------------\
|
||||
# | |
|
||||
# | Binary |
|
||||
# | |
|
||||
# \------------------------------------------------------------*/
|
||||
|
||||
ALLIANCE_BIN=$(ALLIANCE_TOP)/bin
|
||||
|
||||
VASY = $(ALLIANCE_BIN)/vasy
|
||||
ASIMUT = $(ALLIANCE_BIN)/asimut
|
||||
BOOM = $(ALLIANCE_BIN)/boom
|
||||
BOOG = $(ALLIANCE_BIN)/boog
|
||||
LOON = $(ALLIANCE_BIN)/loon
|
||||
OCP = $(ALLIANCE_BIN)/ocp
|
||||
NERO = $(ALLIANCE_BIN)/nero
|
||||
COUGAR = $(ALLIANCE_BIN)/cougar
|
||||
LVX = $(ALLIANCE_BIN)/lvx
|
||||
DRUC = $(ALLIANCE_BIN)/druc
|
||||
S2R = $(ALLIANCE_BIN)/s2r
|
||||
BLAST = $(ALLIANCE_BIN)/sblast
|
||||
|
||||
DREAL = $(ALLIANCE_BIN)/dreal
|
||||
GRAAL = $(ALLIANCE_BIN)/graal
|
||||
XSCH = $(ALLIANCE_BIN)/xsch
|
||||
XPAT = $(ALLIANCE_BIN)/xpat
|
||||
XFSM = $(ALLIANCE_BIN)/xfsm
|
||||
|
||||
TOUCH = touch
|
||||
|
||||
TARGET_LIB = $(ALLIANCE_TOP)/cells/sxlib
|
||||
RDS_TECHNO_SYMB = ../etc/techno-symb.rds
|
||||
RDS_TECHNO = ../etc/techno-035.rds
|
||||
SPI_MODEL = $(ALLIANCE_TOP)/etc/spimodel.cfg
|
||||
METAL_LEVEL = 2
|
||||
|
||||
# /*------------------------------------------------------------\
|
||||
# | |
|
||||
# | Environement |
|
||||
# | |
|
||||
# \------------------------------------------------------------*/
|
||||
|
||||
ENV_VASY = MBK_WORK_LIB=.; export MBK_WORK_LIB;\
|
||||
MBK_CATAL_NAME=NO_CATAL; export MBK_CATAL_NAME
|
||||
|
||||
ENV_BOOM = MBK_WORK_LIB=.; export MBK_WORK_LIB;\
|
||||
MBK_CATAL_NAME=CATAL; export MBK_CATAL_NAME
|
||||
|
||||
ENV_BOOG = MBK_WORK_LIB=.; export MBK_WORK_LIB; \
|
||||
MBK_IN_LO=vst; export MBK_IN_LO; \
|
||||
MBK_OUT_LO=vst; export MBK_OUT_LO; \
|
||||
MBK_TARGET_LIB=$(TARGET_LIB); export MBK_TARGET_LIB; \
|
||||
MBK_CATAL_NAME=CATAL; export MBK_CATAL_NAME
|
||||
|
||||
ENV_LOON = MBK_WORK_LIB=.; export MBK_WORK_LIB; \
|
||||
MBK_IN_LO=vst; export MBK_IN_LO; \
|
||||
MBK_OUT_LO=vst; export MBK_OUT_LO; \
|
||||
MBK_TARGET_LIB=$(TARGET_LIB); export MBK_TARGET_LIB; \
|
||||
MBK_CATA_LIB=$(TARGET_LIB); export MBK_CATA_LIB; \
|
||||
MBK_CATAL_NAME=CATAL; export MBK_CATAL_NAME
|
||||
|
||||
ENV_ASIMUT_VASY = MBK_WORK_LIB=.; export MBK_WORK_LIB;\
|
||||
MBK_CATAL_NAME=CATAL_ASIMUT_VASY; export MBK_CATAL_NAME;\
|
||||
MBK_IN_LO=vst; export MBK_IN_LO;\
|
||||
MBK_OUT_LO=vst; export MBK_OUT_LO
|
||||
|
||||
ENV_ASIMUT_SYNTH = MBK_WORK_LIB=.; export MBK_WORK_LIB;\
|
||||
MBK_CATAL_NAME=CATAL; export MBK_CATAL_NAME;\
|
||||
MBK_CATA_LIB=$(TARGET_LIB); export MBK_CATA_LIB; \
|
||||
MBK_IN_LO=vst; export MBK_IN_LO;\
|
||||
MBK_OUT_LO=vst; export MBK_OUT_LO
|
||||
|
||||
ENV_OCP = MBK_WORK_LIB=.; export MBK_WORK_LIB; \
|
||||
MBK_IN_LO=vst; export MBK_IN_LO; \
|
||||
MBK_OUT_LO=vst; export MBK_OUT_LO; \
|
||||
MBK_CATA_LIB=$(TARGET_LIB); export MBK_CATA_LIB; \
|
||||
MBK_IN_PH=ap; export MBK_IN_PH; \
|
||||
MBK_OUT_PH=ap; export MBK_OUT_PH; \
|
||||
MBK_CATAL_NAME=CATAL; export MBK_CATAL_NAME
|
||||
|
||||
ENV_NERO = MBK_WORK_LIB=.; export MBK_WORK_LIB; \
|
||||
MBK_IN_LO=vst; export MBK_IN_LO; \
|
||||
MBK_OUT_LO=vst; export MBK_OUT_LO; \
|
||||
MBK_CATA_LIB=$(TARGET_LIB); export MBK_CATA_LIB; \
|
||||
MBK_IN_PH=ap; export MBK_IN_PH; \
|
||||
MBK_OUT_PH=ap; export MBK_OUT_PH; \
|
||||
MBK_CATAL_NAME=CATAL; export MBK_CATAL_NAME
|
||||
|
||||
|
||||
|
||||
ENV_COUGAR_SPI = MBK_WORK_LIB=.; export MBK_WORK_LIB; \
|
||||
MBK_IN_LO=spi; export MBK_IN_LO; \
|
||||
MBK_OUT_LO=spi; export MBK_OUT_LO; \
|
||||
MBK_SPI_MODEL=$(SPI_MODEL); export MBK_SPI_MODEL; \
|
||||
MBK_SPI_ONE_NODE_NORC="true"; export MBK_SPI_ONE_NODE_NORC; \
|
||||
MBK_SPI_NAMEDNODES="true"; export MBK_SPI_NAMEDNODES; \
|
||||
RDS_TECHNO_NAME=$(RDS_TECHNO); export RDS_TECHNO_NAME; \
|
||||
RDS_IN=cif; export RDS_IN; \
|
||||
RDS_OUT=cif; export RDS_OUT; \
|
||||
MBK_CATA_LIB=$(TARGET_LIB); export MBK_CATA_LIB; \
|
||||
MBK_IN_PH=ap; export MBK_IN_PH; \
|
||||
MBK_OUT_PH=ap; export MBK_OUT_PH; \
|
||||
MBK_CATAL_NAME=CATAL; export MBK_CATAL_NAME
|
||||
|
||||
ENV_COUGAR = MBK_WORK_LIB=.; export MBK_WORK_LIB; \
|
||||
MBK_IN_LO=al; export MBK_IN_LO; \
|
||||
MBK_OUT_LO=al; export MBK_OUT_LO; \
|
||||
RDS_TECHNO_NAME=$(RDS_TECHNO); export RDS_TECHNO_NAME; \
|
||||
RDS_IN=cif; export RDS_IN; \
|
||||
RDS_OUT=cif; export RDS_OUT; \
|
||||
MBK_CATA_LIB=$(TARGET_LIB); export MBK_CATA_LIB; \
|
||||
MBK_IN_PH=ap; export MBK_IN_PH; \
|
||||
MBK_OUT_PH=ap; export MBK_OUT_PH; \
|
||||
MBK_CATAL_NAME=CATAL; export MBK_CATAL_NAME
|
||||
|
||||
ENV_LVX = MBK_WORK_LIB=.; export MBK_WORK_LIB; \
|
||||
MBK_IN_LO=vst; export MBK_IN_LO; \
|
||||
MBK_OUT_LO=vst; export MBK_OUT_LO; \
|
||||
MBK_CATA_LIB=$(TARGET_LIB); export MBK_CATA_LIB; \
|
||||
MBK_CATAL_NAME=CATAL; export MBK_CATAL_NAME
|
||||
|
||||
ENV_DRUC = MBK_WORK_LIB=.; export MBK_WORK_LIB; \
|
||||
RDS_TECHNO_NAME=$(RDS_TECHNO_SYMB); export RDS_TECHNO_NAME; \
|
||||
MBK_IN_PH=ap; export MBK_IN_PH; \
|
||||
MBK_OUT_PH=ap; export MBK_OUT_PH; \
|
||||
MBK_CATA_LIB=$(TARGET_LIB); export MBK_CATA_LIB; \
|
||||
MBK_CATAL_NAME=CATAL; export MBK_CATAL_NAME
|
||||
|
||||
ENV_S2R = MBK_WORK_LIB=.; export MBK_WORK_LIB; \
|
||||
RDS_TECHNO_NAME=$(RDS_TECHNO); export RDS_TECHNO_NAME; \
|
||||
RDS_IN=cif; export RDS_IN; \
|
||||
RDS_OUT=cif; export RDS_OUT; \
|
||||
MBK_IN_PH=ap; export MBK_IN_PH; \
|
||||
MBK_OUT_PH=ap; export MBK_OUT_PH; \
|
||||
MBK_CATA_LIB=$(TARGET_LIB); export MBK_CATA_LIB; \
|
||||
MBK_CATAL_NAME=CATAL; export MBK_CATAL_NAME
|
||||
|
||||
|
||||
all : adder4.cif
|
||||
|
||||
# /*------------------------------------------------------------\
|
||||
# | |
|
||||
# | Vasy |
|
||||
# | |
|
||||
# \------------------------------------------------------------*/
|
||||
|
||||
adder4.vbe : adder4.vhdl
|
||||
$(ENV_VASY); $(VASY) -a -B -o -p -I vhdl adder4
|
||||
|
||||
# /*------------------------------------------------------------\
|
||||
# | |
|
||||
# | Asimut |
|
||||
# | |
|
||||
# \------------------------------------------------------------*/
|
||||
|
||||
res_vasy_1.pat : adder4.vbe
|
||||
$(ENV_ASIMUT_VASY); $(ASIMUT) -b adder4 adder4 res_vasy_1
|
||||
|
||||
res_synth_1.pat : adder4.vst
|
||||
$(ENV_ASIMUT_SYNTH); $(ASIMUT) adder4 adder4 res_synth_1
|
||||
|
||||
# /*------------------------------------------------------------\
|
||||
# | |
|
||||
# | Boom |
|
||||
# | |
|
||||
# \------------------------------------------------------------*/
|
||||
|
||||
boom.done : adder4_o.vbe
|
||||
@$(TOUCH) boom.done
|
||||
|
||||
adder4_o.vbe : adder4.vbe adder4.boom res_vasy_1.pat
|
||||
$(ENV_BOOM); $(BOOM) -VP adder4 adder4_o
|
||||
|
||||
# /*------------------------------------------------------------\
|
||||
# | |
|
||||
# | Boog |
|
||||
# | |
|
||||
# \------------------------------------------------------------*/
|
||||
|
||||
boog.done : adder4_o.vst
|
||||
@$(TOUCH) boog.done
|
||||
|
||||
adder4_o.vst : adder4_o.vbe
|
||||
$(ENV_BOOG); $(BOOG) adder4_o
|
||||
|
||||
# /*------------------------------------------------------------\
|
||||
# | |
|
||||
# | Loon |
|
||||
# | |
|
||||
# \------------------------------------------------------------*/
|
||||
|
||||
loon.done : adder4.vst
|
||||
@$(TOUCH) loon.done
|
||||
|
||||
adder4.vst : adder4_o.vst
|
||||
$(ENV_LOON); $(LOON) adder4_o adder4
|
||||
|
||||
# /*------------------------------------------------------------\
|
||||
# | |
|
||||
# | OCP |
|
||||
# | |
|
||||
# \------------------------------------------------------------*/
|
||||
|
||||
adder4_p.ap : res_synth_1.pat
|
||||
$(ENV_OCP); $(OCP) -v -gnuplot -ioc adder4 adder4 adder4_p
|
||||
|
||||
# /*------------------------------------------------------------\
|
||||
# | |
|
||||
# | NERO |
|
||||
# | |
|
||||
# \------------------------------------------------------------*/
|
||||
|
||||
adder4.ap : adder4_p.ap adder4.vst
|
||||
$(ENV_NERO); $(NERO) -v -$(METAL_LEVEL) -p adder4_p adder4 adder4
|
||||
|
||||
# /*------------------------------------------------------------\
|
||||
# | |
|
||||
# | Cougar |
|
||||
# | |
|
||||
# \------------------------------------------------------------*/
|
||||
|
||||
adder4_e.spi : adder4.ap
|
||||
$(ENV_COUGAR_SPI); $(COUGAR) -v -ac adder4 adder4_e
|
||||
|
||||
adder4_erc.spi : adder4.ap
|
||||
$(ENV_COUGAR_SPI); $(COUGAR) -v -ar adder4 adder4_erc
|
||||
|
||||
adder4_erc.al : adder4.ap
|
||||
$(ENV_COUGAR); $(COUGAR) -v -ar adder4 adder4_erc
|
||||
|
||||
adder4_e.al : adder4.ap
|
||||
$(ENV_COUGAR); $(COUGAR) -v -ac adder4 adder4_e
|
||||
|
||||
adder4_et.al : adder4.ap
|
||||
$(ENV_COUGAR); $(COUGAR) -v -ac -t adder4 adder4_et
|
||||
|
||||
adder4_et.spi : adder4.ap
|
||||
$(ENV_COUGAR_SPI); $(COUGAR) -v -ac -t adder4 adder4_et
|
||||
|
||||
adder4_er.al : adder4.cif
|
||||
$(ENV_COUGAR); $(COUGAR) -v -r -t adder4 adder4_er
|
||||
|
||||
adder4_real.al : adder4.ap
|
||||
$(ENV_COUGAR); $(ENV_S2R); $(COUGAR) -v -ac adder4 adder4_real
|
||||
|
||||
adder4_real_t.al : adder4.ap
|
||||
$(ENV_COUGAR); $(ENV_S2R); $(COUGAR) -v -t -ac adder4 adder4_real_t
|
||||
|
||||
# /*------------------------------------------------------------\
|
||||
# | |
|
||||
# | Lvx |
|
||||
# | |
|
||||
# \------------------------------------------------------------*/
|
||||
|
||||
lvx.done : adder4.vst adder4_e.al adder4_e.spi
|
||||
$(ENV_LVX); $(LVX) vst al adder4 adder4_e -f
|
||||
$(TOUCH) lvx.done
|
||||
|
||||
# /*------------------------------------------------------------\
|
||||
# | |
|
||||
# | Druc |
|
||||
# | |
|
||||
# \------------------------------------------------------------*/
|
||||
|
||||
druc.done : lvx.done adder4.ap
|
||||
$(ENV_DRUC); $(DRUC) adder4
|
||||
$(TOUCH) druc.done
|
||||
|
||||
# /*------------------------------------------------------------\
|
||||
# | |
|
||||
# | S2R |
|
||||
# | |
|
||||
# \------------------------------------------------------------*/
|
||||
|
||||
adder4.cif : druc.done
|
||||
$(ENV_S2R); $(S2R) -v adder4
|
||||
|
||||
# /*------------------------------------------------------------\
|
||||
# | |
|
||||
# | TOOLS |
|
||||
# | |
|
||||
# \------------------------------------------------------------*/
|
||||
|
||||
graal :
|
||||
$(ENV_S2R); $(GRAAL)
|
||||
|
||||
graal_adder4_p : adder4_p.ap
|
||||
$(ENV_S2R); $(GRAAL) -l adder4_p
|
||||
|
||||
graal_adder4 : adder4.ap
|
||||
$(ENV_S2R); $(GRAAL) -l adder4
|
||||
|
||||
xsch:
|
||||
$(ENV_LOON); $(XSCH)
|
||||
|
||||
xsch_adder4_o : adder4.vst
|
||||
$(ENV_LOON); $(XSCH) -l adder4_o
|
||||
|
||||
xsch_adder4 : adder4.vst
|
||||
$(ENV_LOON); $(XSCH) -l adder4
|
||||
|
||||
xsch_adder4_e: adder4_e.al
|
||||
$(ENV_COUGAR); $(XSCH) -l adder4_e
|
||||
|
||||
xsch_adder4_et: adder4_et.al
|
||||
$(ENV_COUGAR); $(XSCH) -l adder4_et
|
||||
|
||||
xpat:
|
||||
$(ENV_ASIMUT_SYNTH); $(XPAT)
|
||||
|
||||
xpat_synth: res_synth_1.pat
|
||||
$(ENV_ASIMUT_SYNTH); $(XPAT) -l res_synth_1
|
||||
|
||||
xpat_vasy : res_vasy_1.pat
|
||||
$(ENV_ASIMUT_SYNTH); $(XPAT) -l res_vasy_1
|
||||
|
||||
dreal:
|
||||
$(ENV_S2R); $(DREAL)
|
||||
|
||||
dreal_adder4 : adder4.cif
|
||||
$(ENV_S2R); $(DREAL) -l adder4
|
||||
|
||||
|
||||
# /*------------------------------------------------------------\
|
||||
# | |
|
||||
# | Clean |
|
||||
# | |
|
||||
# \------------------------------------------------------------*/
|
||||
|
||||
realclean : clean
|
||||
|
||||
clean :
|
||||
$(RM) -f *.vst adder4_e.spi adder4_et.spi *.vbe res_*.pat *.boom *.done *.xsc *.gpl \
|
||||
*.ap *.drc *.dat *.gds *.cif *.rep \
|
||||
*.log *.out *.raw *.al
|
|
@ -0,0 +1,118 @@
|
|||
# /*------------------------------------------------------------\
|
||||
# | |
|
||||
# | File : README |
|
||||
# | |
|
||||
# | Author : Jacomme Ludovic |
|
||||
# | |
|
||||
# \------------------------------------------------------------*/
|
||||
|
||||
This directory contains the VHDL description of an adder 4 bits and
|
||||
the associated stimuli file, and also a configuration file for IO
|
||||
placement (used during the Place and Route step).
|
||||
|
||||
The Makefile set environement variables properly and run Alliance tools,
|
||||
following each step of the design flow from VHDL up to real layout in a
|
||||
pseudo 0.35 techno.
|
||||
|
||||
The environement variable ALLIANCE_TOP as to be set.
|
||||
|
||||
The main targets of the makefile are listed below (following the design flow).
|
||||
|
||||
#
|
||||
# RTL SYNTHESIS
|
||||
#
|
||||
|
||||
adder4.vbe : Run the VHDL analyzer (VASY) on the VHDL description
|
||||
(adder4.vhdl) and transform it into a boolean network (adder4.vbe).
|
||||
|
||||
res_vasy_1.pat : Run the VHDL simulator (ASIMUT) on adder4.vbe using the pattern/stimuli file
|
||||
adder4.pat. This step checks if the adder4.vbe description is working properly.
|
||||
|
||||
xpat_vasy : Run the graphical waveform viewer (XPAT) on the resulting file res_vasy_1.pat
|
||||
|
||||
adder4_o.vbe : Run the Boolean network optimizer (BOOM) on the adder4.vbe and
|
||||
factorize/minimize boolean equations, and generate a new description
|
||||
adder4_o.vbe.
|
||||
|
||||
adder4_o.vst : Run the boolean mapper (BOOG) on the optimized description adder4_o.vbe
|
||||
and using the sxlib standard cell library, map all boolean nodes to
|
||||
an equivalent set of standard cells.
|
||||
|
||||
xsch_adder4_o : Run the schematic viewer (XSCH) on the structural netlist adder4_o.vst
|
||||
|
||||
|
||||
adder4.vst : Run the net optimizer (LOON) on the structural description adder4_o.vst.
|
||||
It inserts buffers on the critical path using the sxlib standard cell library
|
||||
and generates a new structural netlist adder4.vst .
|
||||
|
||||
xsch_adder4 : Run the schematic viewer (XSCH) on the bufferized netlist adder4.vst .
|
||||
The critical path would be displayed in red color.
|
||||
|
||||
res_synth_1.pat : Run the VHDL simulator (ASIMUT) on the structural description adder4.vst using
|
||||
the pattern/stimuli file adder4.pat and the behavioral description (.VBE) of each
|
||||
cells of the standard cell library (sxlib).
|
||||
This step checks if the adder4.vst description is still working properly.
|
||||
|
||||
#
|
||||
# PLACE AND ROUTE
|
||||
#
|
||||
|
||||
adder4_p.ap : Run the placement tool (OCP) on the structural description adder4.vst.
|
||||
It generates a physical placement file (adder4_p.ap) that would be given
|
||||
to the router (NERO).
|
||||
|
||||
graal_adder4_p : Launch the physical layout editor (GRAAL) and display the result of the placement tool
|
||||
(adder4_p.ap).
|
||||
|
||||
adder4.ap : Run the router tool (NERO). Given the structural description adder4.vst, the
|
||||
placement file (adder4_p) and the position of external connectors (adder4.ioc)
|
||||
the router generates a physical view (adder4.ap) where all nets have been routed.
|
||||
|
||||
graal_adder4 : Launch the physical layout editor (GRAAL) and display the result of the router tool
|
||||
(adder4.ap).
|
||||
|
||||
#
|
||||
# Netlist / parasitics extraction
|
||||
#
|
||||
|
||||
adder4_e.al : Run the hierarchical netlist extractor (COUGAR) and extracts the netlist with parasitic
|
||||
informations (physical parameters are taken in the techno-035.rds file).
|
||||
This tool generates the extracted netlist adder4_e.al
|
||||
|
||||
xsch_adder4_e : Run the schematic viewer (XSCH) on the hierarchical extracted netlist (adder4_e.al).
|
||||
|
||||
adder4_et.al : Run the netlist extractor (COUGAR) and extracts the netlist at the transistor level
|
||||
with parasitics informations (adder4_et.al).
|
||||
|
||||
xsch_adder4_et : Run the schematic viewer (XSCH) on the extracted transistor netlist (adder4_et.al).
|
||||
|
||||
#
|
||||
# Netlists comparison
|
||||
#
|
||||
|
||||
lvx.done : Run the gate netlist comparator (LVX) and checks if the extracted netlist is the same as
|
||||
the structural structural netlist. This step checks if the place and route phases are ok.
|
||||
|
||||
#
|
||||
# Design rule checker
|
||||
#
|
||||
|
||||
druc.done : Launch the design rule checker on the layout generated by the router (adder4.ap). The design
|
||||
rules are specified in the RDS file (techno-symb.rds).
|
||||
|
||||
|
||||
#
|
||||
# Symbolic layout to real layout
|
||||
#
|
||||
|
||||
adder4.cif : Transforms the symbolic layout in lambda (adder4.ap) in a 0.35u real layout using the tool S2R.
|
||||
It generates a CIF file (adder4.cif).
|
||||
|
||||
dreal_adder4 : Launch the real layout editor (DREAL) and display the result of S2R
|
||||
(adder4.cif).
|
||||
|
||||
|
||||
#
|
||||
# Clean
|
||||
|
||||
The clean target remove all generated files ...
|
|
@ -0,0 +1,30 @@
|
|||
# Copyright (c) 1997 by Cadence. All rights reserved.
|
||||
###################################################################
|
||||
# In each of TOP()/BOTTOM()/LEFT()/RIGHT() section, there are #
|
||||
# placed IOs. In the IGNORE() section, the IOs are ignored #
|
||||
# by the IOPlacer. In every section, the IO syntax could be: #
|
||||
# for pin: (IOPIN iopinName.0 ); #
|
||||
# for pad: iopadName orientation ; #
|
||||
# for space: SPACE value; #
|
||||
# The capital words are keywords. orientation is not required. #
|
||||
# The value is the space between the IO above and the IO below it.#
|
||||
###################################################################
|
||||
|
||||
TOP ( # IOs are ordered from left to right
|
||||
(IOPIN a(3).0 );
|
||||
(IOPIN a(2).0 );
|
||||
(IOPIN a(1).0 );
|
||||
(IOPIN a(0).0 );
|
||||
(IOPIN b(3).0 );
|
||||
(IOPIN b(2).0 );
|
||||
(IOPIN b(1).0 );
|
||||
(IOPIN b(0).0 );
|
||||
)
|
||||
BOTTOM ( # IOs are ordered from left to right
|
||||
(IOPIN result(3).0 );
|
||||
(IOPIN result(2).0 );
|
||||
(IOPIN result(1).0 );
|
||||
(IOPIN result(0).0 );
|
||||
)
|
||||
IGNORE ( # IOs are ignored(not placed) by IO Placer
|
||||
)
|
|
@ -0,0 +1,527 @@
|
|||
|
||||
in a (3 downto 0) X;;;
|
||||
in b (3 downto 0) X;;;
|
||||
out result (3 downto 0) X;;;
|
||||
in vss B;;
|
||||
in vdd B;;
|
||||
|
||||
begin
|
||||
|
||||
-- Pattern description :
|
||||
-- A B Res V V
|
||||
|
||||
< 0ns>: 0 0 ?* 0 1;
|
||||
< +10ns>: 0 0 ?* 0 1;
|
||||
< +10ns>: 0 0 ?* 0 1;
|
||||
< +10ns>: 0 1 ?* 0 1;
|
||||
< +10ns>: 0 1 ?* 0 1;
|
||||
< +10ns>: 0 2 ?* 0 1;
|
||||
< +10ns>: 0 2 ?* 0 1;
|
||||
< +10ns>: 0 3 ?* 0 1;
|
||||
< +10ns>: 0 3 ?* 0 1;
|
||||
< +10ns>: 0 4 ?* 0 1;
|
||||
< +10ns>: 0 4 ?* 0 1;
|
||||
< +10ns>: 0 5 ?* 0 1;
|
||||
< +10ns>: 0 5 ?* 0 1;
|
||||
< +10ns>: 0 6 ?* 0 1;
|
||||
< +10ns>: 0 6 ?* 0 1;
|
||||
< +10ns>: 0 7 ?* 0 1;
|
||||
< +10ns>: 0 7 ?* 0 1;
|
||||
< +10ns>: 0 8 ?* 0 1;
|
||||
< +10ns>: 0 8 ?* 0 1;
|
||||
< +10ns>: 0 9 ?* 0 1;
|
||||
< +10ns>: 0 9 ?* 0 1;
|
||||
< +10ns>: 0 a ?* 0 1;
|
||||
< +10ns>: 0 a ?* 0 1;
|
||||
< +10ns>: 0 b ?* 0 1;
|
||||
< +10ns>: 0 b ?* 0 1;
|
||||
< +10ns>: 0 c ?* 0 1;
|
||||
< +10ns>: 0 c ?* 0 1;
|
||||
< +10ns>: 0 d ?* 0 1;
|
||||
< +10ns>: 0 d ?* 0 1;
|
||||
< +10ns>: 0 e ?* 0 1;
|
||||
< +10ns>: 0 e ?* 0 1;
|
||||
< +10ns>: 0 f ?* 0 1;
|
||||
< +10ns>: 0 f ?* 0 1;
|
||||
< +10ns>: 1 0 ?* 0 1;
|
||||
< +10ns>: 1 0 ?* 0 1;
|
||||
< +10ns>: 1 1 ?* 0 1;
|
||||
< +10ns>: 1 1 ?* 0 1;
|
||||
< +10ns>: 1 2 ?* 0 1;
|
||||
< +10ns>: 1 2 ?* 0 1;
|
||||
< +10ns>: 1 3 ?* 0 1;
|
||||
< +10ns>: 1 3 ?* 0 1;
|
||||
< +10ns>: 1 4 ?* 0 1;
|
||||
< +10ns>: 1 4 ?* 0 1;
|
||||
< +10ns>: 1 5 ?* 0 1;
|
||||
< +10ns>: 1 5 ?* 0 1;
|
||||
< +10ns>: 1 6 ?* 0 1;
|
||||
< +10ns>: 1 6 ?* 0 1;
|
||||
< +10ns>: 1 7 ?* 0 1;
|
||||
< +10ns>: 1 7 ?* 0 1;
|
||||
< +10ns>: 1 8 ?* 0 1;
|
||||
< +10ns>: 1 8 ?* 0 1;
|
||||
< +10ns>: 1 9 ?* 0 1;
|
||||
< +10ns>: 1 9 ?* 0 1;
|
||||
< +10ns>: 1 a ?* 0 1;
|
||||
< +10ns>: 1 a ?* 0 1;
|
||||
< +10ns>: 1 b ?* 0 1;
|
||||
< +10ns>: 1 b ?* 0 1;
|
||||
< +10ns>: 1 c ?* 0 1;
|
||||
< +10ns>: 1 c ?* 0 1;
|
||||
< +10ns>: 1 d ?* 0 1;
|
||||
< +10ns>: 1 d ?* 0 1;
|
||||
< +10ns>: 1 e ?* 0 1;
|
||||
< +10ns>: 1 e ?* 0 1;
|
||||
< +10ns>: 1 f ?* 0 1;
|
||||
< +10ns>: 1 f ?* 0 1;
|
||||
< +10ns>: 2 0 ?* 0 1;
|
||||
< +10ns>: 2 0 ?* 0 1;
|
||||
< +10ns>: 2 1 ?* 0 1;
|
||||
< +10ns>: 2 1 ?* 0 1;
|
||||
< +10ns>: 2 2 ?* 0 1;
|
||||
< +10ns>: 2 2 ?* 0 1;
|
||||
< +10ns>: 2 3 ?* 0 1;
|
||||
< +10ns>: 2 3 ?* 0 1;
|
||||
< +10ns>: 2 4 ?* 0 1;
|
||||
< +10ns>: 2 4 ?* 0 1;
|
||||
< +10ns>: 2 5 ?* 0 1;
|
||||
< +10ns>: 2 5 ?* 0 1;
|
||||
< +10ns>: 2 6 ?* 0 1;
|
||||
< +10ns>: 2 6 ?* 0 1;
|
||||
< +10ns>: 2 7 ?* 0 1;
|
||||
< +10ns>: 2 7 ?* 0 1;
|
||||
< +10ns>: 2 8 ?* 0 1;
|
||||
< +10ns>: 2 8 ?* 0 1;
|
||||
< +10ns>: 2 9 ?* 0 1;
|
||||
< +10ns>: 2 9 ?* 0 1;
|
||||
< +10ns>: 2 a ?* 0 1;
|
||||
< +10ns>: 2 a ?* 0 1;
|
||||
< +10ns>: 2 b ?* 0 1;
|
||||
< +10ns>: 2 b ?* 0 1;
|
||||
< +10ns>: 2 c ?* 0 1;
|
||||
< +10ns>: 2 c ?* 0 1;
|
||||
< +10ns>: 2 d ?* 0 1;
|
||||
< +10ns>: 2 d ?* 0 1;
|
||||
< +10ns>: 2 e ?* 0 1;
|
||||
< +10ns>: 2 e ?* 0 1;
|
||||
< +10ns>: 2 f ?* 0 1;
|
||||
< +10ns>: 2 f ?* 0 1;
|
||||
< +10ns>: 3 0 ?* 0 1;
|
||||
< +10ns>: 3 0 ?* 0 1;
|
||||
< +10ns>: 3 1 ?* 0 1;
|
||||
< +10ns>: 3 1 ?* 0 1;
|
||||
< +10ns>: 3 2 ?* 0 1;
|
||||
< +10ns>: 3 2 ?* 0 1;
|
||||
< +10ns>: 3 3 ?* 0 1;
|
||||
< +10ns>: 3 3 ?* 0 1;
|
||||
< +10ns>: 3 4 ?* 0 1;
|
||||
< +10ns>: 3 4 ?* 0 1;
|
||||
< +10ns>: 3 5 ?* 0 1;
|
||||
< +10ns>: 3 5 ?* 0 1;
|
||||
< +10ns>: 3 6 ?* 0 1;
|
||||
< +10ns>: 3 6 ?* 0 1;
|
||||
< +10ns>: 3 7 ?* 0 1;
|
||||
< +10ns>: 3 7 ?* 0 1;
|
||||
< +10ns>: 3 8 ?* 0 1;
|
||||
< +10ns>: 3 8 ?* 0 1;
|
||||
< +10ns>: 3 9 ?* 0 1;
|
||||
< +10ns>: 3 9 ?* 0 1;
|
||||
< +10ns>: 3 a ?* 0 1;
|
||||
< +10ns>: 3 a ?* 0 1;
|
||||
< +10ns>: 3 b ?* 0 1;
|
||||
< +10ns>: 3 b ?* 0 1;
|
||||
< +10ns>: 3 c ?* 0 1;
|
||||
< +10ns>: 3 c ?* 0 1;
|
||||
< +10ns>: 3 d ?* 0 1;
|
||||
< +10ns>: 3 d ?* 0 1;
|
||||
< +10ns>: 3 e ?* 0 1;
|
||||
< +10ns>: 3 e ?* 0 1;
|
||||
< +10ns>: 3 f ?* 0 1;
|
||||
< +10ns>: 3 f ?* 0 1;
|
||||
< +10ns>: 4 0 ?* 0 1;
|
||||
< +10ns>: 4 0 ?* 0 1;
|
||||
< +10ns>: 4 1 ?* 0 1;
|
||||
< +10ns>: 4 1 ?* 0 1;
|
||||
< +10ns>: 4 2 ?* 0 1;
|
||||
< +10ns>: 4 2 ?* 0 1;
|
||||
< +10ns>: 4 3 ?* 0 1;
|
||||
< +10ns>: 4 3 ?* 0 1;
|
||||
< +10ns>: 4 4 ?* 0 1;
|
||||
< +10ns>: 4 4 ?* 0 1;
|
||||
< +10ns>: 4 5 ?* 0 1;
|
||||
< +10ns>: 4 5 ?* 0 1;
|
||||
< +10ns>: 4 6 ?* 0 1;
|
||||
< +10ns>: 4 6 ?* 0 1;
|
||||
< +10ns>: 4 7 ?* 0 1;
|
||||
< +10ns>: 4 7 ?* 0 1;
|
||||
< +10ns>: 4 8 ?* 0 1;
|
||||
< +10ns>: 4 8 ?* 0 1;
|
||||
< +10ns>: 4 9 ?* 0 1;
|
||||
< +10ns>: 4 9 ?* 0 1;
|
||||
< +10ns>: 4 a ?* 0 1;
|
||||
< +10ns>: 4 a ?* 0 1;
|
||||
< +10ns>: 4 b ?* 0 1;
|
||||
< +10ns>: 4 b ?* 0 1;
|
||||
< +10ns>: 4 c ?* 0 1;
|
||||
< +10ns>: 4 c ?* 0 1;
|
||||
< +10ns>: 4 d ?* 0 1;
|
||||
< +10ns>: 4 d ?* 0 1;
|
||||
< +10ns>: 4 e ?* 0 1;
|
||||
< +10ns>: 4 e ?* 0 1;
|
||||
< +10ns>: 4 f ?* 0 1;
|
||||
< +10ns>: 4 f ?* 0 1;
|
||||
< +10ns>: 5 0 ?* 0 1;
|
||||
< +10ns>: 5 0 ?* 0 1;
|
||||
< +10ns>: 5 1 ?* 0 1;
|
||||
< +10ns>: 5 1 ?* 0 1;
|
||||
< +10ns>: 5 2 ?* 0 1;
|
||||
< +10ns>: 5 2 ?* 0 1;
|
||||
< +10ns>: 5 3 ?* 0 1;
|
||||
< +10ns>: 5 3 ?* 0 1;
|
||||
< +10ns>: 5 4 ?* 0 1;
|
||||
< +10ns>: 5 4 ?* 0 1;
|
||||
< +10ns>: 5 5 ?* 0 1;
|
||||
< +10ns>: 5 5 ?* 0 1;
|
||||
< +10ns>: 5 6 ?* 0 1;
|
||||
< +10ns>: 5 6 ?* 0 1;
|
||||
< +10ns>: 5 7 ?* 0 1;
|
||||
< +10ns>: 5 7 ?* 0 1;
|
||||
< +10ns>: 5 8 ?* 0 1;
|
||||
< +10ns>: 5 8 ?* 0 1;
|
||||
< +10ns>: 5 9 ?* 0 1;
|
||||
< +10ns>: 5 9 ?* 0 1;
|
||||
< +10ns>: 5 a ?* 0 1;
|
||||
< +10ns>: 5 a ?* 0 1;
|
||||
< +10ns>: 5 b ?* 0 1;
|
||||
< +10ns>: 5 b ?* 0 1;
|
||||
< +10ns>: 5 c ?* 0 1;
|
||||
< +10ns>: 5 c ?* 0 1;
|
||||
< +10ns>: 5 d ?* 0 1;
|
||||
< +10ns>: 5 d ?* 0 1;
|
||||
< +10ns>: 5 e ?* 0 1;
|
||||
< +10ns>: 5 e ?* 0 1;
|
||||
< +10ns>: 5 f ?* 0 1;
|
||||
< +10ns>: 5 f ?* 0 1;
|
||||
< +10ns>: 6 0 ?* 0 1;
|
||||
< +10ns>: 6 0 ?* 0 1;
|
||||
< +10ns>: 6 1 ?* 0 1;
|
||||
< +10ns>: 6 1 ?* 0 1;
|
||||
< +10ns>: 6 2 ?* 0 1;
|
||||
< +10ns>: 6 2 ?* 0 1;
|
||||
< +10ns>: 6 3 ?* 0 1;
|
||||
< +10ns>: 6 3 ?* 0 1;
|
||||
< +10ns>: 6 4 ?* 0 1;
|
||||
< +10ns>: 6 4 ?* 0 1;
|
||||
< +10ns>: 6 5 ?* 0 1;
|
||||
< +10ns>: 6 5 ?* 0 1;
|
||||
< +10ns>: 6 6 ?* 0 1;
|
||||
< +10ns>: 6 6 ?* 0 1;
|
||||
< +10ns>: 6 7 ?* 0 1;
|
||||
< +10ns>: 6 7 ?* 0 1;
|
||||
< +10ns>: 6 8 ?* 0 1;
|
||||
< +10ns>: 6 8 ?* 0 1;
|
||||
< +10ns>: 6 9 ?* 0 1;
|
||||
< +10ns>: 6 9 ?* 0 1;
|
||||
< +10ns>: 6 a ?* 0 1;
|
||||
< +10ns>: 6 a ?* 0 1;
|
||||
< +10ns>: 6 b ?* 0 1;
|
||||
< +10ns>: 6 b ?* 0 1;
|
||||
< +10ns>: 6 c ?* 0 1;
|
||||
< +10ns>: 6 c ?* 0 1;
|
||||
< +10ns>: 6 d ?* 0 1;
|
||||
< +10ns>: 6 d ?* 0 1;
|
||||
< +10ns>: 6 e ?* 0 1;
|
||||
< +10ns>: 6 e ?* 0 1;
|
||||
< +10ns>: 6 f ?* 0 1;
|
||||
< +10ns>: 6 f ?* 0 1;
|
||||
< +10ns>: 7 0 ?* 0 1;
|
||||
< +10ns>: 7 0 ?* 0 1;
|
||||
< +10ns>: 7 1 ?* 0 1;
|
||||
< +10ns>: 7 1 ?* 0 1;
|
||||
< +10ns>: 7 2 ?* 0 1;
|
||||
< +10ns>: 7 2 ?* 0 1;
|
||||
< +10ns>: 7 3 ?* 0 1;
|
||||
< +10ns>: 7 3 ?* 0 1;
|
||||
< +10ns>: 7 4 ?* 0 1;
|
||||
< +10ns>: 7 4 ?* 0 1;
|
||||
< +10ns>: 7 5 ?* 0 1;
|
||||
< +10ns>: 7 5 ?* 0 1;
|
||||
< +10ns>: 7 6 ?* 0 1;
|
||||
< +10ns>: 7 6 ?* 0 1;
|
||||
< +10ns>: 7 7 ?* 0 1;
|
||||
< +10ns>: 7 7 ?* 0 1;
|
||||
< +10ns>: 7 8 ?* 0 1;
|
||||
< +10ns>: 7 8 ?* 0 1;
|
||||
< +10ns>: 7 9 ?* 0 1;
|
||||
< +10ns>: 7 9 ?* 0 1;
|
||||
< +10ns>: 7 a ?* 0 1;
|
||||
< +10ns>: 7 a ?* 0 1;
|
||||
< +10ns>: 7 b ?* 0 1;
|
||||
< +10ns>: 7 b ?* 0 1;
|
||||
< +10ns>: 7 c ?* 0 1;
|
||||
< +10ns>: 7 c ?* 0 1;
|
||||
< +10ns>: 7 d ?* 0 1;
|
||||
< +10ns>: 7 d ?* 0 1;
|
||||
< +10ns>: 7 e ?* 0 1;
|
||||
< +10ns>: 7 e ?* 0 1;
|
||||
< +10ns>: 7 f ?* 0 1;
|
||||
< +10ns>: 7 f ?* 0 1;
|
||||
< +10ns>: 8 0 ?* 0 1;
|
||||
< +10ns>: 8 0 ?* 0 1;
|
||||
< +10ns>: 8 1 ?* 0 1;
|
||||
< +10ns>: 8 1 ?* 0 1;
|
||||
< +10ns>: 8 2 ?* 0 1;
|
||||
< +10ns>: 8 2 ?* 0 1;
|
||||
< +10ns>: 8 3 ?* 0 1;
|
||||
< +10ns>: 8 3 ?* 0 1;
|
||||
< +10ns>: 8 4 ?* 0 1;
|
||||
< +10ns>: 8 4 ?* 0 1;
|
||||
< +10ns>: 8 5 ?* 0 1;
|
||||
< +10ns>: 8 5 ?* 0 1;
|
||||
< +10ns>: 8 6 ?* 0 1;
|
||||
< +10ns>: 8 6 ?* 0 1;
|
||||
< +10ns>: 8 7 ?* 0 1;
|
||||
< +10ns>: 8 7 ?* 0 1;
|
||||
< +10ns>: 8 8 ?* 0 1;
|
||||
< +10ns>: 8 8 ?* 0 1;
|
||||
< +10ns>: 8 9 ?* 0 1;
|
||||
< +10ns>: 8 9 ?* 0 1;
|
||||
< +10ns>: 8 a ?* 0 1;
|
||||
< +10ns>: 8 a ?* 0 1;
|
||||
< +10ns>: 8 b ?* 0 1;
|
||||
< +10ns>: 8 b ?* 0 1;
|
||||
< +10ns>: 8 c ?* 0 1;
|
||||
< +10ns>: 8 c ?* 0 1;
|
||||
< +10ns>: 8 d ?* 0 1;
|
||||
< +10ns>: 8 d ?* 0 1;
|
||||
< +10ns>: 8 e ?* 0 1;
|
||||
< +10ns>: 8 e ?* 0 1;
|
||||
< +10ns>: 8 f ?* 0 1;
|
||||
< +10ns>: 8 f ?* 0 1;
|
||||
< +10ns>: 9 0 ?* 0 1;
|
||||
< +10ns>: 9 0 ?* 0 1;
|
||||
< +10ns>: 9 1 ?* 0 1;
|
||||
< +10ns>: 9 1 ?* 0 1;
|
||||
< +10ns>: 9 2 ?* 0 1;
|
||||
< +10ns>: 9 2 ?* 0 1;
|
||||
< +10ns>: 9 3 ?* 0 1;
|
||||
< +10ns>: 9 3 ?* 0 1;
|
||||
< +10ns>: 9 4 ?* 0 1;
|
||||
< +10ns>: 9 4 ?* 0 1;
|
||||
< +10ns>: 9 5 ?* 0 1;
|
||||
< +10ns>: 9 5 ?* 0 1;
|
||||
< +10ns>: 9 6 ?* 0 1;
|
||||
< +10ns>: 9 6 ?* 0 1;
|
||||
< +10ns>: 9 7 ?* 0 1;
|
||||
< +10ns>: 9 7 ?* 0 1;
|
||||
< +10ns>: 9 8 ?* 0 1;
|
||||
< +10ns>: 9 8 ?* 0 1;
|
||||
< +10ns>: 9 9 ?* 0 1;
|
||||
< +10ns>: 9 9 ?* 0 1;
|
||||
< +10ns>: 9 a ?* 0 1;
|
||||
< +10ns>: 9 a ?* 0 1;
|
||||
< +10ns>: 9 b ?* 0 1;
|
||||
< +10ns>: 9 b ?* 0 1;
|
||||
< +10ns>: 9 c ?* 0 1;
|
||||
< +10ns>: 9 c ?* 0 1;
|
||||
< +10ns>: 9 d ?* 0 1;
|
||||
< +10ns>: 9 d ?* 0 1;
|
||||
< +10ns>: 9 e ?* 0 1;
|
||||
< +10ns>: 9 e ?* 0 1;
|
||||
< +10ns>: 9 f ?* 0 1;
|
||||
< +10ns>: 9 f ?* 0 1;
|
||||
< +10ns>: a 0 ?* 0 1;
|
||||
< +10ns>: a 0 ?* 0 1;
|
||||
< +10ns>: a 1 ?* 0 1;
|
||||
< +10ns>: a 1 ?* 0 1;
|
||||
< +10ns>: a 2 ?* 0 1;
|
||||
< +10ns>: a 2 ?* 0 1;
|
||||
< +10ns>: a 3 ?* 0 1;
|
||||
< +10ns>: a 3 ?* 0 1;
|
||||
< +10ns>: a 4 ?* 0 1;
|
||||
< +10ns>: a 4 ?* 0 1;
|
||||
< +10ns>: a 5 ?* 0 1;
|
||||
< +10ns>: a 5 ?* 0 1;
|
||||
< +10ns>: a 6 ?* 0 1;
|
||||
< +10ns>: a 6 ?* 0 1;
|
||||
< +10ns>: a 7 ?* 0 1;
|
||||
< +10ns>: a 7 ?* 0 1;
|
||||
< +10ns>: a 8 ?* 0 1;
|
||||
< +10ns>: a 8 ?* 0 1;
|
||||
< +10ns>: a 9 ?* 0 1;
|
||||
< +10ns>: a 9 ?* 0 1;
|
||||
< +10ns>: a a ?* 0 1;
|
||||
< +10ns>: a a ?* 0 1;
|
||||
< +10ns>: a b ?* 0 1;
|
||||
< +10ns>: a b ?* 0 1;
|
||||
< +10ns>: a c ?* 0 1;
|
||||
< +10ns>: a c ?* 0 1;
|
||||
< +10ns>: a d ?* 0 1;
|
||||
< +10ns>: a d ?* 0 1;
|
||||
< +10ns>: a e ?* 0 1;
|
||||
< +10ns>: a e ?* 0 1;
|
||||
< +10ns>: a f ?* 0 1;
|
||||
< +10ns>: a f ?* 0 1;
|
||||
< +10ns>: b 0 ?* 0 1;
|
||||
< +10ns>: b 0 ?* 0 1;
|
||||
< +10ns>: b 1 ?* 0 1;
|
||||
< +10ns>: b 1 ?* 0 1;
|
||||
< +10ns>: b 2 ?* 0 1;
|
||||
< +10ns>: b 2 ?* 0 1;
|
||||
< +10ns>: b 3 ?* 0 1;
|
||||
< +10ns>: b 3 ?* 0 1;
|
||||
< +10ns>: b 4 ?* 0 1;
|
||||
< +10ns>: b 4 ?* 0 1;
|
||||
< +10ns>: b 5 ?* 0 1;
|
||||
< +10ns>: b 5 ?* 0 1;
|
||||
< +10ns>: b 6 ?* 0 1;
|
||||
< +10ns>: b 6 ?* 0 1;
|
||||
< +10ns>: b 7 ?* 0 1;
|
||||
< +10ns>: b 7 ?* 0 1;
|
||||
< +10ns>: b 8 ?* 0 1;
|
||||
< +10ns>: b 8 ?* 0 1;
|
||||
< +10ns>: b 9 ?* 0 1;
|
||||
< +10ns>: b 9 ?* 0 1;
|
||||
< +10ns>: b a ?* 0 1;
|
||||
< +10ns>: b a ?* 0 1;
|
||||
< +10ns>: b b ?* 0 1;
|
||||
< +10ns>: b b ?* 0 1;
|
||||
< +10ns>: b c ?* 0 1;
|
||||
< +10ns>: b c ?* 0 1;
|
||||
< +10ns>: b d ?* 0 1;
|
||||
< +10ns>: b d ?* 0 1;
|
||||
< +10ns>: b e ?* 0 1;
|
||||
< +10ns>: b e ?* 0 1;
|
||||
< +10ns>: b f ?* 0 1;
|
||||
< +10ns>: b f ?* 0 1;
|
||||
< +10ns>: c 0 ?* 0 1;
|
||||
< +10ns>: c 0 ?* 0 1;
|
||||
< +10ns>: c 1 ?* 0 1;
|
||||
< +10ns>: c 1 ?* 0 1;
|
||||
< +10ns>: c 2 ?* 0 1;
|
||||
< +10ns>: c 2 ?* 0 1;
|
||||
< +10ns>: c 3 ?* 0 1;
|
||||
< +10ns>: c 3 ?* 0 1;
|
||||
< +10ns>: c 4 ?* 0 1;
|
||||
< +10ns>: c 4 ?* 0 1;
|
||||
< +10ns>: c 5 ?* 0 1;
|
||||
< +10ns>: c 5 ?* 0 1;
|
||||
< +10ns>: c 6 ?* 0 1;
|
||||
< +10ns>: c 6 ?* 0 1;
|
||||
< +10ns>: c 7 ?* 0 1;
|
||||
< +10ns>: c 7 ?* 0 1;
|
||||
< +10ns>: c 8 ?* 0 1;
|
||||
< +10ns>: c 8 ?* 0 1;
|
||||
< +10ns>: c 9 ?* 0 1;
|
||||
< +10ns>: c 9 ?* 0 1;
|
||||
< +10ns>: c a ?* 0 1;
|
||||
< +10ns>: c a ?* 0 1;
|
||||
< +10ns>: c b ?* 0 1;
|
||||
< +10ns>: c b ?* 0 1;
|
||||
< +10ns>: c c ?* 0 1;
|
||||
< +10ns>: c c ?* 0 1;
|
||||
< +10ns>: c d ?* 0 1;
|
||||
< +10ns>: c d ?* 0 1;
|
||||
< +10ns>: c e ?* 0 1;
|
||||
< +10ns>: c e ?* 0 1;
|
||||
< +10ns>: c f ?* 0 1;
|
||||
< +10ns>: c f ?* 0 1;
|
||||
< +10ns>: d 0 ?* 0 1;
|
||||
< +10ns>: d 0 ?* 0 1;
|
||||
< +10ns>: d 1 ?* 0 1;
|
||||
< +10ns>: d 1 ?* 0 1;
|
||||
< +10ns>: d 2 ?* 0 1;
|
||||
< +10ns>: d 2 ?* 0 1;
|
||||
< +10ns>: d 3 ?* 0 1;
|
||||
< +10ns>: d 3 ?* 0 1;
|
||||
< +10ns>: d 4 ?* 0 1;
|
||||
< +10ns>: d 4 ?* 0 1;
|
||||
< +10ns>: d 5 ?* 0 1;
|
||||
< +10ns>: d 5 ?* 0 1;
|
||||
< +10ns>: d 6 ?* 0 1;
|
||||
< +10ns>: d 6 ?* 0 1;
|
||||
< +10ns>: d 7 ?* 0 1;
|
||||
< +10ns>: d 7 ?* 0 1;
|
||||
< +10ns>: d 8 ?* 0 1;
|
||||
< +10ns>: d 8 ?* 0 1;
|
||||
< +10ns>: d 9 ?* 0 1;
|
||||
< +10ns>: d 9 ?* 0 1;
|
||||
< +10ns>: d a ?* 0 1;
|
||||
< +10ns>: d a ?* 0 1;
|
||||
< +10ns>: d b ?* 0 1;
|
||||
< +10ns>: d b ?* 0 1;
|
||||
< +10ns>: d c ?* 0 1;
|
||||
< +10ns>: d c ?* 0 1;
|
||||
< +10ns>: d d ?* 0 1;
|
||||
< +10ns>: d d ?* 0 1;
|
||||
< +10ns>: d e ?* 0 1;
|
||||
< +10ns>: d e ?* 0 1;
|
||||
< +10ns>: d f ?* 0 1;
|
||||
< +10ns>: d f ?* 0 1;
|
||||
< +10ns>: e 0 ?* 0 1;
|
||||
< +10ns>: e 0 ?* 0 1;
|
||||
< +10ns>: e 1 ?* 0 1;
|
||||
< +10ns>: e 1 ?* 0 1;
|
||||
< +10ns>: e 2 ?* 0 1;
|
||||
< +10ns>: e 2 ?* 0 1;
|
||||
< +10ns>: e 3 ?* 0 1;
|
||||
< +10ns>: e 3 ?* 0 1;
|
||||
< +10ns>: e 4 ?* 0 1;
|
||||
< +10ns>: e 4 ?* 0 1;
|
||||
< +10ns>: e 5 ?* 0 1;
|
||||
< +10ns>: e 5 ?* 0 1;
|
||||
< +10ns>: e 6 ?* 0 1;
|
||||
< +10ns>: e 6 ?* 0 1;
|
||||
< +10ns>: e 7 ?* 0 1;
|
||||
< +10ns>: e 7 ?* 0 1;
|
||||
< +10ns>: e 8 ?* 0 1;
|
||||
< +10ns>: e 8 ?* 0 1;
|
||||
< +10ns>: e 9 ?* 0 1;
|
||||
< +10ns>: e 9 ?* 0 1;
|
||||
< +10ns>: e a ?* 0 1;
|
||||
< +10ns>: e a ?* 0 1;
|
||||
< +10ns>: e b ?* 0 1;
|
||||
< +10ns>: e b ?* 0 1;
|
||||
< +10ns>: e c ?* 0 1;
|
||||
< +10ns>: e c ?* 0 1;
|
||||
< +10ns>: e d ?* 0 1;
|
||||
< +10ns>: e d ?* 0 1;
|
||||
< +10ns>: e e ?* 0 1;
|
||||
< +10ns>: e e ?* 0 1;
|
||||
< +10ns>: e f ?* 0 1;
|
||||
< +10ns>: e f ?* 0 1;
|
||||
< +10ns>: f 0 ?* 0 1;
|
||||
< +10ns>: f 0 ?* 0 1;
|
||||
< +10ns>: f 1 ?* 0 1;
|
||||
< +10ns>: f 1 ?* 0 1;
|
||||
< +10ns>: f 2 ?* 0 1;
|
||||
< +10ns>: f 2 ?* 0 1;
|
||||
< +10ns>: f 3 ?* 0 1;
|
||||
< +10ns>: f 3 ?* 0 1;
|
||||
< +10ns>: f 4 ?* 0 1;
|
||||
< +10ns>: f 4 ?* 0 1;
|
||||
< +10ns>: f 5 ?* 0 1;
|
||||
< +10ns>: f 5 ?* 0 1;
|
||||
< +10ns>: f 6 ?* 0 1;
|
||||
< +10ns>: f 6 ?* 0 1;
|
||||
< +10ns>: f 7 ?* 0 1;
|
||||
< +10ns>: f 7 ?* 0 1;
|
||||
< +10ns>: f 8 ?* 0 1;
|
||||
< +10ns>: f 8 ?* 0 1;
|
||||
< +10ns>: f 9 ?* 0 1;
|
||||
< +10ns>: f 9 ?* 0 1;
|
||||
< +10ns>: f a ?* 0 1;
|
||||
< +10ns>: f a ?* 0 1;
|
||||
< +10ns>: f b ?* 0 1;
|
||||
< +10ns>: f b ?* 0 1;
|
||||
< +10ns>: f c ?* 0 1;
|
||||
< +10ns>: f c ?* 0 1;
|
||||
< +10ns>: f d ?* 0 1;
|
||||
< +10ns>: f d ?* 0 1;
|
||||
< +10ns>: f e ?* 0 1;
|
||||
< +10ns>: f e ?* 0 1;
|
||||
< +10ns>: f f ?* 0 1;
|
||||
< +10ns>: f f ?* 0 1;
|
||||
|
||||
end;
|
|
@ -0,0 +1,21 @@
|
|||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
use IEEE.STD_LOGIC_arith.ALL;
|
||||
use IEEE.STD_LOGIC_unsigned.ALL;
|
||||
|
||||
|
||||
entity Adder4 is
|
||||
|
||||
port ( A : in Std_Logic_Vector(3 downto 0) ;
|
||||
B : in Std_Logic_Vector(3 downto 0) ;
|
||||
RESULT : out Std_Logic_Vector(3 downto 0) );
|
||||
|
||||
end Adder4;
|
||||
|
||||
|
||||
architecture DataFlow OF Adder4 is
|
||||
begin
|
||||
|
||||
RESULT <= std_logic_vector( unsigned(A) + unsigned(B) );
|
||||
|
||||
end DataFlow;
|
|
@ -0,0 +1,417 @@
|
|||
#
|
||||
# Virtual 0.35 techno with 8 metal layers
|
||||
#
|
||||
DEFINE PHYSICAL_GRID 0.025
|
||||
|
||||
DEFINE LAMBDA 0.300
|
||||
|
||||
TABLE MBK_TO_RDS_SEGMENT
|
||||
|
||||
NWELL RDS_NWELL VW 0.950 1.900 0.000 ALL
|
||||
PWELL RDS_PWELL VW 0.950 1.900 0.000 ALL
|
||||
NDIF RDS_NDIF VW 0.100 -0.100 0.000 EXT\
|
||||
RDS_ACTIV VW 0.100 -0.100 0.000 DRC\
|
||||
RDS_NIMP VW 0.400 0.500 0.000 DRC\
|
||||
RDS_PWELL VW 1.200 2.100 0.000 DRC
|
||||
PDIF RDS_PDIF VW 0.100 -0.100 0.000 EXT\
|
||||
RDS_ACTIV VW 0.100 -0.100 0.000 DRC\
|
||||
RDS_PIMP VW 0.400 0.500 0.000 DRC\
|
||||
RDS_NWELL VW 1.200 2.100 0.000 DRC
|
||||
NTIE RDS_NTIE VW 0.100 -0.100 0.000 EXT\
|
||||
RDS_ACTIV VW 0.100 -0.100 0.000 DRC\
|
||||
RDS_NIMP VW 0.400 0.500 0.000 EXT\
|
||||
RDS_NWELL VW 1.200 2.100 0.000 DRC
|
||||
PTIE RDS_PTIE VW 0.100 -0.100 0.000 EXT\
|
||||
RDS_ACTIV VW 0.100 -0.100 0.000 DRC\
|
||||
RDS_PIMP VW 0.400 0.500 0.000 DRC\
|
||||
RDS_PWELL VW 1.200 2.100 0.000 DRC
|
||||
NTRANS RDS_POLY VW 0.000 0.050 0.000 ALL\
|
||||
RDS_NDIF LCW -0.500 0.750 0.025 EXT\
|
||||
RDS_NDIF RCW -0.500 0.750 0.025 EXT\
|
||||
RDS_ACTIV VW -0.500 1.350 0.000 DRC\
|
||||
RDS_NIMP VW -0.200 1.950 0.000 DRC\
|
||||
RDS_PWELL VW 0.600 3.550 0.000 ALL
|
||||
PTRANS RDS_POLY VW 0.000 0.050 0.000 ALL\
|
||||
RDS_PDIF LCW -0.500 0.750 0.025 EXT\
|
||||
RDS_PDIF RCW -0.500 0.750 0.025 EXT\
|
||||
RDS_ACTIV VW -0.500 1.350 0.000 DRC\
|
||||
RDS_PIMP VW -0.200 1.950 0.000 DRC\
|
||||
RDS_NWELL VW 0.600 3.550 0.000 ALL
|
||||
POLY RDS_POLY VW 0.175 0.050 0.000 ALL
|
||||
ALU1 RDS_ALU1 VW 0.300 0.300 0.000 ALL
|
||||
ALU2 RDS_ALU2 VW 0.350 0.100 0.000 ALL
|
||||
ALU3 RDS_ALU3 VW 0.450 0.000 0.000 ALL
|
||||
ALU4 RDS_ALU4 VW 0.450 0.000 0.000 ALL
|
||||
ALU5 RDS_ALU5 VW 0.450 0.000 0.000 ALL
|
||||
ALU6 RDS_ALU6 VW 0.450 0.000 0.000 ALL
|
||||
ALU7 RDS_ALU7 VW 0.450 0.000 0.000 ALL
|
||||
ALU8 RDS_ALU8 VW 0.450 0.000 0.000 ALL
|
||||
CALU1 RDS_ALU1 VW 0.300 0.300 0.000 ALL
|
||||
CALU2 RDS_ALU2 VW 0.350 0.100 0.000 ALL
|
||||
CALU3 RDS_ALU3 VW 0.450 0.000 0.000 ALL
|
||||
CALU4 RDS_ALU4 VW 0.450 0.000 0.000 ALL
|
||||
CALU5 RDS_ALU5 VW 0.450 0.000 0.000 ALL
|
||||
CALU6 RDS_ALU6 VW 0.450 0.000 0.000 ALL
|
||||
CALU7 RDS_ALU7 VW 0.450 0.000 0.000 ALL
|
||||
CALU8 RDS_ALU8 VW 0.450 0.000 0.000 ALL
|
||||
END
|
||||
TABLE MBK_TO_RDS_CONNECTOR
|
||||
POLY RDS_POLY 0.175 0.050
|
||||
ALU1 RDS_ALU1 0.300 0.300
|
||||
ALU2 RDS_ALU2 0.350 0.100
|
||||
ALU3 RDS_ALU3 0.450 0.000
|
||||
ALU4 RDS_ALU4 0.450 0.000
|
||||
ALU5 RDS_ALU5 0.450 0.000
|
||||
ALU6 RDS_ALU6 0.450 0.000
|
||||
ALU7 RDS_ALU7 0.450 0.000
|
||||
ALU8 RDS_ALU8 0.450 0.000
|
||||
END
|
||||
TABLE MBK_TO_RDS_REFERENCE
|
||||
REF_REF RDS_REF 0.600
|
||||
REF_CON RDS_REF 0.600
|
||||
END
|
||||
TABLE MBK_TO_RDS_VIA
|
||||
CONT_BODY_N \
|
||||
RDS_ALU1 0.900 ALL\
|
||||
RDS_CONT 0.400 ALL\
|
||||
RDS_ACTIV 0.800 DRC\
|
||||
RDS_NIMP 1.400 DRC\
|
||||
RDS_NWELL 3.000 DRC\
|
||||
RDS_NTIE 0.800 EXT
|
||||
CONT_BODY_P \
|
||||
RDS_ALU1 0.900 ALL\
|
||||
RDS_CONT 0.400 ALL\
|
||||
RDS_ACTIV 0.800 DRC\
|
||||
RDS_PIMP 1.400 DRC\
|
||||
RDS_PWELL 3.000 DRC\
|
||||
RDS_PTIE 0.800 EXT
|
||||
CONT_DIF_N \
|
||||
RDS_ALU1 0.900 ALL\
|
||||
RDS_CONT 0.400 ALL\
|
||||
RDS_ACTIV 0.800 DRC\
|
||||
RDS_NIMP 1.400 DRC\
|
||||
RDS_PWELL 3.000 DRC\
|
||||
RDS_NDIF 0.800 EXT
|
||||
CONT_DIF_P \
|
||||
RDS_ALU1 0.900 ALL\
|
||||
RDS_CONT 0.400 ALL\
|
||||
RDS_ACTIV 0.800 DRC\
|
||||
RDS_PIMP 1.400 DRC\
|
||||
RDS_NWELL 3.000 DRC\
|
||||
RDS_PDIF 0.800 EXT
|
||||
CONT_POLY \
|
||||
RDS_ALU1 0.900 ALL\
|
||||
RDS_CONT 0.400 ALL\
|
||||
RDS_POLY 0.950 ALL
|
||||
CONT_VIA \
|
||||
RDS_ALU1 0.900 ALL\
|
||||
RDS_VIA1 0.400 ALL\
|
||||
RDS_ALU2 1.000 ALL
|
||||
CONT_VIA2 \
|
||||
RDS_ALU2 1.000 ALL\
|
||||
RDS_VIA2 0.400 ALL\
|
||||
RDS_ALU3 0.900 ALL
|
||||
CONT_VIA3 \
|
||||
RDS_ALU3 0.900 ALL\
|
||||
RDS_VIA3 0.400 ALL\
|
||||
RDS_ALU4 0.900 ALL
|
||||
CONT_VIA4 \
|
||||
RDS_ALU4 0.900 ALL\
|
||||
RDS_VIA4 0.400 ALL\
|
||||
RDS_ALU5 0.900 ALL
|
||||
CONT_VIA5 \
|
||||
RDS_ALU5 0.900 ALL\
|
||||
RDS_VIA5 0.400 ALL\
|
||||
RDS_ALU6 0.900 ALL
|
||||
CONT_VIA6 \
|
||||
RDS_ALU6 0.900 ALL\
|
||||
RDS_VIA6 0.400 ALL\
|
||||
RDS_ALU7 0.900 ALL
|
||||
CONT_VIA7 \
|
||||
RDS_ALU7 0.900 ALL\
|
||||
RDS_VIA7 0.400 ALL\
|
||||
RDS_ALU8 0.900 ALL
|
||||
C_X_N \
|
||||
RDS_POLY 0.350 ALL\
|
||||
RDS_ACTIV 1.650 DRC\
|
||||
RDS_NIMP 2.250 DRC\
|
||||
RDS_PWELL 3.850 DRC\
|
||||
RDS_NDIF 1.650 EXT
|
||||
C_X_P \
|
||||
RDS_POLY 0.350 ALL\
|
||||
RDS_ACTIV 1.650 DRC\
|
||||
RDS_PIMP 2.250 DRC\
|
||||
RDS_NWELL 3.850 DRC\
|
||||
RDS_PDIF 1.650 EXT
|
||||
END
|
||||
TABLE CIF_LAYER
|
||||
RDS_NWELL NWEL
|
||||
RDS_POLY POLY
|
||||
RDS_CONT CONTACT
|
||||
RDS_ALU1 METAL1
|
||||
RDS_TALU1 ?
|
||||
RDS_VIA1 VIA1
|
||||
RDS_ALU2 METAL2
|
||||
RDS_TALU2 ?
|
||||
RDS_ACTIV ACTIVE
|
||||
RDS_NIMP NPLUS
|
||||
RDS_PIMP PPLUS
|
||||
RDS_CPAS PAD
|
||||
RDS_ALU3 METAL3
|
||||
RDS_VIA2 VIA2
|
||||
RDS_VIA3 VIA3
|
||||
RDS_VIA4 VIA4
|
||||
RDS_VIA5 VIA5
|
||||
RDS_VIA6 VIA6
|
||||
RDS_VIA7 VIA7
|
||||
RDS_ALU4 METAL4
|
||||
RDS_ALU5 METAL5
|
||||
RDS_ALU6 METAL6
|
||||
RDS_ALU7 METAL7
|
||||
RDS_ALU8 METAL8
|
||||
END
|
||||
TABLE GDS_LAYER
|
||||
RDS_NWELL 1
|
||||
RDS_POLY 13
|
||||
RDS_CONT 19
|
||||
RDS_ALU1 23
|
||||
RDS_VIA1 25
|
||||
RDS_ALU2 27
|
||||
RDS_ACTIV 2
|
||||
RDS_NIMP 16
|
||||
RDS_PIMP 17
|
||||
RDS_CPAS 31
|
||||
RDS_ALU3 34
|
||||
RDS_VIA2 32
|
||||
RDS_VIA3 35
|
||||
RDS_VIA4 37
|
||||
RDS_VIA5 39
|
||||
RDS_VIA6 41
|
||||
RDS_VIA7 43
|
||||
RDS_ALU4 36
|
||||
RDS_ALU5 38
|
||||
RDS_ALU5 40
|
||||
RDS_ALU6 42
|
||||
RDS_ALU7 44
|
||||
RDS_ALU8 46
|
||||
END
|
||||
TABLE S2R_OVERSIZE_DENOTCH
|
||||
RDS_NWELL 0.700
|
||||
RDS_PWELL 0.000
|
||||
RDS_POLY 0.250
|
||||
RDS_ALU1 -0.025
|
||||
RDS_ALU2 -0.025
|
||||
RDS_ACTIV 0.325
|
||||
RDS_NIMP 0.250
|
||||
RDS_PIMP 0.250
|
||||
RDS_ALU3 -0.025
|
||||
RDS_ALU4 -0.025
|
||||
RDS_ALU5 -0.025
|
||||
RDS_ALU6 -0.025
|
||||
RDS_ALU7 -0.025
|
||||
RDS_ALU8 -0.025
|
||||
END
|
||||
TABLE S2R_BLOC_RING_WIDTH
|
||||
RDS_NWELL 1.400
|
||||
RDS_PWELL 0.000
|
||||
RDS_POLY 0.550
|
||||
RDS_ALU1 0.000
|
||||
RDS_ALU2 0.000
|
||||
RDS_ACTIV 0.700
|
||||
RDS_NIMP 0.500
|
||||
RDS_PIMP 0.500
|
||||
RDS_ALU3 0.000
|
||||
RDS_ALU4 0.000
|
||||
RDS_ALU5 0.000
|
||||
RDS_ALU6 0.000
|
||||
RDS_ALU7 0.000
|
||||
RDS_ALU8 0.000
|
||||
END
|
||||
TABLE S2R_MINIMUM_LAYER_WIDTH
|
||||
RDS_NWELL 1.700
|
||||
RDS_PWELL 1.700
|
||||
RDS_POLY 0.350
|
||||
RDS_ALU1 0.600
|
||||
RDS_ALU2 0.700
|
||||
RDS_ACTIV 0.500
|
||||
RDS_NIMP 0.500
|
||||
RDS_PIMP 0.500
|
||||
RDS_ALU3 0.900
|
||||
RDS_ALU3 0.900
|
||||
RDS_ALU4 0.900
|
||||
RDS_ALU5 0.900
|
||||
RDS_ALU6 0.900
|
||||
RDS_ALU7 0.900
|
||||
RDS_ALU8 0.900
|
||||
END
|
||||
TABLE S2R_POST_TREAT
|
||||
RDS_NWELL TREAT NULL
|
||||
RDS_PWELL TREAT NULL
|
||||
RDS_POLY TREAT NULL
|
||||
RDS_CONT NOTREAT NULL
|
||||
RDS_ALU1 TREAT NULL
|
||||
RDS_VIA1 NOTREAT NULL
|
||||
RDS_ALU2 TREAT NULL
|
||||
RDS_ACTIV TREAT NULL
|
||||
RDS_NIMP TREAT RDS_PIMP
|
||||
RDS_PIMP TREAT RDS_NIMP
|
||||
RDS_ABOX NOTREAT NULL
|
||||
RDS_VIA2 NOTREAT NULL
|
||||
RDS_ALU3 TREAT NULL
|
||||
RDS_VIA3 NOTREAT NULL
|
||||
RDS_VIA4 NOTREAT NULL
|
||||
RDS_VIA5 NOTREAT NULL
|
||||
RDS_VIA6 NOTREAT NULL
|
||||
RDS_VIA7 NOTREAT NULL
|
||||
RDS_ALU4 TREAT NULL
|
||||
RDS_ALU5 TREAT NULL
|
||||
RDS_ALU6 TREAT NULL
|
||||
RDS_ALU7 TREAT NULL
|
||||
RDS_ALU8 TREAT NULL
|
||||
END
|
||||
TABLE LYNX_TRANSISTOR
|
||||
NTRANS NTRANS C_X_N RDS_POLY RDS_NDIF RDS_ACTIV RDS_PWELL
|
||||
PTRANS PTRANS C_X_P RDS_POLY RDS_PDIF RDS_ACTIV RDS_NWELL
|
||||
END
|
||||
TABLE LYNX_DIFFUSION
|
||||
RDS_PDIF RDS_ACTIV 1 RDS_PIMP 1 RDS_NWELL 1
|
||||
RDS_PTIE RDS_ACTIV 1 RDS_PIMP 1 RDS_PWELL 1
|
||||
RDS_NDIF RDS_ACTIV 1 RDS_NIMP 1 RDS_PWELL 1
|
||||
RDS_NTIE RDS_ACTIV 1 RDS_NIMP 1 RDS_NWELL 1
|
||||
END
|
||||
TABLE LYNX_RESISTOR
|
||||
RDS_POLY 6
|
||||
RDS_ALU1 0.087
|
||||
RDS_ALU2 0.066
|
||||
RDS_ALU3 0.066
|
||||
RDS_ALU3 0.066
|
||||
RDS_ALU4 0.066
|
||||
RDS_ALU5 0.066
|
||||
RDS_ALU6 0.066
|
||||
RDS_ALU7 0.066
|
||||
RDS_ALU8 0.066
|
||||
RDS_CONT 12
|
||||
RDS_VIA1 4
|
||||
RDS_VIA2 4
|
||||
RDS_VIA3 4
|
||||
RDS_VIA4 4
|
||||
RDS_VIA5 4
|
||||
RDS_VIA6 4
|
||||
RDS_VIA7 4
|
||||
END
|
||||
TABLE LYNX_GRAPH
|
||||
|
||||
##---------------------------
|
||||
#
|
||||
# Modifie par L.Jacomme (Pb Bulk/Alim avec Lynx)
|
||||
# 23.11.99
|
||||
#
|
||||
# RDS_NWELL RDS_NTIE RDS_NWELL
|
||||
# RDS_PWELL RDS_PTIE RDS_PWELL
|
||||
# RDS_NTIE RDS_CONT RDS_NTIE RDS_NWELL
|
||||
# RDS_PTIE RDS_CONT RDS_PTIE RDS_PWELL
|
||||
# RDS_NDIF RDS_CONT RDS_NDIF
|
||||
# RDS_PDIF RDS_CONT RDS_PDIF
|
||||
|
||||
RDS_NDIF RDS_CONT RDS_NDIF
|
||||
RDS_PDIF RDS_CONT RDS_PDIF
|
||||
RDS_NTIE RDS_CONT RDS_NTIE
|
||||
RDS_PTIE RDS_CONT RDS_PTIE
|
||||
|
||||
RDS_POLY RDS_CONT RDS_POLY
|
||||
RDS_CONT RDS_PDIF RDS_NDIF RDS_POLY RDS_PTIE RDS_NTIE RDS_ALU1 RDS_CONT
|
||||
RDS_ALU1 RDS_CONT RDS_VIA1 RDS_REF RDS_ALU1
|
||||
RDS_REF RDS_CONT RDS_VIA1 RDS_ALU1 RDS_REF
|
||||
RDS_VIA1 RDS_ALU1 RDS_ALU2 RDS_VIA1
|
||||
RDS_ALU2 RDS_VIA1 RDS_VIA2 RDS_ALU2
|
||||
RDS_VIA2 RDS_ALU2 RDS_ALU3 RDS_VIA2
|
||||
RDS_ALU3 RDS_VIA2 RDS_VIA3 RDS_ALU3
|
||||
RDS_VIA3 RDS_ALU3 RDS_ALU4 RDS_VIA3
|
||||
RDS_ALU4 RDS_VIA3 RDS_VIA4 RDS_ALU4
|
||||
RDS_VIA4 RDS_ALU4 RDS_ALU5 RDS_VIA4
|
||||
RDS_ALU5 RDS_VIA4 RDS_VIA5 RDS_ALU5
|
||||
RDS_VIA5 RDS_ALU5 RDS_ALU6 RDS_VIA5
|
||||
RDS_ALU6 RDS_VIA5 RDS_VIA6 RDS_ALU6
|
||||
RDS_VIA6 RDS_ALU6 RDS_ALU7 RDS_VIA6
|
||||
RDS_ALU7 RDS_VIA6 RDS_VIA7 RDS_ALU7
|
||||
RDS_VIA7 RDS_ALU7 RDS_ALU8 RDS_VIA7
|
||||
RDS_ALU8 RDS_VIA7 RDS_ALU8
|
||||
END
|
||||
TABLE LYNX_CAPA
|
||||
RDS_POLY 0.000101 9.8e-05
|
||||
RDS_ALU1 2.65e-05 8.6e-05
|
||||
RDS_ALU2 1.3e-05 7.6e-05
|
||||
RDS_ALU3 8.4e-06 6.8e-05
|
||||
RDS_ALU4 6.2e-06 6.34e-05
|
||||
RDS_ALU5 6.2e-06 6.34e-05
|
||||
RDS_ALU6 6.2e-06 6.34e-05
|
||||
RDS_ALU7 6.2e-06 6.34e-05
|
||||
RDS_ALU8 6.2e-06 6.34e-05
|
||||
END
|
||||
##-------------------------------------------------------------------
|
||||
# TABLE LYNX_BULK_IMPLICIT :
|
||||
#
|
||||
# RDS layer Bulk type
|
||||
# name EXPLICIT/IMPLICIT
|
||||
##-------------------------------------------------------------------
|
||||
|
||||
TABLE LYNX_BULK_IMPLICIT
|
||||
|
||||
##---------------------------
|
||||
#
|
||||
# Modifie par L.Jacomme (Pb Bulk/Alim avec Lynx)
|
||||
# 23.11.99
|
||||
#
|
||||
# NWELL EXPLICIT
|
||||
# PWELL IMPLICIT
|
||||
|
||||
END
|
||||
|
||||
##-------------------------------------------------------------------
|
||||
# TABLE MBK_TO_RDS_BIGVIA_HOLE :
|
||||
#
|
||||
# MBK via RDS Hole
|
||||
# name name side step mode
|
||||
##-------------------------------------------------------------------
|
||||
|
||||
TABLE MBK_TO_RDS_BIGVIA_HOLE
|
||||
|
||||
CONT_VIA RDS_VIA1 .4 1.1 ALL
|
||||
CONT_VIA2 RDS_VIA2 .4 1.1 ALL
|
||||
|
||||
END
|
||||
|
||||
##-------------------------------------------------------------------
|
||||
# TABLE MBK_TO_RDS_BIGVIA_METAL :
|
||||
#
|
||||
# MBK via RDS layer 1 ...
|
||||
# name name delta-width overlap mode
|
||||
##-------------------------------------------------------------------
|
||||
|
||||
TABLE MBK_TO_RDS_BIGVIA_METAL
|
||||
|
||||
CONT_VIA RDS_ALU1 .3 .0 ALL RDS_ALU2 .1 .0 ALL
|
||||
CONT_VIA2 RDS_ALU2 .1 .0 ALL RDS_ALU3 .0 .0 ALL
|
||||
|
||||
END
|
||||
|
||||
##-------------------------------------------------------------------
|
||||
# TABLE MBK_TO_RDS_TURNVIA :
|
||||
#
|
||||
# MBK via RDS layer 1 ...
|
||||
# name name delta-width overlap mode
|
||||
##-------------------------------------------------------------------
|
||||
|
||||
TABLE MBK_TO_RDS_TURNVIA
|
||||
|
||||
CONT_TURN1 RDS_ALU1 .3 ALL
|
||||
CONT_TURN2 RDS_ALU2 .1 ALL
|
||||
CONT_TURN3 RDS_ALU3 .0 ALL
|
||||
CONT_TURN3 RDS_ALU4 .0 ALL
|
||||
CONT_TURN3 RDS_ALU5 .0 ALL
|
||||
CONT_TURN3 RDS_ALU6 .0 ALL
|
||||
CONT_TURN3 RDS_ALU7 .0 ALL
|
||||
CONT_TURN3 RDS_ALU8 .0 ALL
|
||||
|
||||
END
|
||||
|
|
@ -0,0 +1,989 @@
|
|||
# Modified version of the cmos.rds file
|
||||
#=====================================================================
|
||||
#
|
||||
# ALLIANCE VLSI CAD
|
||||
# (R)eal (D)ata (S)tructure parameter file
|
||||
# (c) copyright 1992 Laboratory UPMC/MASI/CAO-VLSI
|
||||
# all rights reserved
|
||||
# e-mail : cao-vlsi@masi.ibp.fr
|
||||
#
|
||||
# file : cmos.rds
|
||||
# version : 12
|
||||
# last modif : Apr 4, 2002
|
||||
#
|
||||
##-------------------------------------------------------------------
|
||||
# Symbolic to micron on a 'one lambda equals one micron' basis
|
||||
##-------------------------------------------------------------------
|
||||
# Refer to the documentation for more precise information.
|
||||
#=====================================================================
|
||||
# 01/11/09 ALU5/6 pitch 10
|
||||
#
|
||||
# 99/11/3 ALU5/6 rules
|
||||
# . theses rules are preliminary rules, we hope that they wil change
|
||||
# in future. For now, ALU5/6 are dedicated to supplies an clock.
|
||||
#
|
||||
# 99/3/22 new symbolics rules
|
||||
# . ALU1 width remains 1, ALU2/3/4 is 2
|
||||
# . ALU1/2/3/4 distance (edge to edge) is now 3 for all
|
||||
# . GATE to GATE distance is 3 but POLY wire to POLY wire remains 2
|
||||
# . All via stacking are allowed
|
||||
#
|
||||
# 98/12/1 drc rules were updated
|
||||
# distance VIA to POLY or gate is one rather 2
|
||||
# VIA2 and ALU3 appeared
|
||||
# . ALU3 width is 3
|
||||
# . ALU2/VIA2/ALU3 is resp. 3/1/3
|
||||
# . ALU3 edge distance is 2
|
||||
# . stacked VIA/VIA2 is allowed
|
||||
# . if they are not stacked they must distant of 2
|
||||
# . CONT/VIA2 is free
|
||||
# note
|
||||
# . stacked CONT/VIA is always not allowed
|
||||
# NWELL is automatically drawn with the DIFN and NTIE layers
|
||||
#=====================================================================
|
||||
|
||||
##-------------------------------------------------------------------
|
||||
# PHYSICAL_GRID :
|
||||
##-------------------------------------------------------------------
|
||||
|
||||
DEFINE PHYSICAL_GRID .5
|
||||
|
||||
##-------------------------------------------------------------------
|
||||
# LAMBDA :
|
||||
##-------------------------------------------------------------------
|
||||
|
||||
DEFINE LAMBDA 1
|
||||
|
||||
##-------------------------------------------------------------------
|
||||
# TABLE MBK_TO_RDS_SEGMENT :
|
||||
#
|
||||
# MBK RDS layer 1 RDS layer 2
|
||||
# name name TRANS DLR DWR OFFSET name TRANS DLR DWR OFFSET ...
|
||||
##-------------------------------------------------------------------
|
||||
|
||||
TABLE MBK_TO_RDS_SEGMENT
|
||||
|
||||
PWELL RDS_PWELL VW 0.0 0.0 0.0 EXT
|
||||
NWELL RDS_NWELL VW 0.0 0.0 0.0 ALL
|
||||
NDIF RDS_NDIF VW 0.5 0.0 0.0 ALL
|
||||
PDIF RDS_PDIF VW 0.5 0.0 0.0 ALL \
|
||||
RDS_NWELL VW 1.0 1.0 0.0 ALL
|
||||
NTIE RDS_NTIE VW 0.5 0.0 0.0 ALL \
|
||||
RDS_NWELL VW 1.0 1.0 0.0 ALL
|
||||
PTIE RDS_PTIE VW 0.5 0.0 0.0 ALL
|
||||
NTRANS RDS_POLY VW 0.0 0.0 0.0 ALL \
|
||||
RDS_NDIF LCW -1.5 2.0 0.0 EXT \
|
||||
RDS_NDIF RCW -1.5 2.0 0.0 EXT \
|
||||
RDS_NDIF VW -1.5 4.0 0.0 DRC \
|
||||
RDS_ACTIV VW -1.5 5.0 0.0 ALL \
|
||||
RDS_PWELL VW -1.5 0.0 0.0 EXT
|
||||
PTRANS RDS_POLY VW 0.0 0.0 0.0 ALL \
|
||||
RDS_PDIF LCW -1.5 2.0 0.0 EXT \
|
||||
RDS_PDIF RCW -1.5 2.0 0.0 EXT \
|
||||
RDS_PDIF VW -1.5 4.0 0.0 DRC \
|
||||
RDS_ACTIV VW -1.5 5.0 0.0 ALL \
|
||||
RDS_NWELL VW -1.0 5.0 0.0 ALL
|
||||
POLY RDS_POLY VW 0.5 0.0 0.0 ALL
|
||||
POLY2 RDS_POLY2 VW 0.5 0.0 0.0 ALL
|
||||
ALU1 RDS_ALU1 VW 0.5 0.0 0.0 ALL
|
||||
ALU2 RDS_ALU2 VW 1.0 0.0 0.0 ALL
|
||||
ALU3 RDS_ALU3 VW 1.0 0.0 0.0 ALL
|
||||
ALU4 RDS_ALU4 VW 1.0 0.0 0.0 ALL
|
||||
ALU5 RDS_ALU5 VW 1.0 0.0 0.0 ALL
|
||||
ALU6 RDS_ALU6 VW 1.0 0.0 0.0 ALL
|
||||
ALU7 RDS_ALU7 VW 1.0 0.0 0.0 ALL
|
||||
ALU8 RDS_ALU8 VW 1.0 0.0 0.0 ALL
|
||||
CALU1 RDS_ALU1 VW 1.0 0.0 0.0 ALL
|
||||
CALU2 RDS_ALU2 VW 1.0 0.0 0.0 ALL
|
||||
CALU3 RDS_ALU3 VW 1.0 0.0 0.0 ALL
|
||||
CALU4 RDS_ALU4 VW 1.0 0.0 0.0 ALL
|
||||
CALU5 RDS_ALU5 VW 1.0 0.0 0.0 ALL
|
||||
CALU6 RDS_ALU6 VW 1.0 0.0 0.0 ALL
|
||||
CALU7 RDS_ALU7 VW 1.0 0.0 0.0 ALL
|
||||
CALU8 RDS_ALU8 VW 1.0 0.0 0.0 ALL
|
||||
TPOLY RDS_TPOLY VW 0.5 0.0 0.0 ALL
|
||||
TALU1 RDS_TALU1 VW 0.5 0.0 0.0 ALL
|
||||
TALU2 RDS_TALU2 VW 1.0 0.0 0.0 ALL
|
||||
TALU3 RDS_TALU3 VW 1.0 0.0 0.0 ALL
|
||||
TALU4 RDS_TALU4 VW 1.0 0.0 0.0 ALL
|
||||
TALU5 RDS_TALU5 VW 1.0 0.0 0.0 ALL
|
||||
TALU6 RDS_TALU6 VW 1.0 0.0 0.0 ALL
|
||||
TALU7 RDS_TALU7 VW 1.0 0.0 0.0 ALL
|
||||
TALU8 RDS_TALU8 VW 1.0 0.0 0.0 ALL
|
||||
|
||||
END
|
||||
|
||||
##-------------------------------------------------------------------
|
||||
# TABLE MBK_TO_RDS_CONNECTOR :
|
||||
#
|
||||
# MBK RDS layer
|
||||
# name name DER DWR
|
||||
##-------------------------------------------------------------------
|
||||
|
||||
TABLE MBK_TO_RDS_CONNECTOR
|
||||
|
||||
POLY RDS_POLY .5 0
|
||||
POLY2 RDS_POLY2 .5 0
|
||||
ALU1 RDS_ALU1 .5 0
|
||||
ALU2 RDS_ALU2 1.0 0
|
||||
ALU3 RDS_ALU3 1.0 0
|
||||
ALU4 RDS_ALU4 1.0 0
|
||||
ALU5 RDS_ALU5 1.0 0
|
||||
ALU6 RDS_ALU6 1.0 0
|
||||
ALU7 RDS_ALU7 1.0 0
|
||||
ALU8 RDS_ALU8 1.0 0
|
||||
|
||||
END
|
||||
|
||||
##-------------------------------------------------------------------
|
||||
# TABLE MBK_TO_RDS_REFERENCE :
|
||||
#
|
||||
# MBK ref RDS layer
|
||||
# name name width
|
||||
##-------------------------------------------------------------------
|
||||
|
||||
TABLE MBK_TO_RDS_REFERENCE
|
||||
|
||||
REF_REF RDS_REF 1
|
||||
REF_CON RDS_VALU1 2 RDS_TVIA1 1 RDS_TALU2 2
|
||||
|
||||
END
|
||||
|
||||
##-------------------------------------------------------------------
|
||||
# TABLE MBK_TO_RDS_VIA1 :
|
||||
#
|
||||
# MBK via RDS layer 1 RDS layer 2 RDS layer 3 RDS layer 4
|
||||
# name name width name width name width name width
|
||||
##-------------------------------------------------------------------
|
||||
|
||||
TABLE MBK_TO_RDS_VIA
|
||||
|
||||
CONT_BODY_P RDS_ALU1 2 ALL RDS_CONT 1 ALL RDS_PTIE 3 ALL
|
||||
CONT_BODY_N RDS_ALU1 2 ALL RDS_CONT 1 ALL RDS_NTIE 3 ALL RDS_NWELL 4 ALL
|
||||
CONT_DIF_N RDS_ALU1 2 ALL RDS_CONT 1 ALL RDS_NDIF 3 ALL
|
||||
CONT_DIF_P RDS_ALU1 2 ALL RDS_CONT 1 ALL RDS_PDIF 3 ALL RDS_NWELL 4 ALL
|
||||
CONT_POLY RDS_ALU1 2 ALL RDS_CONT 1 ALL RDS_POLY 3 ALL
|
||||
CONT_POLY2 RDS_ALU1 2 ALL RDS_CONT 1 ALL RDS_POLY2 3 ALL
|
||||
CONT_VIA RDS_ALU1 2 ALL RDS_VIA1 1 ALL RDS_ALU2 2 ALL
|
||||
CONT_VIA2 RDS_ALU2 2 ALL RDS_VIA2 1 ALL RDS_ALU3 2 ALL
|
||||
CONT_VIA3 RDS_ALU3 2 ALL RDS_VIA3 1 ALL RDS_ALU4 2 ALL
|
||||
CONT_VIA4 RDS_ALU4 2 ALL RDS_VIA4 1 ALL RDS_ALU5 2 ALL
|
||||
CONT_VIA5 RDS_ALU5 2 ALL RDS_VIA5 1 ALL RDS_ALU6 2 ALL
|
||||
CONT_VIA6 RDS_ALU6 2 ALL RDS_VIA6 1 ALL RDS_ALU7 2 ALL
|
||||
CONT_VIA7 RDS_ALU7 2 ALL RDS_VIA7 1 ALL RDS_ALU8 2 ALL
|
||||
C_X_N RDS_POLY 1 ALL RDS_NDIF 5 ALL RDS_ACTIV 6 ALL
|
||||
C_X_P RDS_POLY 1 ALL RDS_PDIF 5 ALL RDS_NWELL 6 ALL RDS_ACTIV 6 ALL
|
||||
|
||||
END
|
||||
|
||||
##-------------------------------------------------------------------
|
||||
# TABLE MBK_TO_RDS_BIGVIA_HOLE :
|
||||
#
|
||||
# MBK via RDS Hole
|
||||
# name name side step mode
|
||||
##-------------------------------------------------------------------
|
||||
|
||||
TABLE MBK_TO_RDS_BIGVIA_HOLE
|
||||
|
||||
CONT_VIA RDS_VIA1 1 4 ALL
|
||||
CONT_VIA2 RDS_VIA2 1 4 ALL
|
||||
CONT_VIA3 RDS_VIA3 1 4 ALL
|
||||
CONT_VIA5 RDS_VIA3 1 9 ALL
|
||||
CONT_VIA6 RDS_VIA3 1 9 ALL
|
||||
CONT_VIA7 RDS_VIA3 1 9 ALL
|
||||
|
||||
END
|
||||
|
||||
##-------------------------------------------------------------------
|
||||
# TABLE MBK_TO_RDS_BIGVIA_METAL :
|
||||
#
|
||||
# MBK via RDS layer 1 ...
|
||||
# name name delta-width overlap mode
|
||||
##-------------------------------------------------------------------
|
||||
|
||||
TABLE MBK_TO_RDS_BIGVIA_METAL
|
||||
|
||||
CONT_VIA RDS_ALU1 0.0 0.5 ALL RDS_ALU2 0.0 0.5 ALL
|
||||
CONT_VIA2 RDS_ALU2 0.0 0.5 ALL RDS_ALU3 0.0 0.5 ALL
|
||||
CONT_VIA3 RDS_ALU3 0.0 0.5 ALL RDS_ALU4 0.0 0.5 ALL
|
||||
CONT_VIA4 RDS_ALU4 0.0 0.5 ALL RDS_ALU5 0.0 0.5 ALL
|
||||
CONT_VIA5 RDS_ALU5 0.0 0.5 ALL RDS_ALU6 0.0 0.5 ALL
|
||||
|
||||
END
|
||||
|
||||
##-------------------------------------------------------------------
|
||||
# TABLE MBK_TO_RDS_TURNVIA :
|
||||
#
|
||||
# MBK via RDS layer 1 ...
|
||||
# name name DWR MODE
|
||||
##-------------------------------------------------------------------
|
||||
|
||||
TABLE MBK_TO_RDS_TURNVIA
|
||||
|
||||
CONT_TURN1 RDS_ALU1 0 ALL
|
||||
CONT_TURN2 RDS_ALU2 0 ALL
|
||||
CONT_TURN3 RDS_ALU3 0 ALL
|
||||
CONT_TURN4 RDS_ALU4 0 ALL
|
||||
CONT_TURN5 RDS_ALU5 0 ALL
|
||||
CONT_TURN6 RDS_ALU6 0 ALL
|
||||
|
||||
END
|
||||
|
||||
|
||||
##-------------------------------------------------------------------
|
||||
# TABLE LYNX_GRAPH :
|
||||
#
|
||||
# RDS layer Rds layer 1 Rds layer 2 ...
|
||||
# name name name ...
|
||||
##-------------------------------------------------------------------
|
||||
|
||||
TABLE LYNX_GRAPH
|
||||
|
||||
##---------------------------
|
||||
#
|
||||
# Modifie par L.Jacomme (Pb Bulk/Alim avec Lynx)
|
||||
# 23.11.99
|
||||
#
|
||||
# RDS_NWELL RDS_NTIE RDS_NWELL
|
||||
# RDS_PWELL RDS_PTIE RDS_PWELL
|
||||
# RDS_NDIF RDS_CONT RDS_NDIF
|
||||
# RDS_PDIF RDS_CONT RDS_PDIF
|
||||
# RDS_NTIE RDS_CONT RDS_NTIE RDS_NWELL
|
||||
# RDS_PTIE RDS_CONT RDS_PTIE RDS_PWELL
|
||||
|
||||
RDS_NDIF RDS_CONT RDS_NDIF
|
||||
RDS_PDIF RDS_CONT RDS_PDIF
|
||||
RDS_NTIE RDS_CONT RDS_NTIE
|
||||
RDS_PTIE RDS_CONT RDS_PTIE
|
||||
|
||||
RDS_POLY RDS_CONT RDS_POLY
|
||||
RDS_POLY2 RDS_CONT RDS_POLY2
|
||||
RDS_CONT RDS_PDIF RDS_NDIF RDS_POLY RDS_PTIE RDS_NTIE RDS_ALU1 RDS_CONT
|
||||
RDS_ALU1 RDS_CONT RDS_VIA1 RDS_ALU1 RDS_VALU1 RDS_ALU1
|
||||
RDS_VALU1 RDS_CONT RDS_VIA1 RDS_ALU1 RDS_VALU1
|
||||
RDS_VIA1 RDS_ALU1 RDS_ALU2 RDS_VIA1
|
||||
RDS_VIA2 RDS_ALU2 RDS_ALU3 RDS_VIA2
|
||||
RDS_VIA3 RDS_ALU3 RDS_ALU4 RDS_VIA3
|
||||
RDS_VIA4 RDS_ALU4 RDS_ALU5 RDS_VIA4
|
||||
RDS_VIA5 RDS_ALU5 RDS_ALU6 RDS_VIA5
|
||||
RDS_VIA6 RDS_ALU6 RDS_ALU7 RDS_VIA6
|
||||
RDS_VIA7 RDS_ALU7 RDS_ALU8 RDS_VIA7
|
||||
RDS_ALU2 RDS_VIA1 RDS_VIA2 RDS_ALU2
|
||||
RDS_ALU3 RDS_VIA2 RDS_VIA3 RDS_ALU3
|
||||
RDS_ALU4 RDS_VIA3 RDS_VIA4 RDS_ALU4
|
||||
RDS_ALU5 RDS_VIA4 RDS_VIA5 RDS_ALU5
|
||||
RDS_ALU6 RDS_VIA5 RDS_VIA6 RDS_ALU6
|
||||
RDS_ALU7 RDS_VIA6 RDS_VIA7 RDS_ALU7
|
||||
RDS_ALU8 RDS_VIA7 RDS_ALU8
|
||||
|
||||
END
|
||||
|
||||
##-------------------------------------------------------------------
|
||||
# TABLE LYNX_CAPA :
|
||||
#
|
||||
# RDS layer Surface capacitance Perimetric capacitance
|
||||
# name piF / Micron^2 piF / Micron
|
||||
##-------------------------------------------------------------------
|
||||
|
||||
TABLE LYNX_CAPA
|
||||
|
||||
RDS_POLY 1.00e-04 1.00e-04
|
||||
RDS_POLY2 1.00e-04 1.00e-04
|
||||
RDS_ALU1 0.50e-04 0.90e-04
|
||||
RDS_ALU2 0.25e-04 0.95e-04
|
||||
RDS_ALU3 0.25e-04 0.95e-04
|
||||
RDS_ALU4 0.25e-04 0.95e-04
|
||||
RDS_ALU5 0.25e-04 0.95e-04
|
||||
RDS_ALU6 0.25e-04 0.95e-04
|
||||
RDS_ALU7 0.25e-04 0.95e-04
|
||||
RDS_ALU8 0.25e-04 0.95e-04
|
||||
|
||||
END
|
||||
|
||||
##-------------------------------------------------------------------
|
||||
# TABLE LYNX_RESISTOR :
|
||||
#
|
||||
# RDS layer Surface resistor
|
||||
# name Ohm / Micron^2
|
||||
##-------------------------------------------------------------------
|
||||
|
||||
TABLE LYNX_RESISTOR
|
||||
|
||||
RDS_POLY 50.0
|
||||
RDS_POLY2 50.0
|
||||
RDS_ALU1 0.1
|
||||
RDS_ALU2 0.05
|
||||
RDS_ALU3 0.05
|
||||
RDS_ALU4 0.05
|
||||
RDS_ALU5 0.05
|
||||
RDS_ALU6 0.05
|
||||
RDS_ALU7 0.05
|
||||
RDS_ALU8 0.05
|
||||
|
||||
END
|
||||
|
||||
##-------------------------------------------------------------------
|
||||
# TABLE LYNX_TRANSISTOR :
|
||||
#
|
||||
# MBK layer Transistor Type MBK via
|
||||
# name name name
|
||||
##-------------------------------------------------------------------
|
||||
|
||||
TABLE LYNX_TRANSISTOR
|
||||
|
||||
NTRANS NTRANS C_X_N RDS_POLY RDS_NDIF RDS_NDIF RDS_PWELL
|
||||
PTRANS PTRANS C_X_P RDS_POLY RDS_PDIF RDS_PDIF RDS_NWELL
|
||||
|
||||
END
|
||||
|
||||
##-------------------------------------------------------------------
|
||||
# TABLE LYNX_DIFFUSION :
|
||||
#
|
||||
# RDS layer RDS layer
|
||||
# name name
|
||||
##-------------------------------------------------------------------
|
||||
|
||||
TABLE LYNX_DIFFUSION
|
||||
END
|
||||
|
||||
##-------------------------------------------------------------------
|
||||
# TABLE LYNX_BULK_IMPLICIT :
|
||||
#
|
||||
# RDS layer Bulk type
|
||||
# name EXPLICIT/IMPLICIT
|
||||
##-------------------------------------------------------------------
|
||||
|
||||
TABLE LYNX_BULK_IMPLICIT
|
||||
|
||||
##---------------------------
|
||||
#
|
||||
# Modifie par L.Jacomme (Pb Bulk/Alim avec Lynx)
|
||||
# 23.11.99
|
||||
#
|
||||
# NWELL EXPLICIT
|
||||
# PWELL IMPLICIT
|
||||
|
||||
END
|
||||
|
||||
|
||||
|
||||
##-------------------------------------------------------------------
|
||||
# TABLE S2R_OVERSIZE_DENOTCH :
|
||||
##-------------------------------------------------------------------
|
||||
|
||||
TABLE S2R_OVERSIZE_DENOTCH
|
||||
END
|
||||
|
||||
##-------------------------------------------------------------------
|
||||
# TABLE S2R_BLOC_RING_WIDTH :
|
||||
##-------------------------------------------------------------------
|
||||
|
||||
TABLE S2R_BLOC_RING_WIDTH
|
||||
END
|
||||
|
||||
##-------------------------------------------------------------------
|
||||
# TABLE S2R_MINIMUM_LAYER_WIDTH :
|
||||
##-------------------------------------------------------------------
|
||||
|
||||
TABLE S2R_MINIMUM_LAYER_WIDTH
|
||||
|
||||
RDS_NWELL 4
|
||||
RDS_PDIF 2
|
||||
RDS_NTIE 2
|
||||
RDS_PTIE 2
|
||||
RDS_POLY 1
|
||||
RDS_POLY2 1
|
||||
RDS_TPOLY 1
|
||||
RDS_CONT 1
|
||||
RDS_ALU1 1
|
||||
RDS_TALU1 1
|
||||
RDS_VIA1 1
|
||||
RDS_ALU2 2
|
||||
RDS_TALU2 2
|
||||
RDS_VIA2 1
|
||||
RDS_ALU3 2
|
||||
RDS_TALU3 2
|
||||
RDS_VIA3 1
|
||||
RDS_ALU4 2
|
||||
RDS_TALU4 2
|
||||
RDS_VIA4 1
|
||||
RDS_ALU5 2
|
||||
RDS_TALU5 2
|
||||
RDS_VIA5 1
|
||||
RDS_ALU6 2
|
||||
RDS_TALU6 2
|
||||
RDS_VIA6 1
|
||||
RDS_ALU7 2
|
||||
RDS_TALU7 2
|
||||
RDS_VIA7 1
|
||||
RDS_ALU8 2
|
||||
RDS_TALU8 2
|
||||
|
||||
END
|
||||
|
||||
##-------------------------------------------------------------------
|
||||
# TABLE CIF_LAYER :
|
||||
##-------------------------------------------------------------------
|
||||
|
||||
TABLE CIF_LAYER
|
||||
|
||||
RDS_NWELL LNWELL
|
||||
RDS_NDIF LNDIF
|
||||
RDS_PDIF LPDIF
|
||||
RDS_NTIE LNTIE
|
||||
RDS_PTIE LPTIE
|
||||
RDS_POLY LPOLY
|
||||
RDS_POLY2 LPOLY2
|
||||
RDS_TPOLY LTPOLY
|
||||
RDS_CONT LCONT
|
||||
RDS_ALU1 LALU1
|
||||
RDS_VALU1 LVALU1
|
||||
RDS_TALU1 LTALU1
|
||||
RDS_VIA1 LVIA
|
||||
RDS_TVIA1 LTVIA1
|
||||
RDS_ALU2 LALU2
|
||||
RDS_TALU2 LTALU2
|
||||
RDS_VIA2 LVIA2
|
||||
RDS_ALU3 LALU3
|
||||
RDS_TALU3 LTALU3
|
||||
RDS_VIA3 LVIA3
|
||||
RDS_ALU4 LALU4
|
||||
RDS_TALU4 LTALU4
|
||||
RDS_VIA4 LVIA4
|
||||
RDS_ALU5 LALU5
|
||||
RDS_TALU5 LTALU5
|
||||
RDS_VIA5 LVIA5
|
||||
RDS_ALU6 LALU6
|
||||
RDS_TALU6 LTALU6
|
||||
RDS_VIA6 LVIA6
|
||||
RDS_ALU7 LALU7
|
||||
RDS_TALU7 LTALU7
|
||||
RDS_VIA7 LVIA7
|
||||
RDS_ALU8 LALU8
|
||||
RDS_TALU8 LTALU8
|
||||
RDS_REF LREF
|
||||
|
||||
END
|
||||
|
||||
##-------------------------------------------------------------------
|
||||
# TABLE GDS_LAYER :
|
||||
##-------------------------------------------------------------------
|
||||
|
||||
TABLE GDS_LAYER
|
||||
|
||||
RDS_NWELL 1
|
||||
RDS_NDIF 3
|
||||
RDS_PDIF 4
|
||||
RDS_NTIE 5
|
||||
RDS_PTIE 6
|
||||
RDS_POLY 7
|
||||
RDS_POLY2 8
|
||||
RDS_TPOLY 9
|
||||
RDS_CONT 10
|
||||
RDS_ALU1 11
|
||||
RDS_VALU1 12
|
||||
RDS_TALU1 13
|
||||
RDS_VIA1 14
|
||||
RDS_TVIA1 15
|
||||
RDS_ALU2 16
|
||||
RDS_TALU2 17
|
||||
RDS_VIA2 18
|
||||
RDS_ALU3 19
|
||||
RDS_TALU3 20
|
||||
RDS_VIA3 21
|
||||
RDS_ALU4 22
|
||||
RDS_TALU4 23
|
||||
RDS_VIA4 25
|
||||
RDS_ALU5 26
|
||||
RDS_TALU5 27
|
||||
RDS_VIA5 28
|
||||
RDS_ALU6 29
|
||||
RDS_TALU6 30
|
||||
RDS_VIA6 31
|
||||
RDS_ALU7 32
|
||||
RDS_TALU7 33
|
||||
RDS_VIA7 34
|
||||
RDS_ALU8 35
|
||||
RDS_TALU8 36
|
||||
RDS_REF 37
|
||||
|
||||
END
|
||||
|
||||
##-------------------------------------------------------------------
|
||||
# TABLE S2R_POST_TREAT :
|
||||
##-------------------------------------------------------------------
|
||||
|
||||
TABLE S2R_POST_TREAT
|
||||
|
||||
END
|
||||
DRC_RULES
|
||||
|
||||
layer RDS_NWELL 4.;
|
||||
layer RDS_NTIE 2.;
|
||||
layer RDS_PTIE 2.;
|
||||
layer RDS_NDIF 2.;
|
||||
layer RDS_PDIF 2.;
|
||||
layer RDS_ACTIV 2.;
|
||||
layer RDS_CONT 1.;
|
||||
layer RDS_VIA1 1.;
|
||||
layer RDS_VIA2 1.;
|
||||
layer RDS_VIA3 1.;
|
||||
layer RDS_VIA4 1.;
|
||||
layer RDS_VIA5 1.;
|
||||
layer RDS_VIA6 1.;
|
||||
layer RDS_VIA7 1.;
|
||||
layer RDS_POLY 1.;
|
||||
layer RDS_POLY2 1.;
|
||||
layer RDS_ALU1 1.;
|
||||
layer RDS_ALU2 2.;
|
||||
layer RDS_ALU3 2.;
|
||||
layer RDS_ALU4 2.;
|
||||
layer RDS_ALU5 2.;
|
||||
layer RDS_ALU6 2.;
|
||||
layer RDS_ALU7 2.;
|
||||
layer RDS_ALU8 2.;
|
||||
layer RDS_USER0 1.;
|
||||
layer RDS_USER1 1.;
|
||||
layer RDS_USER2 1.;
|
||||
|
||||
regles
|
||||
|
||||
# Note : ``min'' is different from ``>=''.
|
||||
# min is applied on polygons and >= is applied on rectangles.
|
||||
# There is the same difference between max and <=.
|
||||
# >= is faster than min, but min must be used where it is
|
||||
# required to consider polygons, for example distance of
|
||||
# two objects in the same layer
|
||||
#
|
||||
# There is no rule to check NTIE and PDIF are included in NWELL
|
||||
# since this is necessarily true
|
||||
#-----------------------------------------------------------
|
||||
|
||||
# Check the NWELL shapes
|
||||
#-----------------------
|
||||
caracterise RDS_NWELL (
|
||||
regle 1 : largeur >= 4. ;
|
||||
regle 2 : longueur_inter min 4. ;
|
||||
regle 3 : notch >= 12. ;
|
||||
);
|
||||
relation RDS_NWELL , RDS_NWELL (
|
||||
regle 4 : distance axiale min 12. ;
|
||||
);
|
||||
|
||||
# Check RDS_PTIE is really excluded outside NWELL
|
||||
#------------------------------------------------
|
||||
relation RDS_PTIE , RDS_NWELL (
|
||||
regle 5 : distance axiale >= 7.5;
|
||||
regle 6 : enveloppe longueur_inter < 0. ;
|
||||
regle 7 : marge longueur_inter < 0. ;
|
||||
regle 8 : croix longueur_inter < 0. ;
|
||||
regle 9 : intersection longueur_inter < 0. ;
|
||||
regle 10 : extension longueur_inter < 0. ;
|
||||
regle 11 : inclusion longueur_inter < 0. ;
|
||||
);
|
||||
|
||||
# Check RDS_NDIF is really excluded outside NWELL
|
||||
#------------------------------------------------
|
||||
relation RDS_NDIF , RDS_NWELL (
|
||||
regle 12 : distance axiale >= 7.5;
|
||||
regle 13 : enveloppe longueur_inter < 0. ;
|
||||
regle 14 : marge longueur_inter < 0. ;
|
||||
regle 15 : croix longueur_inter < 0. ;
|
||||
regle 16 : intersection longueur_inter < 0. ;
|
||||
regle 17 : extension longueur_inter < 0. ;
|
||||
regle 18 : inclusion longueur_inter < 0. ;
|
||||
);
|
||||
|
||||
# Check the RDS_PDIF shapes
|
||||
#--------------------------
|
||||
caracterise RDS_PDIF (
|
||||
regle 19 : largeur >= 2. ;
|
||||
regle 20 : longueur_inter min 2. ;
|
||||
regle 21 : notch >= 3. ;
|
||||
);
|
||||
relation RDS_PDIF , RDS_PDIF (
|
||||
regle 22 : distance axiale min 3. ;
|
||||
);
|
||||
|
||||
# Check the RDS_NDIF shapes
|
||||
#--------------------------
|
||||
caracterise RDS_NDIF (
|
||||
regle 23 : largeur >= 2. ;
|
||||
regle 24 : longueur_inter min 2. ;
|
||||
regle 25 : notch >= 3. ;
|
||||
);
|
||||
relation RDS_NDIF , RDS_NDIF (
|
||||
regle 26 : distance axiale min 3. ;
|
||||
);
|
||||
|
||||
# Check the RDS_PTIE shapes
|
||||
#--------------------------
|
||||
caracterise RDS_PTIE (
|
||||
regle 27 : largeur >= 2. ;
|
||||
regle 28 : longueur_inter min 2. ;
|
||||
regle 29 : notch >= 3. ;
|
||||
);
|
||||
relation RDS_PTIE , RDS_PTIE (
|
||||
regle 30 : distance axiale min 3. ;
|
||||
);
|
||||
|
||||
# Check the RDS_NTIE shapes
|
||||
#--------------------------
|
||||
caracterise RDS_NTIE (
|
||||
regle 31 : largeur >= 2. ;
|
||||
regle 32 : longueur_inter min 2. ;
|
||||
regle 33 : notch >= 3. ;
|
||||
);
|
||||
relation RDS_NTIE , RDS_NTIE (
|
||||
regle 34 : distance axiale min 3. ;
|
||||
);
|
||||
|
||||
define RDS_PDIF , RDS_PTIE union -> ANY_P_DIF;
|
||||
define RDS_NDIF , RDS_NTIE union -> ANY_N_DIF;
|
||||
|
||||
# Check the ANY_N_DIF ANY_P_DIFF exclusion
|
||||
#--------------------------------------
|
||||
relation ANY_N_DIF , ANY_P_DIF (
|
||||
regle 35 : distance axiale >= 3. ;
|
||||
regle 36 : enveloppe longueur_inter < 0. ;
|
||||
regle 37 : marge longueur_inter < 0. ;
|
||||
regle 38 : croix longueur_inter < 0. ;
|
||||
regle 39 : intersection longueur_inter < 0. ;
|
||||
regle 40 : extension longueur_inter < 0. ;
|
||||
regle 41 : inclusion longueur_inter < 0. ;
|
||||
);
|
||||
|
||||
undefine ANY_P_DIF;
|
||||
undefine ANY_N_DIF;
|
||||
|
||||
define RDS_NDIF , RDS_PDIF union -> NP_DIF;
|
||||
|
||||
# Check RDS_POLY related to NP_DIF
|
||||
#---------------------------------
|
||||
relation RDS_POLY , NP_DIF (
|
||||
regle 42 : distance axiale >= 1. ;
|
||||
regle 43 : intersection longueur_inter < 0. ;
|
||||
);
|
||||
|
||||
define NP_DIF , RDS_POLY intersection -> CHANNEL;
|
||||
|
||||
# Check the RDS_POLY shapes
|
||||
#--------------------------
|
||||
caracterise RDS_POLY (
|
||||
regle 44 : largeur >= 1. ;
|
||||
regle 45 : longueur_inter min 1. ;
|
||||
regle 46 : notch >= 2. ;
|
||||
);
|
||||
relation RDS_POLY , RDS_POLY (
|
||||
regle 47 : distance axiale min 2.;
|
||||
);
|
||||
|
||||
define NP_DIF , RDS_CONT intersection -> CONT_DIFF;
|
||||
# Check the CHANNEL shapes
|
||||
#--------------------------
|
||||
caracterise CHANNEL (
|
||||
regle 48 : notch >= 3. ;
|
||||
);
|
||||
relation CHANNEL , CHANNEL (
|
||||
regle 49 : distance axiale min 3.;
|
||||
);
|
||||
|
||||
undefine CHANNEL;
|
||||
|
||||
# Check RDS_POLY is distant from ACTIV ZONE of TRANSISTOR
|
||||
#--------------------------------------------------------
|
||||
relation RDS_POLY , RDS_ACTIV (
|
||||
regle 79 : distance axiale >= 1. ;
|
||||
);
|
||||
|
||||
relation RDS_POLY , CONT_DIFF (
|
||||
regle 50 : distance axiale >= 2. ;
|
||||
);
|
||||
|
||||
undefine CONT_DIFF;
|
||||
undefine NP_DIF;
|
||||
|
||||
|
||||
# Check RDS_ALU1 shapes
|
||||
#----------------------
|
||||
caracterise RDS_ALU1 (
|
||||
regle 51 : largeur >= 1. ;
|
||||
regle 52 : longueur_inter min 1. ;
|
||||
regle 53 : notch >= 3. ;
|
||||
);
|
||||
relation RDS_ALU1 , RDS_ALU1 (
|
||||
regle 54 : distance axiale min 3. ;
|
||||
);
|
||||
|
||||
# Check RDS_ALU2 shapes
|
||||
#----------------------
|
||||
caracterise RDS_ALU2 (
|
||||
regle 55 : largeur >= 2. ;
|
||||
regle 56 : longueur_inter min 2. ;
|
||||
regle 57 : notch >= 3. ;
|
||||
);
|
||||
relation RDS_ALU2 , RDS_ALU2 (
|
||||
regle 58 : distance axiale min 3. ;
|
||||
);
|
||||
|
||||
# Check RDS_ALU3 shapes
|
||||
#----------------------
|
||||
caracterise RDS_ALU3 (
|
||||
regle 59 : largeur >= 2. ;
|
||||
regle 60 : longueur_inter min 2. ;
|
||||
regle 61 : notch >= 3. ;
|
||||
);
|
||||
relation RDS_ALU3 , RDS_ALU3 (
|
||||
regle 62 : distance axiale min 3. ;
|
||||
);
|
||||
|
||||
# Check RDS_ALU4 shapes
|
||||
#----------------------
|
||||
caracterise RDS_ALU4 (
|
||||
regle 63 : largeur >= 2. ;
|
||||
regle 64 : longueur_inter min 2. ;
|
||||
regle 65 : notch >= 3. ;
|
||||
);
|
||||
relation RDS_ALU4 , RDS_ALU4 (
|
||||
regle 66 : distance axiale min 3. ;
|
||||
);
|
||||
|
||||
# Check RDS_ALU5 shapes
|
||||
#----------------------
|
||||
# caracterise RDS_ALU5 (
|
||||
# regle 80 : largeur >= 2. ;
|
||||
# regle 81 : longueur_inter min 2. ;
|
||||
# regle 82 : notch >= 8. ;
|
||||
#);
|
||||
#relation RDS_ALU5 , RDS_ALU5 (
|
||||
# regle 83 : distance axiale min 8. ;
|
||||
#);
|
||||
|
||||
# Check RDS_ALU5 shapes
|
||||
# it is not true !! LUDO
|
||||
# Only to work with OCR
|
||||
#----------------------
|
||||
caracterise RDS_ALU5 (
|
||||
regle 80 : largeur >= 2. ;
|
||||
regle 81 : longueur_inter min 2. ;
|
||||
regle 82 : notch >= 3. ;
|
||||
);
|
||||
relation RDS_ALU5 , RDS_ALU5 (
|
||||
regle 83 : distance axiale min 3. ;
|
||||
);
|
||||
|
||||
# Check RDS_ALU6 shapes
|
||||
#----------------------
|
||||
#caracterise RDS_ALU6 (
|
||||
# regle 84 : largeur >= 2. ;
|
||||
# regle 85 : longueur_inter min 2. ;
|
||||
# regle 86 : notch >= 8. ;
|
||||
#);
|
||||
#relation RDS_ALU6 , RDS_ALU6 (
|
||||
# regle 87 : distance axiale min 8. ;
|
||||
#);
|
||||
|
||||
# Check RDS_ALU6 shapes
|
||||
# it is not true !! LUDO
|
||||
# Only to work with OCR
|
||||
#----------------------
|
||||
caracterise RDS_ALU6 (
|
||||
regle 84 : largeur >= 2. ;
|
||||
regle 85 : longueur_inter min 2. ;
|
||||
regle 86 : notch >= 3. ;
|
||||
);
|
||||
relation RDS_ALU6 , RDS_ALU6 (
|
||||
regle 87 : distance axiale min 3. ;
|
||||
);
|
||||
|
||||
# Check ANY_VIA layers, stacking are free
|
||||
#----------------------------------------
|
||||
relation RDS_CONT , RDS_CONT (
|
||||
regle 67 : distance axiale >= 3. ;
|
||||
);
|
||||
relation RDS_VIA , RDS_VIA (
|
||||
regle 68 : distance axiale >= 4. ;
|
||||
);
|
||||
relation RDS_VIA2 , RDS_VIA2 (
|
||||
regle 69 : distance axiale >= 4. ;
|
||||
);
|
||||
relation RDS_VIA3 , RDS_VIA3 (
|
||||
regle 70 : distance axiale >= 4. ;
|
||||
);
|
||||
|
||||
# It's not true !! LUDO
|
||||
# only to work with OCR
|
||||
relation RDS_VIA4 , RDS_VIA4 (
|
||||
regle 88 : distance axiale >= 4. ;
|
||||
);
|
||||
|
||||
# relation RDS_VIA4 , RDS_VIA4 (
|
||||
# regle 88 : distance axiale >= 9. ;
|
||||
#);
|
||||
|
||||
# It's not true !! LUDO
|
||||
# only to work with OCR
|
||||
relation RDS_VIA5 , RDS_VIA5 (
|
||||
regle 89 : distance axiale >= 4. ;
|
||||
);
|
||||
|
||||
# relation RDS_VIA5 , RDS_VIA5 (
|
||||
# regle 89 : distance axiale >= 9. ;
|
||||
# );
|
||||
caracterise RDS_CONT (
|
||||
regle 71 : largeur >= 1. ;
|
||||
regle 72 : longueur <= 1. ;
|
||||
);
|
||||
caracterise RDS_VIA (
|
||||
regle 73 : largeur >= 1. ;
|
||||
regle 74 : longueur <= 1. ;
|
||||
);
|
||||
caracterise RDS_VIA2 (
|
||||
regle 75 : largeur >= 1. ;
|
||||
regle 76 : longueur <= 1. ;
|
||||
);
|
||||
caracterise RDS_VIA3 (
|
||||
regle 77 : largeur >= 1. ;
|
||||
regle 78 : longueur <= 1. ;
|
||||
);
|
||||
caracterise RDS_VIA4 (
|
||||
regle 90 : largeur >= 1. ;
|
||||
regle 91 : longueur <= 1. ;
|
||||
);
|
||||
caracterise RDS_VIA5 (
|
||||
regle 92 : largeur >= 1. ;
|
||||
regle 93 : longueur <= 1. ;
|
||||
);
|
||||
|
||||
# Check the POLY2 shapes
|
||||
#-----------------------
|
||||
caracterise RDS_POLY2 (
|
||||
regle 94 : largeur >= 1. ;
|
||||
regle 95 : longueur_inter min 1. ;
|
||||
regle 96 : notch >= 5. ;
|
||||
);
|
||||
relation RDS_POLY2 , RDS_POLY2 (
|
||||
regle 97 : distance axiale min 5. ;
|
||||
);
|
||||
|
||||
# Check RDS_POLY2 is really included inside RDS_POLY1
|
||||
#----------------------------------------------------
|
||||
relation RDS_POLY , RDS_POLY2 (
|
||||
regle 98 : distance axiale < 0.;
|
||||
regle 99 : enveloppe inferieure min 5. ;
|
||||
regle 100 : marge longueur_inter < 0. ;
|
||||
regle 101 : croix longueur_inter < 0. ;
|
||||
regle 102 : intersection longueur_inter < 0. ;
|
||||
regle 103 : extension longueur_inter < 0. ;
|
||||
regle 104 : inclusion longueur_inter < 0. ;
|
||||
);
|
||||
|
||||
|
||||
fin regles
|
||||
DRC_COMMENT
|
||||
1 (RDS_NWELL) minimum width 4.
|
||||
2 (RDS_NWELL) minimum width 4.
|
||||
3 (RDS_NWELL) Manhatan distance min 12.
|
||||
4 (RDS_NWELL,RDS_NWELL) Manhatan distance min 12.
|
||||
5 (RDS_PTIE,RDS_NWELL) Manhatan distance min 7.5
|
||||
6 (RDS_PTIE,RDS_NWELL) must never been in contact
|
||||
7 (RDS_PTIE,RDS_NWELL) must never been in contact
|
||||
8 (RDS_PTIE,RDS_NWELL) must never been in contact
|
||||
9 (RDS_PTIE,RDS_NWELL) must never been in contact
|
||||
10 (RDS_PTIE,RDS_NWELL) must never been in contact
|
||||
11 (RDS_PTIE,RDS_NWELL) must never been in contact
|
||||
12 (RDS_NDIF,RDS_NWELL) Manhatan distance min 7.5
|
||||
13 (RDS_NDIF,RDS_NWELL) must never been in contact
|
||||
14 (RDS_NDIF,RDS_NWELL) must never been in contact
|
||||
15 (RDS_NDIF,RDS_NWELL) must never been in contact
|
||||
16 (RDS_NDIF,RDS_NWELL) must never been in contact
|
||||
17 (RDS_NDIF,RDS_NWELL) must never been in contact
|
||||
18 (RDS_NDIF,RDS_NWELL) must never been in contact
|
||||
19 (RDS_PDIF) minimum width 2.
|
||||
20 (RDS_PDIF) minimum width 2.
|
||||
21 (RDS_PDIF) Manhatan distance min 3.
|
||||
22 (RDS_PDIF,RDS_PDIF) Manhatan distance min 3.
|
||||
23 (RDS_NDIF) minimum width 2.
|
||||
24 (RDS_NDIF) minimum width 2.
|
||||
25 (RDS_NDIF) Manhatan distance min 3.
|
||||
26 (RDS_NDIF,RDS_NDIF) Manhatan distance min 3.
|
||||
27 (RDS_PTIE) minimum width 2.
|
||||
28 (RDS_PTIE) minimum width 2.
|
||||
29 (RDS_PTIE) Manhatan distance min 3.
|
||||
30 (RDS_PTIE,RDS_PTIE) Manhatan distance min 3.
|
||||
31 (RDS_NTIE) minimum width 2.
|
||||
32 (RDS_NTIE) minimum width 2.
|
||||
33 (RDS_NTIE) Manhatan distance min 3.
|
||||
34 (RDS_NTIE,RDS_NTIE) Manhatan distance min 3.
|
||||
35 (ANY_N_DIF,ANY_P_DIF) Manhatan distance min 3.
|
||||
36 (ANY_N_DIF,ANY_P_DIF) must never been in contact
|
||||
37 (ANY_N_DIF,ANY_P_DIF) must never been in contact
|
||||
38 (ANY_N_DIF,ANY_P_DIF) must never been in contact
|
||||
39 (ANY_N_DIF,ANY_P_DIF) must never been in contact
|
||||
40 (ANY_N_DIF,ANY_P_DIF) must never been in contact
|
||||
41 (ANY_N_DIF,ANY_P_DIF) must never been in contact
|
||||
42 (RDS_POLY,ANY_N_DIF) Manhatan distance min 1.
|
||||
43 (RDS_POLY,NP_DIF) bad intersection
|
||||
44 (RDS_POLY) minimum width 1.
|
||||
45 (RDS_POLY) minimum width 1.
|
||||
46 (RDS_POLY) Manhatan distance min 2.
|
||||
47 (RDS_POLY,RDS_POLY) Manhatan distance min 2.
|
||||
48 (CHANNEL) Manhatan distance min 3.
|
||||
49 (CHANNEL,CHANNEL) Manhatan distance min 3.
|
||||
50 (RDS_POLY,CONT_DIFF) Manhatan distance min 2.
|
||||
51 (RDS_ALU1) minimum width 1.
|
||||
52 (RDS_ALU1) minimum width 1.
|
||||
53 (RDS_ALU1) Manhatan distance min 3.
|
||||
54 (RDS_ALU1,RDS_ALU1) Manhatan distance min 3.
|
||||
55 (RDS_ALU2) minimum width 2.
|
||||
56 (RDS_ALU2) minimum width 2.
|
||||
57 (RDS_ALU2) Manhatan distance min 3.
|
||||
58 (RDS_ALU2,RDS_ALU2) Manhatan distance min 3.
|
||||
59 (RDS_ALU3) minimum width 2.
|
||||
60 (RDS_ALU3) minimum width 2.
|
||||
61 (RDS_ALU3) Manhatan distance min 3.
|
||||
62 (RDS_ALU3,RDS_ALU3) Manhatan distance min 3.
|
||||
63 (RDS_ALU4) minimum width 2.
|
||||
64 (RDS_ALU4) minimum width 2.
|
||||
65 (RDS_ALU4) Manhatan distance min 3.
|
||||
66 (RDS_ALU4,RDS_ALU4) Manhatan distance min 3.
|
||||
67 (RDS_CONT,RDS_CONT) Manhatan distance min 3.
|
||||
68 (RDS_VIA,RDS_VIA) Manhatan distance min 4.
|
||||
69 (RDS_VIA2,RDS_VIA2) Manhatan distance min 4.
|
||||
70 (RDS_VIA3,RDS_VIA3) Manhatan distance min 4.
|
||||
71 (RDS_CONT) minimum width 1.
|
||||
72 (RDS_CONT) maximum length 1.
|
||||
73 (RDS_VIA) minimum width 1.
|
||||
74 (RDS_VIA) maximum length 1.
|
||||
75 (RDS_VIA2) minimum width 1.
|
||||
76 (RDS_VIA2) maximum length 1.
|
||||
77 (RDS_VIA3) minimum width 1.
|
||||
78 (RDS_VIA3) maximum length 1.
|
||||
79 (RDS_POLY,RDS_ACTIV) Manhatan distance min 1.
|
||||
80 (RDS_ALU5) minimum width 2.
|
||||
81 (RDS_ALU5) minimum width 2.
|
||||
82 (RDS_ALU5) Manhatan distance min 8.
|
||||
83 (RDS_ALU5,RDS_ALU5) Manhatan distance min 8.
|
||||
84 (RDS_ALU6) minimum width 2.
|
||||
85 (RDS_ALU6) minimum width 2.
|
||||
86 (RDS_ALU6) Manhatan distance min 8.
|
||||
87 (RDS_ALU6,RDS_ALU6) Manhatan distance min 8.
|
||||
88 (RDS_VIA4,RDS_VIA4) Manhatan distance min 9.
|
||||
89 (RDS_VIA5,RDS_VIA5) Manhatan distance min 9.
|
||||
90 (RDS_VIA4) minimum width 1.
|
||||
91 (RDS_VIA4) maximum length 1.
|
||||
92 (RDS_VIA5) minimum width 1.
|
||||
93 (RDS_VIA5) maximum length 1.
|
||||
94 (RDS_POLY2) minimum width 1.
|
||||
95 (RDS_POLY2) minimum width 1.
|
||||
96 (RDS_POLY2) Manhatan distance min 5.
|
||||
97 (RDS_POLY2,POLY2) Manhatan distance min 5.
|
||||
98 (RDS_POLY,RDS_POLY2) POLY2 must be enclosed by POLY of 5.
|
||||
99 (RDS_POLY,RDS_POLY2) POLY2 must be enclosed by POLY of 5.
|
||||
100 (RDS_POLY,RDS_POLY2) POLY2 must be enclosed by POLY of 5.
|
||||
101 (RDS_POLY,RDS_POLY2) POLY2 must be enclosed by POLY of 5.
|
||||
102 (RDS_POLY,RDS_POLY2) POLY2 must be enclosed by POLY of 5.
|
||||
103 (RDS_POLY,RDS_POLY2) POLY2 must be enclosed by POLY of 5.
|
||||
104 (RDS_POLY,RDS_POLY2) POLY2 must be enclosed by POLY of 5.
|
||||
END_DRC_COMMENT
|
||||
END_DRC_RULES
|
Loading…
Reference in New Issue