이번에는 batch file에 대해서 알아보기 위해 'run xdlrc_convert.bat' file 분석을 해보겠습니다.
setlocal
명령어로 local variation을 사용한다고 설정한다.
set /p ans=Run xdlrc_convert for all Virtex-5 devices? [y/n]
명령어는 ans라는 variable에 값을 받을 것인데, /p 옵션을 통해서 Run xdlrc_convert for all Virtex-5 devices? [y/n] 이라는 글도 같이 뜨도록 만들어 주는 것이다.
if not "%ans%"=="y" goto end
이것은 ans라는 variable에 y가 아니면 끝내는 명령어이다.
set V5DEVICES=xc5vfx30tff665
는 V5DEVICES라는 variable에 xc5vfx30tff665를 넣어주는 것이다.
set V5DEVICES=%V5DEVICES% xc5vfx70tff665
명령어는 위에서 V5DEVICES variable에 xc5vfx30tff665가 입력되었는데, 그 뒤에 xc5vfx70tff665도 붙여주는 것이다.
그럼 결과적으로 V5DEVICES variable 내부에는 'xc5vfx30tff665 xc5vfx70tff665'가 들어있게 된다.
아래에서도 계속해서 비슷하게 해서 V5DEVICES 내부에 'xc5vfx30tff665 xc5vfx70tff665 xc5vfx70tff1136' 이런식으로 들어가게 된다.
이 아래에는 이번에 새로 xdl 명령어를 추가하기 위해 추가한
call C:\Xilinx\14.7\ISE_DS\settings64.bat
명령어를 입력해주게 되는데, 이것은 C:\Xilinx\14.7\ISE_DS\settings64.bat 파일을 실행시켜주는 것이다.
cd /D "%~dp0..\data"
명령어를 통해서 ~~\bil-master\data로 명령어를 실행시킬 path를 설정한다.
'~dp0'는 처음에 이 batch file을 실행시킬 때의 argument에 대한 것인데, 0번 째 argument로 현재 directory path를 들고 온 것이다. 그래서 ~dp0는 ~\bil-master\scripts\를 의미한다.
xdl -report -pips -all_cons %%i
명령어를 통해서 V5DEVICES에 넣어놓았던 xc5vfx30tff665 같은 특정 보드들을 하나씩 가져와서 해당 ISE 명령어를 돌린다.
이 결과로 ~\bil-master\data\에 .xdlrc file이 만들어진다.
(그런데 여기서 모든 보드를 위한 것들은 안만들어진다. 이유는 잘 모르겠는데 Webpack version이라 그런 것일 수도 있다는 생각을 했다. 일단 한개의 보드 용으로만 돌아가면 될 것이라 생각하여 지금은 넘어갔다)
(+. 옆에서 win10으로 했을 때는 동일하게 했는데 다른 보드도 성공했다.)
"%~dp0..\bin\win32\MSVC 2008\xdlrc_convert\Release\xdlrc_convert" %%i.xdlrc
위의 명령어는 번역하면 아래와 같다.
~\bil-master\bin\win32\MSVC 2008\xdlrc_convert\Release\xdlrc_convert.exe xc5vfx30tff665.xdlrc
여기서 xc5vfx30tff665.xdlrc는 예제이다. 이것은 for문이 돌아갈 때 마다 다음 보드명으로 바뀔 것이다. (xc5vfx30tff665.xdlrc 다음 xc5vfx70tff665.xdlrc 이런 식으로)
이 명령어의 결과로는 ~.xdlrc file을 이용하여 ~.dev file을 ~\bil-master\data에 만들어준다.
이것이 논문에서 봤던 ~.xdlrc file은 너무 커서 간략화시킨 file을 만들어준 것이다.
del %%i.xdlrc
이 명령어를 이용해서 ~.xdlrc file을 지워주었다. ~.xdlrc file은 너무 커서 ~.dev file을 생성하고 지워준다.
'Research > FPGA Security' 카테고리의 다른 글
[Run-Code] "BIL: A TOOL-CHAIN FOR BITSTREAM REVERSE-ENGINEERING" (0) | 2018.04.04 |
---|