검색결과 리스트
글
verilog $setup, $hold, $width
Timing check
- $setup, $hold, $width : 가장 일반적이고 많이 사용하는 timing checking system task
- 언제나 secify block 안에서만 사용 가능하다.
● $setup and $hold checks
- setup, hold : 순차 회로에서 clock의 전후로 data의 최소 유효 시간을 의미한다.
◆ $setup task
Usage : $setup(data_event, reference_event, limit)
-data_event : monitor 하는 신호
-reference_event : data_event 의 기준이 되는 신호
-limit : setup time 필요한 최소 시간
ex) (T reference_event - T data_event) < limit 이면 오류를 보고
즉 data 신호가 늦게 setup 하면 detect!!!!!!!
ex) specify
$setup(data, posedge, 3);
endspecify
◆ $hold task
Usage : $hold(reference_event, data_event, limit)
reference_event : data_event의 기준이 되는 신호
data_event : monitor 하는 신호
limit : holding time
ex) (T data_event - T reference_event) < limit 이면 오류를 보고
즉 data 신호가 reference 신호를 시작으로 얼마만큼 지속(hold) 시키지 못하면 detect!!
specify
$hold(posedge clk, data, 5)
endspecify
◆ $width check
- 펄스의 폭을 check할때 사용하는것
Usage : $width(reference_event, limit);
reference_event : edge-triggered event
limit : 펄스 width 의 최소 시간
-data_event 가 없는 이유는 처음 오는 edge_trigger 다음에 오는 반대 edge_trigger가 data_event 가 되기 떄문이다.
'Learning stuff' 카테고리의 다른 글
SRAM timing diagram (0) | 2013.01.30 |
---|---|
SIMD (0) | 2013.01.29 |
Cache Optimization (0) | 2013.01.25 |
matlab index (0) | 2012.12.12 |
matlab_classdef (0) | 2012.12.12 |