include ../alliance-examples/etc/alliance-env.mk # # /------------------------------------------------------------------\ # | Macros definitions | # \------------------------------------------------------------------/ # # -------------------------------------------------------------------- # Standarts binaries. LS = PATH=$(STANDART_BIN); ls CD = PATH=$(STANDART_BIN); cd CP = PATH=$(STANDART_BIN); cp LN = PATH=$(STANDART_BIN); ln MV = PATH=$(STANDART_BIN); mv RM = PATH=$(STANDART_BIN); rm SED = PATH=$(STANDART_BIN); sed CAT = PATH=$(STANDART_BIN); cat TOUCH = PATH=$(STANDART_BIN); touch GREP = PATH=$(STANDART_BIN); grep ECHO = PATH=$(STANDART_BIN); echo # Alliance paths and formats settings. GENERAT_LO = vst EXTRACT_LO = al GENERAT_PH = ap EXTRACT_PH = ap GENERAT_SP = . EXTRACT_SP = . CATA_LIB0 = $(CELLS_TOP)/sxlib CATA_LIB1 = $(CELLS_TOP)/dp_sxlib CATA_LIB2 = $(CELLS_TOP)/padlib CATA_LIB = .:$(CATA_LIB0):$(CATA_LIB1):$(CATA_LIB2) TARGET_LIB = $(CATA_LIB0) RDS_TECHNO = $(SYSCONF_TOP)/cmos.rds GRAAL_TECHNO = $(SYSCONF_TOP)/cmos.graal MBK_GENERAT_ENV = MBK_TARGET_LIB=$(TARGET_LIB); export MBK_TARGET_LIB; \ MBK_WORK_LIB=.; export MBK_WORK_LIB; \ MBK_CATA_LIB=$(CATA_LIB); export MBK_CATA_LIB; \ MBK_CATAL_NAME=CATAL; export MBK_CATAL_NAME; \ MBK_OUT_LO=$(GENERAT_LO); export MBK_OUT_LO; \ MBK_OUT_PH=$(GENERAT_PH); export MBK_OUT_PH; \ MBK_IN_LO=$(GENERAT_LO); export MBK_IN_LO; \ MBK_IN_PH=$(GENERAT_PH); export MBK_IN_PH; \ MBK_SEPAR=$(GENERAT_SP); export MBK_SEPAR; \ MBK_VDD=vdd; export MBK_VDD; \ MBK_VSS=vss; export MBK_VSS; \ RDS_TECHNO_NAME=$(RDS_TECHNO); export RDS_TECHNO_NAME; \ GRAAL_TECHNO_NAME=$(GRAAL_TECHNO); export GRAAL_TECHNO_NAME # MBK extracting environment. MBK_EXTRACT_ENV = MBK_TARGET_LIB=$(TARGET_LIB); export MBK_TARGET_LIB; \ MBK_WORK_LIB=.; export MBK_WORK_LIB; \ MBK_CATA_LIB=$(CATA_LIB); export MBK_CATA_LIB; \ MBK_CATAL_NAME=CATAL; export MBK_CATAL_NAME; \ MBK_OUT_LO=$(EXTRACT_LO); export MBK_OUT_LO; \ MBK_OUT_PH=$(EXTRACT_PH); export MBK_OUT_PH; \ MBK_IN_LO=$(EXTRACT_LO); export MBK_IN_LO; \ MBK_IN_PH=$(EXTRACT_PH); export MBK_IN_PH; \ MBK_SEPAR=$(EXTRACT_SP); export MBK_SEPAR; \ MBK_VDD=vdd; export MBK_VDD; \ MBK_VSS=vss; export MBK_VSS; \ RDS_TECHNO_NAME=$(RDS_TECHNO); export RDS_TECHNO_NAME;\ GRAAL_TECHNO_NAME=$(GRAAL_TECHNO); export GRAAL_TECHNO_NAME # -------------------------------------------------------------------- # Alliance binaries & environment. BOOM = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/boom -V BOOG = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/boog LOON = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/loon ASIMUT1 = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/asimut ASIMUT2 = $(MBK_EXTRACT_ENV); $(ALLIANCE_BIN)/asimut COUGAR = $(ALLIANCE_BIN)/cougar DRUC = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/druc LVX = $(MBK_EXTRACT_ENV); $(ALLIANCE_BIN)/lvx PROOF = $(MBK_EXTRACT_ENV); $(ALLIANCE_BIN)/proof GENLIB = $(MBK_GENERAT_ENV);$(ALLIANCE_BIN)/genlib GENPAT = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/genpat OCP = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/ocp NERO = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/nero RING = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/ring GRAAL = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/graal XSCH = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/xsch XPAT = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/xpat # # /------------------------------------------------------------------\ # | Rules | # \------------------------------------------------------------------/ # all: nb_transistors ctl_part: amd2901_ctl.vst view_ctl_logic: amd2901_ctl.vst $(XSCH) -l amd2901_ctl dpt_part: amd2901_dpt.ap amd2901_dpt.vst view_dpt_physic: amd2901_dpt.ap $(GRAAL) -l amd2901_dpt chip_part: amd2901_chip.ap view_chip_physic: amd2901_chip.ap $(GRAAL) -l amd2901_chip chip_verification: druc_chip lvx_chip test_chip_final.pat view_chip_simulation: test_chip_final.pat $(XPAT) -l test_chip_final amd2901_core.vst amd2901_core_place.ap: amd2901_core.c amd2901_ctl.vst amd2901_ctl.vbe amd2901_dpt.vst amd2901_dpt.ap $(GENLIB) -v amd2901_core amd2901_chip.vst: amd2901_core.vst amd2901_chip.c $(GENLIB) -v amd2901_chip test_chip.pat: amd2901_chip.vst pattern.pat $(ASIMUT1) -zd amd2901_chip pattern test_chip pattern.pat: pattern.c $(GENPAT) -v pattern amd2901_dpt.ap amd2901_dpt.vst: amd2901_dpt.c $(GENLIB) -v amd2901_dpt amd2901_ctl_boom.vbe : amd2901_ctl.vbe $(BOOM) amd2901_ctl amd2901_ctl_boom amd2901_ctl_boog.vst : amd2901_ctl_boom.vbe amd2901_ctl.lax $(BOOG) amd2901_ctl_boom amd2901_ctl_boog amd2901_ctl amd2901_ctl.vst : amd2901_ctl_boog.vst $(LOON) amd2901_ctl_boog amd2901_ctl amd2901_core_p.ap: amd2901_core.vst amd2901_core_place.ap amd2901_core.ioc $(OCP) -v -gnuplot -partial amd2901_core_place -ring -ioc amd2901_core amd2901_core amd2901_core_p #$(OCP) -v -gnuplot -partial amd2901_core_place -ring amd2901_core amd2901_core_p druc_ocp: amd2901_core_p.ap $(DRUC) amd2901_core_p $(TOUCH) druc_ocp amd2901_core.ap: druc_ocp $(NERO) -v -2 -p amd2901_core_p amd2901_core amd2901_core amd2901_core.al: amd2901_core.ap $(MBK_EXTRACT_ENV); $(COUGAR) -v -f amd2901_core amd2901_core lvx_core: amd2901_core.al amd2901_core.vst $(LVX) al vst amd2901_core amd2901_core -f $(TOUCH) lvx_core druc_core: amd2901_core.ap $(DRUC) amd2901_core $(TOUCH) druc_core amd2901_chip.ap: test_chip.pat amd2901_core.ap amd2901_chip.rin amd2901_chip.vst druc_core lvx_core $(MBK_GENERAT_ENV); $(RING) amd2901_chip amd2901_chip amd2901_chip.al: amd2901_chip.ap $(MBK_EXTRACT_ENV); $(COUGAR) -v -f amd2901_chip amd2901_chip lvx_chip: amd2901_chip.al amd2901_chip.vst $(LVX) al vst amd2901_chip amd2901_chip -f $(TOUCH) lvx_chip druc_chip: amd2901_chip.ap $(DRUC) amd2901_chip $(TOUCH) druc_chip test_chip_final.pat: pattern.pat druc_chip lvx_chip $(ASIMUT2) -zd amd2901_chip pattern test_chip_final nb_transistors: amd2901_chip_tr.al amd2901_core_tr.al @$(ECHO) "Number of transistors for the core: ";\ $(GREP) -c "^T" amd2901_core_tr.al @$(ECHO) "Number of transistors for the chip: ";\ $(GREP) -c "^T" amd2901_chip_tr.al amd2901_chip_tr.al: test_chip_final.pat $(MBK_EXTRACT_ENV); $(COUGAR) -v -t amd2901_chip amd2901_chip_tr amd2901_core_tr.al: lvx_core druc_core $(MBK_EXTRACT_ENV); $(COUGAR) -v -t amd2901_core amd2901_core_tr graal: $(GRAAL) -install clean : rm -f Makefile-* \ amd2901_core.vst \ amd2901_chip.vst \ amd2901_ctl.vst \ amd2901_dpt.vst \ amd2901_ctl_boog.vst \ amd2901_ctl_boom.vbe \ *.ap \ res.pat \ *.frr \ *.log \ *.drc \ *.gds \ *.def \ *.gpl \ *.xsc \ *.al \ *.pat \ *~ \ *cif \ lvx_core druc_core \ lvx_chip druc_chip \ druc_ocp \ alldata* \ model_*