설계독학에서 진행 중인 쉬어가기의 내용입니다. 모든 글의 저작권은 맛있는비빔밥에게 있습니다. ^^ |
설계독학 유튜브
Intro
안녕하세요. 설계독학의 맛비입니다.
오늘은 쉬어가기 7번째 시간으로 WaveDrom 이란 Tool 을 소개해 드리려고 합니다.
설계독학 영상중에서 이 Tool 을 이용해서 그림을 그린적이 있어요.
wavedrom 이란 간단한 text 를 기술해서 Timing Diagram 을 그리는 Open, 무료 Tool 입니다.
Timing Diagram 이란. 시간을 x 축에 놓은 상태에서 신호들의 관계를 기술한 도표? 그림입니다.
즉 wavedrom 을 사용하면 문장을 기술해서, 시간에 따른 신호들의 상태를 보여주는 그림을 그릴 수 있다.. 생각하시면 되겠습니다.
여러분들이 디지털회로 설계 과제를 할때, 혹은 회사에서 설계한 모듈의 신호의 상태를 보여주고 싶을 때 Timing Diagram 을 그리게 되요.
보통 Timing Diagram 그리라고 하면, 이제 그림판? 같은 좀더 고급지면 visio 를 통해서 그림을 그립니다. 예를 들면 이런식이죠.
Clock 그리고 신호 그리고, 마우스의 현란한 손놀림이 필요합니다.
저는 개인적으로 Wavedorm 을 추천드립니다.
처음에는 뭔가 싶은데, 일단 본인의 양식을 갖고 있다면, 쉽고 아름답게 Timing Diagram 을 그리실 수 있어요.
오늘 저와함께 이해해서 만들어 볼 그림은 다음과 같습니다.
이 그림을 문장으로 기술 하는 방법을 이해해 볼 꺼에요.
잘 따라와 주세요. 그럼 시작하겠습니다.
본문
먼저 wavedrom 홈페이지에 접속해 보겠습니다.
접속하면 상단 메뉴에 Tutorial, Editor, Source, Twitter 를 볼 수 있습니다.
오늘 제가 알려드리는 것 외에 추가적으로 필요하시면 Tutorial 을 보시는 것을 추천 드립니다. 고급 내용들이 있습니다.
오늘은 과감하게 Editor 를 누릅니다. Default 로 저같은 경우에는 다음 text 들이 있었어요.
{signal: [
{name: 'clk', wave: 'p.....|...'},
{name: 'dat', wave: 'x.345x|=.x', data: ['head', 'body', 'tail', 'data']},
{name: 'req', wave: '0.1..0|1.0'},
{},
{name: 'ack', wave: '1.....|01.'}
]}
혹시나 여러분들이 저와 같은 화면이 안나올 수 있으니까, 일단은 다 지우고 새로 작성해 보겠습니다.
천천히 살펴볼께요.
text 창에 기술하는 rule 은 name, wave, data 순으로 기술합니다.
그리고 블레이스의 열고 닫음은 쌍을 맞춰주셔야 해요.
자 먼저 기본이 되는 Clock 을 그려볼꺼에요.
이름은 clk 라고 적을께요. 그리고 positive edge 에 동기화 되어 있다를 나타내기 위해 p 를 씁니다.
그리고 쩜쩜쩜을 찍어볼께요 몇개를 찍느냐 에 따라 Clock 의 Cycle 수가 결정이 되요. 참 쉽죠?
그 다음 한 10 cycle 만 할까요? 이렇게 clock 신호를 만들 수 있습니다.
그 다음은 1 bit 의 Level 을 표현해 볼꺼에요.
negative reset 을 표현해 볼께요.
우선 처음 값은 '1' 로 시작을 합니다. 그러다가 중간에 reset 이 걸려요.
1을 연속으로 찍으면 level 1 의 모양에 꺽쇠로 파이게 되니까, level 을 유지할 때는 . dot 으로 표현해 주세요.
쭉 가다가 0 으로 내려야 겠죠. 그리고 나서 '1' 로 다시 올리구요. 이렇게 그려주시면 됩니다.
마지막으로 Data 를 그려볼꺼에요.
1 bit 이면 0,1 만 있어서 앞서 해본 표현 방법으로 충분하죠.
Data 를 사용하면, Multi bit 의 상태를 표현할 수 있어요.
State 머신을 표현해볼께요. Core 의 기본 상태인 IDLE, RUN, DONE 을 그려보겠습니다.
다음과 같이 그리고, data는 0,1 다음 2,3,4,5, 죠? 그 값을 통해서 그릴 수 있어요.
색이 바뀌는 것을 확인 할 수 있죠. 참 쉽죠?
참고로 | (vertical bar) 를 wave 에 기술해 주면, 물결 그림이 생겨요. 중략이죠.
이정도 지식만 알면 다음 그림을 그릴 수 있습니다. (댓글에 링크 있어요.)
들어가서 복사 붙여넣기, 끝 이죠.
오늘 설명드린 내용으로만 그렸습니다. 좀더 고급스럽게 그리고 싶으시면 Tutorial 을 참고해 주시구요.
정리하고 마무리 해볼께요.
wavedrom 이란 text 를 기술해서 Timing Diagram 을 그리는 Open Tool 입니다.
도움이 되셨다면 구독 좋아요 눌러주시면 힘이 됩니다.
코로나 조심하시고, 그럼 다음시간에 봬요 :)