FPGA/Digital 회로 설계를 할 때, Timing diagram을 참 많이 그립니다.
모든 신호가 clk를 기반으로 이루어지죠.
그래서 이번 시간에는 Timing diagram을 쉽게 구현할 수 있는 프로그램 'WaveDrom'에 대해 소개하겠습니다.
WaveDrom
프로그램 결과 - Timing diagram
백문이 불여일견, 어떤 Timing diagram이 나오는 지 먼저 보겠습니다.
기본 clock은 물론 edge 표시도 되며, 0과 1의 표시, 색상 입히기, 중간생략, x 값 표시 등이 가능하다.
왠만한 timing 표시가 다 가능하여 아주 좋다 :)
프로그램 실행 방법
프로그램을 실행하는 방법은 2가지가 있다.
1) 웹사이트로 접속하여 사용 (위의 사이트에서 'Editor' 클릭)
2) exe 파일 다운받아서 사용
2)번의 방법은 아래와 같다.
https://github.com/wavedrom/wavedrom.github.io/releases
github에서 사용자 PC 환경에 맞는 파일을 다운 받고
아래 exe 파일 실행을 한다.
코딩 방법
아래 예시를 통해 이해하면 금방 이해할 수 있다. (원체 코드가 쉽게 구현되어 있다!)
Timing diagram
Source code
{signal: [
{name: 'clk', wave: 'p.........P.......'},
{name: 'rst', wave: '1.01......|.......'},
{name: 'i_run', wave: '0...10....|.......'},
{name: 'i_num_cnt', wave: 'x...50....|.......', data:["100"]},
{name: 'o_idle', wave: '1....0....|...1...'},
{name: 'o_running', wave: 'x..0.1....|..0....'},
{name: 'o_done', wave: 'x..0......|..10...'},
{name: 'c_state', wave: '6....9....|..76...', data:['IDLE', 'RUN', 'DONE', 'IDLE']},
{name: 'is_done', wave: 'x..0......|.10...'},
{name: 'count', wave: 'x..3..3333|333....', data:['0','1','2','3','4','98','99','0']},
]}
- 기본 Positive clock: p, 기본 Negative clock: n (여기에 edge 추가는 대문자)
- 한 주기는 clk 하나(점선)
- 이전 상태를 유지하려면 '.' , 원하는 주기 만큼 갯수 사용
- signal ON: '1', signal OFF: '0'
- 중간 생략: '|'
- X 상태(빗금): 'x'
- 데이터 상태: '숫자(2~9)', 숫자 값에 따라 상태의 색깔이 다르며 뒤에 data: 를 통해 안에 내용 채움
{signal: [
{name: 'i_num_cnt', wave: 'x...2....0....|.......', data:["100"]},
{name: 'i_num_cnt', wave: 'x...3....0....|.......', data:["100"]},
{name: 'i_num_cnt', wave: 'x...4....0....|.......', data:["100"]},
{name: 'i_num_cnt', wave: 'x...5....0....|.......', data:["100"]},
{name: 'i_num_cnt', wave: 'x...6....0....|.......', data:["100"]},
{name: 'i_num_cnt', wave: 'x...7....0....|.......', data:["100"]},
{name: 'i_num_cnt', wave: 'x...8....0....|.......', data:["100"]},
{name: 'i_num_cnt', wave: 'x...9....0....|.......', data:["100"]},
]}
이상 WaveDrom 소개 끄읏~!
반응형
'Digital Logic > FPGA' 카테고리의 다른 글
FPGA Acceleration(가속화), 꼭 알아두어야 할 그것. (0) | 2021.07.12 |
---|---|
[IP 설계] AXI4-Lite Interface 란? (0) | 2021.05.11 |
FPGA 설계에 있어 중요한 점은? 큰 줄기를 잡고 가자 (0) | 2021.05.05 |
Vivado로 FPGA 설계 예시 - Frame grabber (0) | 2021.04.11 |
Vivado 프로그램 이란? (0) | 2021.04.11 |
댓글