Tech
-
Verilog Simulation 이해하기 - Non-blocking과 Blocking assigment의 순서Tech/Verilog 2013. 10. 8. 20:10
Verilog Simulation은 Cycle-accurate Simulation이 가능하다는 장점이 있는 반면, 같은 time step T에 해당하는 모든 event가 동시에 수행된다는 점에서 복잡하기도 하다. 특히 순차적으로 동작하는 blocking statements와 동시에 동작하는 non-blocking statement가 섞여있으면 누가 더 먼저 실행되나? 헷갈리게 된다. 이렇게 Verilog Simulation 상의 Event 처리 순서가 궁금할 때, Verilog Simulation Refernce Model을 참조해서 읽어보면 애매한 부분들이 어느정도 해결된다.본 포스팅에서는 바로 그 Verilog Simulation Reference Model 및 동작 순서에 대해서 간략히 정리하려고 ..
-
[Verilog] 합성가능한 Verilog를 위한 Nonblocking assign 잘 사용하기Tech/Verilog 2013. 10. 7. 22:53
Verilog를 사용하다보면, C나 Java 등을 다루면서 써왔던 순차적 기술 방식과 다르게 동시에 동작하는 기술 방식 때문에 당황하게 된다. 특히나, Blocking과 Non-blocking 이라는 2가지 대입문이 존재하기 때문에 어디에 뭘 써야하나 고민될 때가 많다. 특히, Verilog는 코드 흐름상으로는 말이 되더라도 나중에 Digital circuit으로 합성하면 동작하지 않는 경우도 많아서 상당히 골치아프다. 제대로 이해하기 위해서는 Verilog가 어떻게 digital circuit으로 구현되는지 따져가면서 공부하는게 가장 좋지만, 꼭 그렇게 세부적으로 하지 않더라도 합성가능한 Digital Circuit을 가능하게 하는 몇가지 Rule of Thumb이 있다. 이를 잘 소개한 Article..
-
[OpenCV] Webcam을 이용해서 SIFT 매칭 예제Tech/Development 2013. 9. 14. 01:05
이전에 OpenCV를 이용해서 간단히 웹캠을 화면에 출력하는 코드 템플릿을 올렸다. 그런데, 포스팅이 심심하다는 생각이 들어서 얼굴 인식을 넣어서 포스팅을 한번 더 했었다. 2013/09/12 - [Research/Vision] - [OpenCV] OpenCV를 이용해 기본적인 Webcam 출력하기 2013/09/13 - [Research/Vision] - [OpenCV] Webcam을 이용해서 얼굴을 인식하는 간단한 예제 기왕 한 김에 이번엔 SIFT도 포스팅해야겠다고 생각했다. OpenCV에 라이브러리로 들어가 있으니 아주 쉽게 사용할 수 있다. 많이들 쓰는 lena를 DB로 써서 웹캠과 매칭되는 걸 테스트해보았다. 역시 명불허전이다. 대충 들고 있어도 매칭이 잘 된다. /* * @file ocv_c..
-
[OpenCV] Webcam을 이용해서 얼굴을 인식하는 간단한 예제Tech/Development 2013. 9. 13. 22:03
이전에 OpenCV를 이용해서 간단히 webcam에 접근하는 예제를 포스팅 한 적이 있는데, 기왕 웹캠을 띄웠으니 얼굴 인식도 추가해보기로 했다. 추가적으로 구현하는 것이 아니라 OpenCV에서 제공하는 함수를 가져다 쓰기만 하면 된다. /* * @file ocv_cam_face.cc * @brief Face detection using OpenCV with Webcam * @author http://thinkpiece.tistory.com */ #include "opencv/cv.h" #include "opencv/highgui.h" #include int main(int argc, char *argv[]) { // ------------------------------------------------..
-
[OpenCV] 리눅스에서 컴파일하기Tech/Development 2013. 9. 12. 12:04
우리나라에서는 대부분 windows를 사용하다보니 자연스럽게 c/c++관련 과제를 하더라도 Visual Studio를 사용하게 된다. 이런 IDE툴을 쓰다가 linux console에서 처음 작업하게되면 compile/link 시에 라이브러리 등을 어떻게 전달해야할지 깜깜해진다. 왠지 관련 라이브러리 이름을 다 써줘야할 것 같고... 하지만 pkg-config를 이용하면 얘가 알아서 다 해준다. OpenCV 역시 설치 시 pkg-config 정보를 제공하기 때문에, pkg-config를 이용하면 손쉽게 compile/link할 수 있다. 어쩌면 Visual Studio 에서 OpenCV를 사용하기위해 library 추가하는 과정보다 더 쉽다? 귀찮은 과정들...2011/11/28 - [Research/C..
-
[OpenCV] 기본적인 Webcam 출력하기Tech/Development 2013. 9. 12. 10:42
OpenCV를 이용하면 V4L 등을 사용하지 않고도 아주 간단하게 Webcam 영상을 출력할 수 있다. OpenCV가 2.x 버젼대에 접어들면서 cv namespace를 통해 자료구조를 깔끔하게 정리하려고 노력 중인데 아직까지는 1.x 대에 사용하던 IplImage 등 여러가지 인터페이스가 혼재되어 사용되는 현실이긴 하다. OpenCV 2.x 방식으로 Webcam을 출력하는 예제를 간단히 작성해보면 아래와 같다. /* * @file ocv_cam_basic.cc * @brief OpenCV Webcam * @author http://thinkpiece.tistory.com */ #include "opencv/cv.h" #include "opencv/highgui.h" #include int main(in..
-
OS X Mail이 새로운 메일을 읽어오지 못할 때Tech/Computer 2013. 8. 6. 13:49
나는 OS X에서 기본으로 제공하는 Mail 앱을 사용하고 있는데, 한번씩 새로운 메일을 읽어오지 못할 때가 있다. 메일 보내기는 문제 없는 걸로 봐서, 메일함 업데이트에 관련한 캐시 버그가 있는 것 같은데, 이를 해결하려면 OfflineCache를 지워줌으로써 해결될 때가 많다. mail.app을 종료 ~/Library/Mail/V2/IMAP-account@mail.com/ 사용자 이름에 따라, 그리고 메일 앱 버젼에 따라 달라질 수 있는데 폴더가 복잡하게 많은 게 아니니까 금방 찾아갈 수 있다. 이동한 위치에서 숨김 폴더로 .OfflineCache가 있는데, 이걸 삭제한다. mail.app을 다시 시작하면 정상적으로 받아온다. 무언가를 삭제하기 때문에 메일이 소실되는 게 아닌가 우려할 수 있지만 그런..
-
Git, Mercurial를 통한 소스 코드의 버젼 관리가 무료로 가능한 BitbucketTech/Computer 2013. 6. 21. 05:04
프로그래밍을 하다보면 소스코드를 어떻게 관리할 것인가에 대해 한번쯤 고민해보게 된다. 가장 오래되고 유명한 SVN 부터 시작하여 GIT, Mercurial에 이르기까지 그 방법도 다양하다. 몇가지 방법을 써보았는데, 개인 SVN 서버를 구축하는 방법: 이전에 CollabNet Subversion Edge라는 프로그램을 이용해서 SVN 서버를 운영해본 적이 있는데, 아무래도 가까이 위치하다보니 속도도 빠르고 용량도 사실상 무한(필요한 만큼 내가 넣으면 된다.)이라 가장 편리하다. 하지만 SVN 서버가 설치된 컴퓨터의 네트워크를 지속적으로 웹호스팅을 해야하는데 이게 문제다. 네이버 개발자 센터: 여러모로 편리하지만 어쩐 이유에서인지 많이 사용하지 않았다. 큰 이유는 아무래도 해외에 있는 사람들과 협업 또는 ..