WaveDrom Editor에 signal 이름과 wave 문자열을 넣으면 clock과 bus timing diagram을 만들 수 있다. 각 문자는 한 period를 나타내며 .은 직전 상태를 한 period 연장한다.
clock과 bus 예제
{
signal: [
{ name: "clk", wave: "p......." },
{ name: "req", wave: "0.1..0.." },
{ name: "data", wave: "x.==.x..", data: ["A5", "5A"] },
{ name: "ack", wave: "1...0.1." }
]
}
WaveDrom tutorial의 WaveJSON 형식이다. p는 clock waveform, 0과 1은 low/high, x는 unknown, =는 multi-bit data cell을 나타낸다. data 항목은 bus cell에 표시할 label이다.
그리는 순서
- WaveDrom Editor를 연다.
- 기본 예제를 붙여 넣고 신호 이름과 wave string을 바꾼다.
- 각 signal의 wave 길이가 같은 시간 범위를 표현하는지 확인한다.
datalabel, group, edge annotation을 필요한 경우에만 추가한다.- 렌더링 결과를 protocol timing과 대조한 뒤 이미지로 내보낸다.
WaveDrom 그림은 입력한 timing을 시각화할 뿐, RTL simulation 결과를 자동으로 검증하지 않는다. 실제 waveform과 spec timing을 기준으로 transition과 sampling edge를 확인한다.
공식 자료
원문 기록
한 줄 요약
WaveDrom은 신호 timing을 텍스트로 도식화하는 도구이며, 그려진 diagram은 실제 simulation과 protocol 기준으로 다시 확인해야 한다.