Semiconductor/0. Digital, Analog, 회로 이론

WaveDrom (Timing Diagram) 사용 법

잇(IT) 2024. 9. 19. 09:50

https://wavedrom.com/

 

WaveDrom - Digital timing diagram everywhere

WaveDrom Digital Timing Diagram everywhere WaveDrom draws your Timing Diagram or Waveform from simple textual description. It comes with description language, rendering engine and the editor. WaveDrom editor works in the browser or can be installed on your

wavedrom.com

위 사이트에서 Timing Diagram을 편리하게 생성할 수 있다.


처음 접속하여 Editor에 들어가면 아래와 같이 기본 예시를 보여준다.

{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.'}
]}

위 코드를 통해 아래와 같은 Timing Diagram이 생성되는 것을 확인할 수 있다.

 

WaveDrom의 기본 구성은 아래와 같이 signal로 시작하게 된다.

{signal:[
]}

 

signal로 감싼 뒤 name, wave, data라는 3개의 필드를 사용한다.

 

'name'은 단어 그대로 이름을 나타낸다.

'wave'도 마찬가지로 파형을 나타낸다.

- p, n을 통해 상승, 하강 엣지를 나타낸다.

- '.'을 통해 이전 파형을 동일하게 유지한다.

- '숫자'를 통해 Data(뒤에 나올)를 나타낸다.

- '|'를 통해 끊김을 표현한다.

'data'는 필수 요소는 아니지만 특정 다수 Bit를 특정 네이밍할 때 사용한다.


FIFO 설계 Timing Diagram 작성 예시

{signal:[
  {name:'wclk',				wave:'p.............'},
  {name:'rclk',				wave:'hlhlhlhlhlhlhl'},
  {name:'din',				wave:'x.23456789....',	data:["01","03","05","07","09","0b","0c","10","11","13","15","17","19"]},
  {name:'dout',				wave:'2.....3.4.....', 	data:["00","01","02","03","04"]},
  {name:'push',				wave:'l.h......l....'},
  {name:'pop', 				wave:'l....h...l....'},
  {name:'full',				wave:'l.............'},
  {name:'empty',			wave:'h.l...........'	}
]}

위와 같이 이전에 설계한 FIFO에 대한 Timing Diagram을 그릴 수 있다.

 

Timing Diagram을 그려야 하는 상황에 활용하면 좋을 것 같다.

728x90