이번에는 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을 생성하고 지워준다.

+ Recent posts