-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathrun_fitter.cmd
150 lines (131 loc) · 3.54 KB
/
run_fitter.cmd
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
@echo off
set VAR_ROOT=%~dp0
if not defined VAR_FITTERDIR (
if exist "%VAR_ROOT%vendor\atmel.std" (
set VAR_FITTERDIR=%VAR_ROOT%\vendor
) else (
set VAR_FITTERDIR=C:\ATMEL_PLS_Tools\Prochip\pldfit
)
)
if not exist "%VAR_FITTERDIR%\atmel.std" (
echo Unable to locate Atmel fitters
exit /b 1
)
REM Process command line args
set VAR_DEVICE=ATF1508AS
set VAR_PACKAGE=PLCC84
set VAR_SPEED=15
set VAR_OPTS=
goto :getopts
:getoptsComplete
echo Name = %VAR_NAME%
echo Device = %VAR_DEVICE%
echo Package = %VAR_PACKAGE%
echo Speed = %VAR_SPEED%
echo Options = %VAR_OPTS%
REM # Atmel foldback = Altera shareable expander
REM # Atmel cascade = Altera parallel expander
REM # Fitter Defaults
REM Device_name = PQFP100
REM Tech_name = ATF1508AS
REM Package_type = PQFP
REM Preassignment = try
REM Security_mode = OFF
REM Pin-Keeper = OFF
REM supporter = ABEL
REM optimize = ON
REM Xor_synthesis = OFF
REM Foldback_logic = OFF
REM Cascade_logic = OFF
REM Output_fast = ON
REM SSTL_input = off
REM Power down pin 1 = OFF
REM Power down pin 2 = OFF
REM power_reset = OFF
REM JTAG = ON
REM TDI pullup = OFF
REM TMS pullup = OFF
REM MC_power = OFF
REM Open_collector = OFF
REM ITD0 = ON
REM ITD1 = ON
REM ITD2 = ON
REM Fast_inlatch = off
REM Latch_synthesis = off
REM Push_gate = on
REM Verilog_sim = off
REM VHDL_sim = off
REM Out_Edif = off
REM Logic Doubling = off
set VAR_FITTER=fit%VAR_DEVICE:~3,4%.exe
findstr /R /C:"//PIN:" "%VAR_NAME%.v">"%VAR_NAME%.temp.pin"
(for /f "usebackq tokens=* delims=//PIN: " %%I in ("%VAR_NAME%.temp.pin") do echo %%I) >%VAR_NAME%.pin
del /f /q "%VAR_NAME%.temp.pin">nul
if exist "%VAR_NAME%.fit" del /f /q "%VAR_NAME%.fit">nul
echo %VAR_FITTERDIR%\%VAR_FITTER% ^
-i "%VAR_NAME%.edif" ^
-ifmt edif ^
-o "%VAR_NAME%.jed" ^
-lib "%VAR_FITTERDIR%\aprim.lib" ^
-tech "%VAR_DEVICE%" ^
-device "%VAR_PACKAGE%" ^
-tpd "%VAR_SPEED%" ^
%VAR_OPTS%
%VAR_FITTERDIR%\%VAR_FITTER% ^
-i "%VAR_NAME%.edif" ^
-ifmt edif ^
-o "%VAR_NAME%.jed" ^
-lib "%VAR_FITTERDIR%\aprim.lib" ^
-tech "%VAR_DEVICE%" ^
-device "%VAR_PACKAGE%" ^
-tpd "%VAR_SPEED%" ^
%VAR_OPTS%
findstr /R /C:"^ " "%VAR_NAME%.fit"
echo.
echo Logic Array Block Macro Cells I/O Pins Foldbacks TotalPT FanIN Cascades
findstr /R /C:"^[A-H]:" "%VAR_NAME%.fit"
echo.
findstr /R /C:"^Total" "%VAR_NAME%.fit"
echo.
findstr /R /C:"^$Device" "%VAR_NAME%.fit"
echo.
exit /b 0
:PrintUsage
echo "Usage: $0 [-h] [-d <device>] [-p <package>] [-s <speed>] <name> [ fitter options ]"
echo
echo "Defaults:"
echo " <device> = ${DEVICE}"
echo " <package> = ${PACKAGE}"
echo " <speed> = ${SPEED}"
echo
echo "additional options are passed through to the fitter"
exit /b 1
:getopts
if /I "%~1" == "-h" ( call :PrintUsage
) else if /I "%~1" == "--h" ( call :PrintUsage
) else if /I "%~1" == "/h" ( call :PrintUsage
) else if /I "%~1" == "-d" ( set "VAR_DEVICE=%~1
) else if /I "%~1" == "--d" ( set VAR_DEVICE=%~1
) else if /I "%~1" == "/d" ( set VAR_DEVICE=%~1
) else if /I "%~1" == "-p" ( set VAR_PACKAGE=%~1
) else if /I "%~1" == "--p" ( set VAR_PACKAGE=%~1
) else if /I "%~1" == "/p" ( set VAR_PACKAGE=%~1
) else if /I "%~1" == "-s" ( set VAR_SPEED=%~1
) else if /I "%~1" == "--s" ( set VAR_SPEED=%~1
) else if /I "%~1" == "/s" ( set VAR_SPEED=%~1
) else (
set VAR_NAME=%~1
shift
goto :getoptsPassthrough
)
shift
goto :getopts
:getoptsPassthrough
if /I "%~1" == "" goto :getoptsComplete
if not defined VAR_OPTS (
set VAR_OPTS=%1
) else (
set VAR_OPTS=%VAR_OPTS% %1
)
shift
goto :getoptsPassthrough