1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280
|
include ../../etc/alliance-env.mk
# --------------------------------------------------------------------
# Standarts binaries.
LS = /bin/ls
CD = PATH=$(STANDART_BIN); cd
CP = PATH=$(STANDART_BIN); cp -f
LN = PATH=$(STANDART_BIN); ln
MV = PATH=$(STANDART_BIN); mv
RM = PATH=$(STANDART_BIN); rm -f
SED = PATH=$(STANDART_BIN); sed
AWK = PATH=$(STANDART_BIN); gawk
CAT = PATH=$(STANDART_BIN); cat
MAKE = PATH=$(STANDART_BIN); make
ECHO = /bin/echo
# Alliance paths and formats settings.
GENERAT_LO = vst
EXTRACT_LO = al
CARAC_LO = spi
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_LIB3 = $(CELLS_TOP)/rflib
CATA_LIB = .:$(CATA_LIB0):$(CATA_LIB1):$(CATA_LIB2):$(CATA_LIB3)
TARGET_LIB = $(CELLS_TOP)/sxlib
FPGEN_LIB = $(CATA_LIB0):$(CATA_LIB1)
TECHNO_NAME = local-cmos
CARAC_TECHNO_NAME = local-cmos-035
CARAC_SPI_MODEL = ./model
SPI_MODEL = $(SYSCONF_TOP)/spimodel.cfg
RDS_TECHNO_REAL = ./local-cmos-035.rds
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_NAMEDNODES="true"; export MBK_SPI_NAMEDNODES; \
RDS_TECHNO_NAME=$(RDS_TECHNO_REAL); export RDS_TECHNO_NAME; \
RDS_IN=cif; export RDS_IN; \
RDS_OUT=cif; export RDS_OUT; \
MBK_CATA_LIB=$(CATA_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
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; \
FPGEN_LIB=$(FPGEN_LIB); export FPGEN_LIB; \
RDS_TECHNO_NAME=$(TECHNO_NAME).rds; export RDS_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=$(TECHNO_NAME).rds; export RDS_TECHNO_NAME
# MBK caracterisation.
MBK_CARAC_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=$(CARAC_LO); export MBK_OUT_LO; \
MBK_SPI_MODEL=$(CARAC_SPI_MODEL); export MBK_SPI_MODEL; \
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_IN=cif; export RDS_IN; RDS_OUT=cif; export RDS_OUT;\
RDS_TECHNO_NAME=$(CARAC_TECHNO_NAME).rds; export RDS_TECHNO_NAME
# --------------------------------------------------------------------
# Alliance binaries & environment.
GRAAL = $(MBK_GENERAT_ENV); GRAAL_TECHNO_NAME=$(TECHNO_NAME).graal; export GRAAL_TECHNO_NAME;$(ALLIANCE_BIN)/graal
ASIMUT = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/asimut -zd -bdd
# ASIMUT = $(MBK_GENERAT_ENV); /users/enseig/mips4/new_asimut -zd -bdd
FLATBEH = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/flatbeh
FLATLO = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/flatlo
LYNX = $(MBK_EXTRACT_ENV); $(ALLIANCE_BIN)/cougar -v
LYNX3 = $(ENV_COUGAR_SPI); $(ALLIANCE_BIN)/cougar -v
DRUC = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/druc
LVX = $(MBK_EXTRACT_ENV); $(ALLIANCE_BIN)/lvx
PROOF = $(MBK_EXTRACT_ENV); $(ALLIANCE_BIN)/proof
RING = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/ring
DPGEN = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/genlib --keep-exec --verbose
OCP = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/ocp -v -gnuplot
OCR = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/ocr
NERO = $(MBK_GENERAT_ENV); $(ALLIANCE_BIN)/nero -V
S2R = $(MBK_CARAC_ENV); $(ALLIANCE_BIN)/s2r -v
GENPAT = $(ALLIANCE_BIN)/genpat
GENLIB = $(MBK_GENERAT_ENV);$(ALLIANCE_BIN)/genlib
SYF = $(MBK_GENERAT_ENV);$(ALLIANCE_BIN)/syf -a -CVE
BOOM = $(MBK_GENERAT_ENV);$(ALLIANCE_BIN)/boom -A -V -l 2 -s
BOOG = $(MBK_GENERAT_ENV);$(ALLIANCE_BIN)/boog
LOON = $(MBK_GENERAT_ENV);$(ALLIANCE_BIN)/loon
SCAPIN = $(MBK_GENERAT_ENV);$(ALLIANCE_BIN)/scapin -VRB
MIPS_ASM = $(ALLIANCE_BIN)/mips_asm
# pour un bench (test en cours de creation on pourra l'enlever apres)
BENCH = ./bench.sh add000 CONF
# pour tester l'ensemble des programmes (confirmation finale)
ALLBENCH = ./allbench.sh DEFINITIF
# /*------------------------------------------------------------\
# | |
# | Alliance Tools |
# | |
# \------------------------------------------------------------*/
# /*------------------------------------------------------------\
# | |
# | Environement Variables |
# | |
# \------------------------------------------------------------*/
# /*------------------------------------------------------------\
# | |
# | Unix Command |
# | |
# \------------------------------------------------------------*/
# /*------------------------------------------------------------\
# | |
# | |
# | |
# \------------------------------------------------------------*/
mips_chip.cif : mips_chip.ap
$(S2R) -r mips_chip mips_chip
mips_chip_t.al : mips_chip.ap
$(LYNX) -t -ac -ar mips_chip mips_chip_t
mips_core_t.al : mips_core.ap
$(LYNX) -c -t -ac -ar mips_core mips_core_t
mips_chip.ap : mips_core.ap mips_chip.vst mips_chip.rin mips_core.vst mips_core.al
$(CP) CATAL_VST CATAL
$(RING) mips_chip mips_chip
mips_core.al : mips_core.ap
$(CP) CATAL_VST CATAL
$(LYNX) -c -f mips_core mips_core
$(LVX) vst al mips_core mips_core -f
mips_core.spi : mips_core.ap
$(LYNX3) -ac -f mips_core mips_core
mips_core_et.spi : mips_core.ap
$(LYNX3) -ac -t mips_core mips_core_et
# mips_core.ap : mips_core_p.ap mips_ctl.vst
# $(CP) CATAL_VST CATAL
# $(OCR) -P mips_core_p -L mips_core -O mips_core_p_ocr -v -w 1 -l 5 -i 100
# cat mips_core_p_ocr.ap | sed s/core_p_ocr/core/ > mips_core.ap
# $(DRUC) mips_core
mips_core.ap : mips_core_p.ap mips_ctl.vst
$(CP) CATAL_VST CATAL
$(NERO) -6 -p mips_core_p mips_core mips_core_p_nero
cat mips_core_p_nero.ap | sed s/core_p_nero/core/ > mips_core.ap
$(DRUC) mips_core
mips_core_p.ap : mips_core_place.ap mips_ctl.vst mips_core.ioc
$(CP) CATAL_VST CATAL
$(OCP) -partial mips_core_place -ioc mips_core mips_core mips_core_p
mips_core_place.ap : mips_core.c mips_dpt.ap
$(DPGEN) mips_core
mips_ctl.vst : mips_ctl_loon.vst mips_ctl.path
$(SCAPIN) -P mips_ctl.scapin mips_ctl_loon mips_ctl mips_ctl
mips_ctl_loon.vst : mips_sts.vst mips_seqo.vst mips_ctl.lax
$(CP) CATAL_CTL CATAL
$(FLATLO) -r mips_ctl_nt mips_ctl_flat
$(LOON) mips_ctl_flat mips_ctl_loon -l mips_ctl
mips_seqo.vst : mips_seqo_optim.vbe mips_ctl.lax
$(BOOG) mips_seqo_optim mips_seqo -l mips_ctl
mips_sts.vst : mips_sts_optim.vbe mips_ctl.lax
$(BOOG) mips_sts_optim mips_sts -l mips_ctl
mips_seqo_optim.vbe : mips_seqo.vbe
$(BOOM) mips_seqo mips_seqo_optim
mips_sts_optim.vbe : mips_sts.vbe
$(BOOM) mips_sts mips_sts_optim
mips_bench : mips_cpu.pat mips_cpu.vst
$(BENCH)
@echo "<---------- resultat a regarder dans CONF ---------------->"
mips_dpt.ap model_shift.ap : mips_dpt.c
$(DPGEN) mips_dpt
mips_seqo.vbe : mips_seq.fsm
$(SYF) mips_seq mips_seqo
mips_allbench :
$(CP) CATAL_VST CATAL
$(ALLBENCH)
@echo "<---------- resultat a regarder dans DEFINITIF ---------------->"
mips_test : mips_ctl.vst mips_scan.pat
$(ASIMUT) -p 50 mips_cpu mips_scan resultat 2> ajeter
mips_scan.pat : mips_scan.c
$(GENPAT) mips_scan
graal :
$(GRAAL)
clean :
$(RM) mips_dpt.vst;
$(RM) *.dtx;
$(RM) *.ttx;
$(RM) *.drc;
$(RM) *.rcx;
$(RM) *.cif;
$(RM) *.spi;
$(RM) *.rep;
$(RM) *.ap;
$(RM) *.al;
$(RM) mips_ctl.vst;
$(RM) mips_ctl_flat.vst;
$(RM) mips_ctl_loon.vst;
$(RM) res.pat
$(RM) resultat.pat
$(RM) res2
$(RM) mips_sts.xsc
$(RM) mips_sts.vst
$(RM) mips_sts_optim.vbe
$(RM) mips_seqo_optim.vbe
$(RM) machin
$(RM) bench/*.good
$(RM) CONF
$(RM) CATAL
$(RM) dat*
$(RM) DEFINITIF
$(RM) mips_seqo*
$(RM) *.xsc
$(RM) *.gpl
$(RM) *.gds
$(RM) model*
$(RM) alldata.dat
|