Tuesday, September 30, 2014

[반도체기초] 풀업(Pull-Up) 풀다운(Pull-Down) 저항

앞선 포스팅에서 약속한대로 이번에는 회로 설계시 많이 사용되는 풀업(pull up)과 풀다운(pull down)에 대하여 설명해보도록 하겠다.

먼저 풀업과 풀다운 설명 전에 왜 우리는 풀업과 풀다운이 필요한가 알아보도록 하자.
이전에 우리는 Unknow에 대하여 배웠는데 '0'이 될 수도 있고 '1'이 될 수도 있다고 설명하였다. 그런 회로의 상태를 플로팅(floating) 되어 있다 라고 한다.
영어 사전에 플로팅(floating)이라고 찾으면 '떠있는' 이라는 뜻으로 해석된다. 말 그대로 회로가 떠있는 상태로 외부의 어떤 상황에 따라 '0'이 될 수도 있고 '1'이 될 수도 있다.


필자의 경험으로 설명하자고하면 대학교때 8개의 LED가 달린 8051 라인트레이서 펌웨어를 코딩하고 있었는데 LED가 필요 없어 LED와 연결된 8개 포트를 입력으로 한 상태로 펌웨어를 다운로드 했더니 8개의 LED들이 어떤건 켜져 있고 어떤건 꺼져있는게 아닌가?
왜그러지 하면서 손으로 만졌더니 8개의 LED가 랜덤으로 꺼졌다 켜졌다 하더라. 그 당시에는 왜 그러지? 하면서 너무나 신기했던 기억과 함께 내가 펌웨어를 잘못 코딩 했거니 하고 8개 LED 포트를 출력으로 바꿔 LED를 전부 OFF 시킨 후에 진행 했던 기억이 있다.
이것이 바로 floating으로 인한 오작동 이였다.

위의 그림대로 MCU의 포트를 입력으로 전환하면서 Hi-Z 가 되었고 그것으로 인해 하드웨어 회로가 잘못 설계되어 가운데 회로가 플로팅되어 버린 것이다. 이것을 해결 하기 위한 방법으로 풀업(pull up) or 풀다운(pull down)으로 회로를 추가하여 전체 회로가 플로팅(floating) 되지 않도록 방지해주는 것이다.



따라서 회로 설계시 회로가 플로팅(floating) 되지 않도록 설계하는 것이 전체 회로의 오동작을 방지 할 수 있는 좋은 회로이다.

풀업 풀다운 사용 이유
1. 입력 일 때 플로팅 상태를 방지하고 H, L로 올바르게 인식하기 위해서
2. 입력 일 때 입력신호를 사용하지 않으나 나중에 사용하려는 경우
3. 출력 일 때 오픈 컬렉터, 오픈 드레인 회로일 경우 기준 전압을 위한 회로로 사용
4. 출력 일 때 출력 전류를 증대 시키려는 경우
5. 초기값을 주기 위해서

[반도체기초] Vcc Vdd Vee Vss

