[팁] 테터툴즈에서 Verilog용 SyntaxHighlighter 사용하기

조만간 Verilog 강좌를 시작할 예정인데, 그에 앞서 블로그에 Verilog Syntax Highlighter를 설치하였습니다.

먼저 Syntax Highligher가 뭔지 보여드리면,

글을 쓸때 요렇게 입력하면,

요렇게 예쁘게 보여주는 것입니다.

SyntaxHighligher는 [이곳]에서 다운받으시면 됩니다. 저는 최신버젼인 3.0.83을 받았습니다.
여러가지 언어를 지원하지만 Verilog는 기본적으로 지원되는 언어가 아닙니다. 하지만, Tyreal이란 분이 친절히 [Verilog용 Brush]를 만들어놓았습니다. 모두 저장해둡니다.

FTP로 두 파일을 모두 블로그에 올려두고, Telnet/rlogin으로 블로그 계정이 접속하여 압축을 풉니다.
편의상 tt(테터툴즈 기본 디렉토리)/plugins/SyntaxHighlight 에 압축을 풉니다.

$ cd tt/plugins
$ unzip syntaxhighlighter_3.0.83.zip
$ mv syntaxhighlighter_3.0.83 SyntaxHighlight
$ cd SyntaxHighlight
$ ls
LGPL-LICENSE  MIT-LICENSE  compass  index.html  scripts  src  styles  tests

Verilog용 Brush파일 shBrushVerilog.js를 scripts 디렉토리에 저장합니다.

관리자로 접속하여 ‘스킨관리’메뉴에서 skin.html을 수정합니다.
</head> 바로 앞에다가 아래 내용을 추가합니다.

<!-- Include required JS files -->
<script type="text/javascript"
src="/tt/plugins/SyntaxHighlight/styles/shCore.js"></script>

<!--
  At least one brush, here we choose JS. You need to include a brush
for every
  language you want to highlight
-->
<script type="text/javascript"
src="/tt/plugins/SyntaxHighlight/scriptss/shBrushJScript.js"></script>

<!-- Include *at least* the core style and default theme -->
<link href="/tt/plugins/SyntaxHighlight/styles/shCore.css"
rel="stylesheet" type="text/css" />
<link href="/tt/plugins/SyntaxHighlight/styles/shThemeDefault.css"
rel="stylesheet" type="text/css" />

그리고 skin.html의 제일 아래부분 </body>바로 앞에 아래 내용을 추가합니다.

<!-- Finally, to actually run the highlighter, 
you need to include this JS on your page -->
<script type="text/javascript">
    SyntaxHighlighter.all()
</script>

그리고 글을 쓸때 Verilog 코드의 앞뒤에 <pre class=”brush:verilog”>와 </pre>를 입력하면 됩니다.

Computer Architecture 공개 강의 추천

1년 전 David Harris교수의 강의자료를 추천드린 적이 있었는데, 오늘 우연히 또 발견한 강의가  상당히 좋아서 추천드립니다.

인도 IIT의 S. Raman교수의 컴퓨터 구조론 동영상 강의입니다. (따라서 인도식 영어 엑센트는 감안하시고 보셔야합니다)
http://nptel.iitm.ac.in/video.php?courseId=1050

Flip-flop보다 마이크로아키텍쳐를 먼저 가르치는 상식 파괴의 접근법이 놀랍습니다. 그리고, Textbook없이 모든 그림을 직접 그리면서 설명하는 것도 멋지군요. 슥슥 컴퓨터 구조를 그리면서 별것 아니라는 듯 가르치는게 KAIST 조규형 교수님을 떠올립니다.

Raman교수의 Datapath 구조 강의 중

제가 작년에 사용했던 강의 자료 중

Youtube 검색 중 저 Datapath그림이 썸네일에 눈에 띄어서 살펴본 것인데요. 작년에 제가 충남대에서 강의할때 이해를 돕기위해 고민해서 만든 자료와 상당히 유사합니다. 같은 접근방식을 사용한다는게 반가웠고, 한학기 컴퓨터 구조 강의가 모두 제가 추구하는 방식으로 설명되어있을 것을 생각하니 벌써 행복해지네요. 아직 몇시간 분량 밖에 못보았는데 틈틈이 다 봐야겠습니다.

NPTel이 무엇인가 찾아보니 인도 정부에서 지원하는 “국가 기술향상 교육 프로그램”이라고 합니다.
다른 과목에 대한 강의도 공개되어있습니다. (모두 동영상 강의가 있는 것은 아니더군요)
http://nptel.iitm.ac.in/courses.php?branch=Comp

내친김에 공개 강의 정보를 검색해보았더니 잘 정리해 둔 글이 있네요.
http://blog.naver.com/csps2010/130093140514