이전  High Impedance(z) and Unknow(x) 포스팅에서 약속한대로
(http://aboutmadlife.blogspot.kr/2014/09/high-impedancez-and-unknowx.html)
오늘은 Vcc, Vdd, Vee, Vss에 대하여 알아보도록 하겠다. 일반적인 전기전자 관련 공학과를 나왔다면 무수히 많이 보게되는 것들이 위와 같은 약자들인데 전원에서 많이 사용하는 Vcc Vdd와 Gnd를 많이 보았을 것이다. 최근에는 통상 Vcc와 Gnd 정도로 많이들 사용하여 의미가 전달되는데 문제는 없지만 우리는 엔지니어이기 때문에 왜 이런 용어를 썻는지 다시 한번 정확하게 알고 가도록 하자.
벌써 알고 있던 분들도 있겠지만 현재의 반도체라는 것을 거슬러 올라가면 TR과 FET 까지 올라 갈 수 있다. 우리가 알고 있는 IC(칩)들의 최소단위라고 생각하면 되는데 이것들을 이용하여 게이트를 구성하고 게이트들이 모여 블럭을 구성하고 우리가 원하는 동작을 한다.
TR과 FET는 아래와 같이 생겼다.
TR은 C(Collector), B(Base), E(Emitter)로 구성되어 있고 FET는 Drain, Gate, Source로 구성되어 있다. 대충 감이 오는가?


Vcc(+)와 Vee(-)는 TR을 기준으로 했을 때 Collector와 Emitter의 첫글자로 구성한 용어 이고 Vdd(+)와 Vss(-)는 FET를 기준으로 했을 때 Drain과 Source의 첫글자로 구성한 용어이다.
또한 TR은 TTL에 기반을 두고 있고 FET는 CMOS에 기반을 두고 있다.
(http://aboutmadlife.blogspot.kr/2014/09/vih-vil-voh-vol-nmh-nml.html)

그러나 최근에는 TTL과 CMOS논리군이 서호 호환되고 모호해졌기 때문에 위와 같은 용어들이 Vcc(Voltage of Common Collector)와 Gnd(Ground)로 축소 사용되고 있다.

그리고 왜 Vc, Vd, Ve, Vs 라고 하면되지 두개씩 붙였냐고 묻는다면... 기존공학용어에 Vc, Vd, Ve, Vs가 사용되는게 많기 때문에 그것을 피하기 위해서 두개씩 붙였다고 한다.

끝~ 궁금하신 것은 리플 달아주세요~

Monday, September 29, 2014

[반도체기초] High Impedance(z) and Unknow(x)

오늘은 반도체 기초에 대해서 무엇에 대해할까 생각하다가 초보자들이 가장 많이 헤깔려 하는 High impedance와 Unknow의 차이에 대하여 설명해 보도록 하겠다.
먼저 디지털에서는 신호를 크게 4가지로 나타낼 수 있다. 우리가 흔히 아는 0과 1 신호가 있고 거기에 추가로 Z와 X가 있다. 
우선 디지털 신호에서 0과 1이 무엇인지부터 보자.
디지털에서 0은 Low로도 표현하기도 하고 GND라고도 표현하기도 할 수가 있다.
1은 High라고 표현하기도 하고 VCC라고도 표현 할 수 있다.
여기서 중요한 것이 VCC와 GND 이다.(VCC가 머고 GND가 먼지는 다음 포스팅에서 다루도록 하겠다.)

앞서 포스팅 했던 것을 보면 High로 인식하는 범위와 Low로 인식하는 범위가 다르게 되는데 말 그대로 0과 1 또한 디지털 시스템에서 사용하는 전원이 어떤 것이냐에 따라 달라지게 되는 것이다. (헉헉.. 너무 어렵게 설명했나 ㅠ)
그런데 거기에 우리가 알아야 할 것이 두개 더 있다.(ㅠㅠ 어려운거 투성이구만)
바로 Z의 High Impedance와 X의 Unknow이다.
가장 간단하게 설명한다면
'X'는 '0' 또는 '1'을 의미하고
'Z'는 '0'도 아니고 '1'도 아니다.
라고 생각하면 된다.
헤깔리는가?
좀 풀어서 설명해보겠다.
X는 Unknow으로 해석하는데 말 그대로 X라는 포트가 0이 될 수도 있고 1이 될 수도 있다는 말이다. 
Z 또는 Hi-Z로 표현하는 것은 High Impedance으로 해석하는데 높은 저항상태로 해석하여 0도 아니고 1도 아니다.
0과 1이 아니면 먼가 싶겠느냐만은 이해하기 쉬울려면 선이 끊어져있다. 라고 생각하면 될 것 같다. 높은 저항상태이기 때문에 마치 선이 끊어진 상태(단선) 으로 해석하면 더 쉽겠다.
그러면 아마 0, 1, X 까지는 이해가 되는데 Z는 머여? 라는 생각이 들 것이다.
아래 그림을 보면 아하 라는 생각이 들 것이다.


   
(나름 심열을 기울였으나 발로 한 것 처럼 보이니 양해 부탁드림 ㅠ)

그림을 보면 Hi-Z의 예제 중 하나로 Hi-Z가 오픈되어 있는 상태에서 Pull-Down 상태가 되어 있으면 0이 출력되고 Pull-Up 상태가 되어 있으면 1이 출력된다.(Pull-Down과 Pull-Up에 대해서는 다다음 포스팅 쯤 ㅡ.ㅡ 아 할거 많네)
따라서 Z(High Impedance)는 위와 같은 단선과도 같은 상태라고 이해하면 될 것 같다.

후.. 여기까지 설명을 했는데 잘 이해가 되었으려나 모르겠다.
디지털에서 신호는 0, 1, Z, X 가 있다는걸 잘 이해하면 되겠다.
사실 이것 말고도 metastable라는 것도 있지만 이것까지 설명하면 디지털과 아날로그 사이? 정도가 되는 것 같아 일단 여기까지만 설명한다.

혹시나 이해가 안되는 것이나 잘못된 것이 있다면 리플 달아주면 감사드립니다.
(__*)그럼

Sunday, September 28, 2014

[식품리뷰] SHANY KAKAO 빵4 MUZI&CON의 리얼브라우니샌드

주말이다...
최근 주말에 바쁘다 보니 오랜만에 맞이하는 여유로운 주말이랄까.
나름 나쁘지 않은것 같다.
블루투스 아이패드 키보드를 구매한 이후로 더 게을러지는 것 같다.
지금은 누워서 키보드는 허벅지 위에 올려놓고
패드는 침대에 기계팔에 걸어 놓고 글을 쓰는데 ㅋㅋㅋㅋ....
이러다 점점 돼지 되는거 아닌가 몰러 ㅋㅋ
그러다 보니 하루에 편의점을 몇번이나 가는지 ㅋㅋㅋㅋㅋㅋ
집 바로 앞에 있다보니 안갈 수가 없음
심심하면 가는 것 같다.
이번엔 어제 토요일날 먹은 리얼 브라우니샌드!!

처음에는 저기있는 무지가 토끼인 줄 알았다.
그러나... 사실은 단무지가 토끼 옷을 입고 있는 것이 였음.
ㅡ.,ㅡ 얼마나 신선한가 ... 하하하하하;;;
피치는 엉덩이 처럼 보였었음.
카카오 케릭터 만든 사람들은 정말 짱인듯 ㅋㅋ
이번 브라우는 무지와콘의 리얼브라우니샌드!



여느때와 같이 개봉하여 바로 스티커 부터 확인!!
헛!? ... 왠지 가지고 있던 것 같았으나 
다행이 기존꺼와 다른것이다! 휴휴
천만 다행임 ㅋㅋ
브라우니라고 하는데 동그랗게 생겼음 
안에 무언가가 들어있길래 뜯어 봤다.





브라우니 사이에 크림이 들어있었다.
ㅋㅋㅋ 맛을 좀 봐보니 땅콩커피크림? 
그 머냐 여튼 그런 맛이다.
요것도 이전의 초코롤 만큼이나 달다.
ㅋㅋㅋ ... 속쓰림-_-;
배고플 때 먹는거다 보니 너무 단거는 좀 안맞는다고나 할까
단것들은 디저트로 먹기에는 좋은데 메인으로 먹기에는 조금 ㅠ 그렇다.
그래도 맛나게 냠냠 햇으니 ㅋㅋㅋ

★★☆☆☆

나의 별점은 2개!
이번엔 진짜 평범한 맛임.

Saturday, September 27, 2014

[식품리뷰] SHANY KAKAO 빵3 Neo의 초코롤케익

이번주는 정말 정신 없이 지나간것 같다.
이런일 저런일 다 생기는게 인생이다보니 
예상치도 못했던일로 힘들었다 랄까...
어쨋든 어느정도 멘탈이 회복되었기에 
사실 이번 Neo의 초코롤케익을 먹은지는 주초 정도로 
몇일이 지난 상황이지만 다른 상황으로 인해 
포스팅을 못하고 있다가 이제서야 포스팅을 해본다.
멘탈이 돌아오는 중이라 전반적으로 
글이 딱딱할 수 있음을 ~ 양해 바랍니다~

이번에 먹은 빵은 Neo의 초코롤케익!
사실 Neo라는 이름은 나에게는 너무나도 친숙하다.
우선은 나의 영어 이름이 Mad이고 성이 Jeong 이지만
Mad 라는 의미 때문에 주로 공식석상같은 곳에서는 Neo라는 이름을 사용한다.
한마디로 이름이 두개! ㅋㅋㅋ 
그래서 블로그에 키우는 3마리의 물고기 중 2마리의 이름이 Mad와 Neo 이다.
사실 2마리만 키우려다가 좀 외로워 보여서 한마리를 더 추가하고 Jeong이라고 붙여 봤다. 쓸데 없는 얘기가 계속 되었는데 왜 내가 Mad라는 이름을 어릴때부터 사용했는지와 Neo라는 이름은 또 어떻게 선택하게 되었는지는 나중에 시간날때 한번 일상 카테고리로 포스팅 해보도록 하고 여기서는 카카오빵! 에 대해서 포스팅을 해보겠다.(나이가 들었나 쓸데 없는 말이 많아지네 ㅡ.,ㅡ)

언제부턴가 이제는 편의점의 빵코너를 그냥 지나칠 수 없다.
카카오빵의 돌풍(?) 인지 왠만한 편의점들의 빵코너를 
다 꾀차고 있는 샤니의 초코롤케익!!
이글 작성 중 필자가 주식에도 관심이 있는바 샤니 주식을 알아봤으나 아직 상장안되어 있고
관련 회사로 삼립식품이 있으나... 
3년전부터 엄~~~~청 오름
젠장 아니 만원에서 십삼만원이 된다는게 말이됨?!
아.... 이미 늦음 썩을 이빵이 언제 나온지는 모르나 
어쨋든 시장에 엄청난 영향을 준것은 틀림없는 것 같음 ㅎㅎ
주식 투자에 관련된 것도 시간날때 포스팅하려고 하니 
그건 그때가서 자세히...
어쨋든 내가 먹은 빵은 아래 같이 생김 ㅋㅋㅋ

아 귀여운 Neo 녀석 ㅋㅋㅋ 얼굴이 붉어졌구만 
내가 카카오톡 하면서 자주 사용하는 케릭이 있는데
바로 (아잉) 
바로 요 케릭임 ㅋㅋㅋㅋㅋㅋㅋ
내가 제일 좋아하는 케릭 이랄까? 
그리고 초콜릿도 좋아하니까 ...
아 완전 내스타일 빵이구나~ ♡

하지만... 두둥

지난번 같은 스티커가 티어나옴과 동시에 
충격에 휩사였던 것이 트라우마로 남아
쉽사리 봉지를 뜯지 못하였는데
잠시 카카오빵에 묵렴하여 
동일한 스티커가 나오지 않도록 한뒤!!
개봉!!!!
.
두둥!!!
.
.
.
.
.

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 오예! 다행이다.
다행이 이번에는 같은 스티커가 나오지 않았다.
이번에도 같은 스티커 나왔으면 다시는 카카오빵을 먹지 않았을 꺼임 후후...
이번에는 Frodo가 티어 나왔다.
손에는 선물을 들고 있는데... 
슬플구만 ..

맛있게다 싶어서 빵을 쪼개 봤더니
그냥 이름 그대로 초코롤케익이네
하면서 우걱 우걱 먹었다.
머 똑같네 똑같아 하고 생각하는 찰나!


띠용! ... 저기 보이는가?
검은색 입자가 보이는가?!
저것은 바로 

.
.
릿

하하하하하하하하하ㅏㅏㅏㅏㅏㅏ
먹는데 초콜릿이 씹히는 것이 아닌가.
첫번째는 복숭아.
두번째는 밤.
이번에는 초콜릿!!!
이번에도 어김없이 다른 것들과 새로운 
느낌을 주기는 하나..
그렇다고 딱히 기존 초코롤케익과 크게 다른 점은 없다.

그래서 나의 이번 초코롤 케익 평점은

★★★☆☆
.
★★★☆☆
.
.
★★★☆☆
.
.
.
★★★☆☆

3개! ㅋㅋㅋㅋㅋㅋ
왜 밤빵 보다 많이 줬냐구요~?
그건.. 제가 초콜릿을 좋아하니까.....요...
P.S. 생각보다 많이 달아요~ 너무 단거 싫어하시는 분은 요건 패스! ㅋㅋ


Friday, September 26, 2014

[반도체기초] Setup Time / Hold Time


-      setup time(tS) : tS clk 신호의 동작 변화가 검출되기 전 입력이 검출이 가능한 레벨 이상으로 유지되어야 하는 시간, 상대측이 받을 준비를 하는데 필요한 시간

-      hold time(tH) : tH clk 신호의 동작 변화가 진행되기 위하여 입력이 적절한 레벨로 유지되는 대기 시간, 상대측이 클럭 high후에 출력을 내기 위해서 필요한 시간

-      입력은 clk 변화 전에는 적어도 tS동안, 클럭 변화 후에는 tH동안 안정해야 함


Setup Time Violation / Hold Time Violation





-       setup time violation(tS) : U_FF1입력 D’ setup time 2ns를 만족하지 못하여 출력값을 보장할 수 없음 



-       hold time violation(tH) : U_FF1입력 D’ hold time 2ns를 만족하지 못하여 출력값을 보장할 수 없음 

Thursday, September 25, 2014

[verilog] Flip-Flop vs. Latch 차이와 표현

.... 글을 쓰면 어느 정도 마음이 진정되는 효과가 있다.
나만 그런지는 모르지만 
나는 운동, 음악, 글쓰기가 나의 스트레스 해소법 인것 같다.
그래서 오늘도 언제나처럼 블로깅을 한다.

1.     Flip-Flop vs. Latch
차이
            A. Latch는 입력신호가 인가되는 순간 바로 출력되지만 Flip-Flop 
               clock (상승 또는 하강)Edge에서 입력신호만 출력에 반영
            B. Latch clock신호와 무관하게 출력이 결정되는 
               Asynchronous(비동기식)이고 F/F clock신호에 맞추어
               출력이 결정되기 때문에 Synchronous(동기식)이라고 함

2.     Verilog
에서 Flip-Flop Latch의 표현
            A. Flip-Flop rising edge 동작 verilog code
               module D_FF(D,Clk,Q);
                 input D, Clk;
                 ouput reg Q;
                 always@(posedge Clk) // Clk이 상승 edge일 때 Q<=D 동작
                  if(Clk) Q<=D;
              endmodule

       B. Latch
동작 verilog code
               module D_latch(D,Clk,Q);
                 input D,Clk;
                 output reg Q;
                 always@(D,Clk) // Clk high(1)일 때 Q<=D 동작
                   if(Clk) Q<=D;
               endmodule


Tuesday, September 23, 2014

[제품리뷰] 갑자기? 떠오르는 Telegram 텔레그램

옴마 정부의 규제가 하다하다 못해
이제는 메신져까지 감시하겠단다.
아이쿠야
지금 시대가 어떤 시대인데 게임 산업 망치고
이제는 IT 코리아라고 불렸던 역사마저 지워버리고 하나.
중국은 알리바바의 미국 상장 성공으로 ICT(Information Communication Technology)의 새로운 역사를 쓰고 있는 이와 중에
가뜩이나 힘든 국내 ICT 업체들을 울상으로 만드는 짓이라니...
아마도 지난번 참다참다 못한 대한민국 총수께서 한마디한게 반영된 것 같다.
본인이 한 말과 행동이 다른것도 모자라 이제는 강압적으로 나가시겠다?~
머 욕하는건 여기까지 하고

그래서 탈 국내 메신져를 하고자 사람들로부터 갑자기 떠오르고 있는
Telegram 텔레그램을 한번 깔아봤다.
필자가 아이폰 유저이다보니 아이폰 앱으로만 테스트한점 양해바란다.
앱 설명으로는 클라우드 기반으로
카카오톡과 다르게 패드부터~ PC까지 모든 메신 상태가 공유된다는 점이
필자에게는 굉장히~~~ 매력적으로 다가 왔다.


아이콘은 옛날 종이비행기? ㅋㅋ 처럼 생겼다.


실행 후 첫화면인데 Telegram의 장점에 대하여 설명해준다.
세상에서 제일 빠른 메시징앱이고
특히 '무료'와 '보안'이 국내 인기의 비결이랄까?

다른것보다 빠르다는데 사실 알 수 없음ㅋㅋㅋ


영원히 무료!! 광고도 없음!! 
사실 여기까지만해도 매력적임 ㅎㅎ


제한없이 파일들을 교환할 수 있다고~?~?~


게다가 자체 암호화 시스템까지 갖추어져 있다!!
이건 머 안쓸 수가 없구만...

마지막으로 클라우드 기반 모든 기기들이 함께 액세스 할 수 있다!
필자는 카카오톡을 iPad와 iPhone, PC를 쓰고 있는데
PC와 iPhone은 서로 액세스 가능하지만
iPad에서 안된다는건 얼마나 불편하던지....


어쨋든 첫등록화면은 위와 같다.
전화번호를 쓰면 자동으로 화면이 넘어간다.


그리고 날라온 코드를 적으면 ~
끝!


요런식으로 나타나는데 
필자의 폰번호에 저장된 사람중에 
Telegram을 쓰는 사람은 단 한명 밖에 없다...
흠.. 기사로 이슈되는 것보다는 너무 적은데? ㅋㅋ



채팅화면은 다음과 같다. 머 다른 메신져 어플들과 크게 다르지 않아 
사용하는데 큰 불편은 없을 것 같다.


머 카카오톡을 사용할 때보다 불편한 점이라면 
단연 주변 서비스와 연동 받을 수 없다는 점이랄까...
게임이라던가 이모티콘 등을 사용할 수 없다 ㅠㅠ



Telegram을 깔아본 결과 
굉장히 심플하고 장점이 많은 어플인 것 같다.
게다가 여러기기가 동시에 접근한 것은 필자에게는 가장큰 장점이고
최근 정부가 메신저까지 검열하겠다는 엄포에 대응하기에는 
정말 좋은 어플인것 같다.

그러나....

국내 카카오톡에 대응하기에는 너무나도 심플하다랄까...
국내 메신져 카카오톡이 급성장하게된건 
단연 기본기인 메신저 기능을 기반에 두고 있지만
그 외 카카오톡을 모바일 플랫폼으로 하여 
게임 산업부터 ~ 오프라인 케릭터 산업까지 
다양한 서비스와 시장을 창출했기 때문으로 생각된다.
따라서 누군가 메신저 검열로 벌(?) 받았다는 이야기가 나오지 않는 이상은
국내 카카오톡에 대항하기에는 아직 먼나라 이야기가 아닌가 생각된다.

국내 시장을 기준으로한 나의 별점은?~
★★★☆☆
3개!

한번 깔아볼만은 하나 아직은 시기상조!


Monday, September 22, 2014

[일상] 창조자와 조력가


후.. 직장인들에게 월요일이란
다시 다람쥐 쳇바퀴로 돌아가야 한다는 부담이 쵝오에 달하는
그런 요일이다.
오늘도 어김없이 월요일이 나에게로 찾아와
출근하여 사장님 미팅을 하였는데
구구절절 좋은 소리들이 많아 한번 정리해 보고자 글로 적는다.

세상에는 많은 창조자들이 있다.
빌게이츠, 스티븐잡스 등...
그런데 이 사람들이 과연 혼자서 시작했다면
지금과 같은 부와 명예를 얻고 인류 발전에 기여할 수 있었을까?
천만에 말씀!!
바로 주위에 '조력자'들이 있었기 때문에 이들이 떠오를 수 있었던 것이다!!
'빌게이츠와 스티브 발머', '스티븐잡스와 스티브 워즈니악' 등
서로에게 부족한 것을 매꿔주고 이끌어 줬기 때문에
우리가 아는 많은 창조자들이 있을 수 있는 것이다.
그럼 그 많은 창조자들이 만들었던 '혁신'은 어떻게 나오는 것일까?
요즘 이곳저곳에서 혁신.. 혁신 한다.
혁신... 무슨 말인지 찾아보자


혁신 
(革新) [혁씬] 발음듣기


[명사] 묵은 풍속, 관습, 조직, 방법 따위를 완전히 바꾸어서 새롭게 함
혁신 
(革新) 예문보기학습정보
innovation, innovate
  • - 네이버펌

편하게 네이버에서 퍼왔다.
혁신은 예전것을 바꾸어 새롭게 하는 것이다.
물론 그것이 잘되야 '혁신' 이지 시도했는데 망하면 그냥 '' 이다.
그럼 혁신은 어디서 오냐?
바로 아이디어 + 추진력!!!


이래서 창조자는 조력자가 필요하다.
창조자들이 아무리 좋은 아이디어 내면서 날려고 해봐야
조력자들의 추진력이 없다면 그냥 꼬라박고 만다.
그렇다.
세상의 모든 성공한 사람들 옆에는 숨은 조력자들이 있다.

그렇다면 여기서 ... 
생각에 빠진다.
나는 
        '창조자' 인가? 
            아니면
        '조력자' 인가?

자신이 어떤 사람인지 한번 생각해보자... :)

[LINUX] vi의 꽃 macro(매크로) 사용법!


개인적으로 vi 사용하면서 일반적인 에디터 중에 가벼우면서 이만큼 강력한게 없는 것 같다는 느낌이 든다.
특히 코딩(C언어나 verilogHDL 다른건 안해봄) 할때는 vi는 정말 최적의 환경을 제공하는 것 같다.
따라서 그런 vi의 꽃이라고도 할 수 있는 macro(매크로)에 대해서 정리해 보고자 한다!!! 두둥

매크로라는 것은 특정한 움직임 또는 입력을 키에 저장함으로써 단순하면서 반복되는 동작을
쉽고 빠르게 해주는 것을 말한다.
vi에서 매트로는 명령어 모드에서 
q + 알파벳을 눌러 특정 알파벳에 매크로를 저장할 수 있다.

순서는
1. q + a       a키에 recording 시작
2. 반복을 위한 내가 원하는 동작
3. q             recoding 종료
4. @a          1회 실행 
or @@         방금 실행한 매크로 실행
or 10@a       매크로 10회 실행

위와 같은 순서로 매크로를 실행한다.
비교적 여기까지는 인터넷에서 손쉽게 찾을 수 있는 vi의 매크로 동작
그럼 응용 단계!
숫자 증가는 어떻게 하는가?~

1. 1 숫자 입력
2. 매크로 시작
3. 1 숫자를 복사해서 다음줄에 붙여넣기
4. 두번째줄 1에 커서를 올리고 Ctrl+a(숫자 증가)
5. 매크로 종료

위와 같이 한 후 매크로를 실행하면
1
2
3
4
5
6
.
.
.
이런 식으로 숫자가 증가하는 것을 볼 수 있다.
그럼 ? 1000000@a 이런식으로하면 ... 숫자 증가를 아주 손쉽게 할 수 있다.

더 예를 들면
2의 배수 라던지 8의 배수, 16의 배수, 32의 배수 등 증가를 쉽게 할 수 있다는 뜻 ㅠ
최근 verilogHDL 코딩하면서 vi의 매크로 기능으로 많은 시간을 아낄 수 있었기에
여기다 정리해 본다.
숫자 증가 매크로의 핵심 키는
ctrl + a (숫자 증가)
ctrl + x ( 숫자 감소)

Saturday, September 20, 2014

[식품리뷰] SHANY KAKAO 빵2 밤알송송 패스츄리!!

오늘도 어김없이 편의점에 갔는데 
어김없이 눈에 들어오는 카카오 빵! ㅋㅋㅋ
지난번 복숭아 공포를 경험한 후 
빠져나올 수 없는 매력에 빠져버렸다.
그래서!!!
.
.
.
이번엔 다른걸 샀음
.
.


바로 '밤알 송송 패스츄리!' ㅋㅋ
이번엔 다행이 FRODO 멍멍이가 케릭터다. ㅋㅋ
.
.
설마 멍멍이가 .. 쿨럭 (19금)


어쨋든 이번에는 어떤 스티커가 나올까~? 
라는 궁금증에 얼른 풀어해쳐 봤다!!
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
......................(정지 화면 아님)


이런 젠장 똑같은거 나왔어!!!!!!!
.
이런 젠장 똑같은거 나왔어!!!!!!!
.
이런 젠장 똑같은거 나왔어!!!!!!!
.
이런 젠장 똑같은거 나왔어!!!!!!!
.
이런 젠장 똑같은거 나왔어!!!!!!!



최악의 상황이다.
가지고 있는 스티커들 중 Neo가 31번인것으로 보아 
최소 31개 이상이 있는 것으로 보이는데
단 4개 중에 2개가 같은게 걸려 버리다니!!!!!!!
이 나쁜 짜식들아!!!(혼잣말임.. 오해 마시길)
.
.
.
.
어쨋든 마음을 추스리지 못하고 
빵을 찢어버리고 말았는데...
.
.
.
.

(임산부, 아이들 및 노약자 주의)
.
.


ㅋㅋㅋㅋㅋㅋ 
이름에 밤알송송 이였는데
진짜로 밤알같은게 송송 들어있다.

먹어봤는데
요거는 이전의 '피치피치해' 보다
별로였다.
그냥 평범한 맛이랄까 ㅋㅋㅋ
그냥 일반 '밤빵'
.
.
그래서 내 별점은?

★★

2개!

P.S. 같은 스티커 나왔다고 2개준거 아님





Friday, September 19, 2014

[일상] 오랜만에 알코올



후... 올만에 금요일에 술이다.
원래 술을 잘 마시지 못하는지라 평소에는 자기관리(?)라는 명목으로 술을 더더 안마시지만 올만에 좋은 사람들을 만나고 서로 공감되는 많은 얘기를 하다보니 나도 모르게 술을 좀 마셨다 ㅋㅋ 알딸딸...
이런느낌 ㅎㅎ 올만이다.
왜 나이가 들면 술들을 많이 마실까?
그 쓴게 머가 맛난다고 라고
20대 때 생각했던것 같은데...
벌써 내가 30대가 되어 있을 줄은 몰랐다.
그때는 술을 마시는 것에 대해서 
이해가 되지않았지만
나이가 들었나...
인생 선배들이 말한대로
나도 이제 꼴랑 30대라고 
술의 맛을 조금 알 것 같다랄까...
술만 마시면 나는 좀 감성적으로 변하는것 같다.
이런 생각 저런 생각 많은 생각이 머릿속을 스쳐 지나가고
나의 미래, 나의 인생, 나의 꿈, 나의 가치관 등 삶에 대한 생각을 많이 하게 된다.
머 꼴에 나도 인생 1/3 살았다고
이런 생각들을 글로 쓰게 되었는데... 
이런 것들도 하나의 기억이고 역사이기에
기록하게 된다. 
나중에 나중에 살아있고 삶의 풍파를 견디고 견뎌 
인생무상이라는 것을 깨닫게 될때 쯤
이런 내 삶의 역사들을 되집었을때
'아.. 내가 저때는 저런생각을 했었구나... 풋' 하고 비웃을 수 있을때가 오려나...

바야흐로 온세상이 다 커넥션이 되는 시대다.
지하철 타고 가는 길에도 이렇게 내 생각을 끄적이고 인터넷이라는 우주와 같은 서로 엉키고 설킨 시냅스 같은 네트웍 속에 기록을 남길 수 있다는 것이 인류가 얼마나 빨리 발전하고 각각의 사람들이 얼마나 힘들고 열심히 노력하고 있는지를 알 수 있다랄까.
좋은 세상이다.
누릴 수 있는 행복을 잡을 수 있다는 것도 능력이다. 
기쁠 수 있다면 기뻐해야하고 슬플 수 있다면 슬퍼해야 한다. 인생 길지않다.
감정에 솔직해지자. 
하고 싶은거 하자.
지나간 시간은 돌아오지 않는다.
지금이 아니면 이 순간은 다시 돌아 오지 않는다. 
술기운에 그냥 이것저것 중구난방 끄적여 본다. 

마치 이 세상에서 내가 제일 힘든 것처럼...

[C언어] C언어에서 log exp ln 관계

요번에도 이전에 한번 올렸던 자료를 재탕해보겠다!! 
바로 log, exp ln 의 관게에 대해서 정리했던 것인데 재밌음.

-----------------------------------------------------

retinex 알고리즘을 공부하면서 
지금 c언어로 거의 다 짜고 보니 갑자기 떠오르는게...
'자연로그' '상용로그' !!!!!
상용로그는 우리가 흔히하는 밑이 10인 로그를 상용로그라고 하고
자연로그는 밑이 e인 로그를 자연로그라고한다.
따라서 알고리즘에서 log로 표현했던 차원을 
다시 exp을 이용하여 차원 변경을 하는데.....

C언어로 짜면서 나는 그냥 log() exp() 이런식으로 썻다는것!!!
아직 감이 안오는가?~
이게 무슨소리냐 하면은... 
밑이 e인 경우 우리는 ln이라고 표현하는데 
밑이 e인 로그2의 경우 값은 ln2 = 0.69314718056 이다.
따라서 exp(0.69314718056) = 2  된다.

그런데 밑이 10인 로그2의 경우에는 log2 = 0.30102999566 이고
exp(0.30102999566) = 1.35124987256 이므로 복원이 안된다. ㅠ

순간 많이 당황했다. 
그러나 인터넷으로 검색해본 뒤에야 안심할 수 있었는데.....

C언어에서 표현은 
지수함수 e^x 는 exp(x) 로 표현하고 
ln x는 log(x) 로 표현이다!!! ㅋㅋㅋㅋㅋ 
log x는 log10(x) 로 표현한다.

기억하길 바람!!! ㅋㅋ :)