국내에도 KOCW라는 싸이트에 공개 강의가 많이 있습니다. 최근 TED/TEDx로 인해 공개 강의에 관심이 많아지는 것 같습니다.

이제 의지만 있다면 인터넷에 공개된 강의자료 만으로도 상당한 수준의 지식을 얻을 수 있을 것 같습니다. 저도 유용한 자료들을 찾아 틈틈히 공부를 하고 또 공유해야겠다는 다짐을 해봅니다.

집적회로설계 종강

짧고도 긴 한학기 수업이 끝났습니다.

좀 버릇 없는 생각이겠지만 학교에 다니는 동안 교수님들을 보며 “왜 저렇게 밖에 못가르치는 걸까”라는 생각을 종종 했습니다. 반면 “어떻게 저런 강의를 할 수 있을까” 감동을 받은 적도 있습니다만 매우 드문 경우였습니다.

그동안 일회성의 강의나 세미나는 많이 해보았습니다만, 한 학기 내내 수업을 맡은 것은 처음이었습니다. 대다수의 교수들이 강의를 대충하는 이유를 알 수 있더군요. ^^;; 월,화,수,금,월,화,수,금 어찌나 금요일이 빨리 돌아오는지…

여러과제를 동시에 수행하는 회사 생활을 하면서 강의를 한 다는 것이 사실 무리였지만, 그래도 참 보람있는 시간이었습니다. 첫번째 제자분들의 도움으로 수업을 잘 마무리 지을 수 있어서 고마웠습니다.

처음 계획했던 것 만큼 전달하지 못하여 아쉬움도 많이 남습니다만, 그래도 어느정도 목표는 이루었습니다. 어떤 형태로든 학생분들에게 motivation을 제공하고 저 스스로도 얻고자 하는 것이 가장 중요한 부분이었는데 다행히 이부분에 대해선 여러분들과 공감을 나눌 수 있었던 것 같습니다.
개인적으로는 인생(?)을 뒤돌아보는 중요한 계기가 되었습니다.

값진 인연이었고 앞으로 어디서든지 또 뵙겠습니다. ^^

p.s. 학교 다닐 때도 거의 안해 본 종강파티였는데, 정말 즐거운 시간이었습니다. 감사합니다.
p.s. 제때 못올린 강의자료들은 홈페이지를 통해 계속 A/S하겠습니다.

무료 Verilog Simulator – Icarus

gEDAGPL을 따르는 EDA툴킷 개발 프로젝트로 2002년에 시작되어 지금까지 꾸준히 업데이트가 되고 있으며 오픈소스프로그램으로는 높은 완성도를 갖고 있다.

http://www.gpleda.org/

이중에서도 Icarus Verilog Simulator는 무료로 사용할 수 있는 시뮬레이터 중에 가장 유명하다. gEDA 프로젝트도 Stephen William이 개발한 Icarus로 부터 시작되었다.

오픈소스프로그램들은 직접 컴파일을 해서 사용하는 번거로움이 있지만 다행히 Icarus와 gtkwave(waveform view)를 간단히 설치할 수 있는 intall package가 있으며 아래링크에서 받을 수 있다.

iverilog-0.9.1_setup.exe [5.33MB]

설치과정
1. iverilog-0.9.1_setup.exe실행, Next

2. License Agreement에 동의(필수), Next

3. 설치위치 변경(선택). 기본 값인 “C:\Program Files\Icarus Verilog” 대신 “C:\Icarus”입력.
변경하지 않을 경우 환경변수의 PATH값을 “c:\progra~1\icarus~1\bin”으로 변경해야함.
(환경변수 변경 방법은 10번 과정 참조)

4. waveform view인 GTKWave설치 (필수)

5. 시작메뉴폴더 생성 (선택)

6. 바탕화면 아이콘 추가 (선택)

7. 설치준비완료

8. 설치

9. 설치 완료. 환경변수 추가 선택(필수)

10. 환경 변수 설정. 3번과정대로 설치위치를 변경하지 않고 긴 이름의 디렉토리를 사용할 경우는 아래와 같이 직접 환경변수를 설정해주어야 정상적으로 사용이 가능하다.
“C:\Program Files\Icarus Verilog Simulator\bin” 부분을 “C:\progra~1\icarus~1\bin”과 같이 변경하여 저장한다.

11. Command창 실행. ‘시작->실행’ 메뉴 실행후 ‘cmd’, 확인

12. 디렉토리 변경후 Icarus실행.
icarus가 설치된 디렉토리로 이동 (cd c:\icarus) 후
예제파일인 lfsr16.v실행
iverilog lfsr16.v <enter>
vvp a.out <enter>
gtkwave <enter>

13. waveform확인 (결과파일’dump.vcd’ 로드)

14. waveform확인 (신호선택)