(디지털)"방법을

V

valxiao

Guest
안녕, 얘들아,
내가 게이트와 문제 수준의 시뮬레이션, ModelSim에서 실행 발생이 나타납니다 다음과 같은 :
-------------------------------------------------- ----------
r에 : ../../libs/modelsim_asic/fsc0g_d_sc.v (18445) : $ 설치 (negedge D 조 & & & ~ SEL : 2,841 ps의, posedge CK 등록 : 3에 NS, 267 ps의);
시간 : 3 ns의 반복 : 5 인스턴스 : /../../../../../ reg_coeff_data_reg_210_
-------------------------------------------------- ----------

Testbench에서 CLK : 영원히 # 3 CLK CLK "= ~ CLK; (6ns)
합성 CLK : clk_period 4.8ns * 0.9 설정
clk_skew 0.4ns 설정
...
그리고 report_max_path입니다 : 0.006ns
왜 아직 $ 함께 설치 위반이 reg_coeff_data_reg_210_?감사합니다!

자위대의 :
(CELL
(CELLTYPE "QDFZCGD")
(예를 들어 ../../reg_coeff_data_reg_210_)
(지연
(절대
(IOPATH CK 등록 질문 (0.381:0.381:0.381) (0.346:0.346:0.346))
)
)
(TIMINGCHECK
(폭 (posedge CK 등록) (0.258:0.258:0.258))
(폭 (negedge CK 등록) (0.620:0.620:0.620))
(설치 (posedge D 조) (posedge CK 등록) (0.276:0.282:0.282))
(설치 (negedge D 조) (posedge CK 등록) (0.261:0.267:0.267))
((posedge D 조) (posedge CK 등록) (-0.099 : -0.103 : -0.103)) 대기
((negedge D 조) (posedge CK 등록) (-0.037 : -0.039 : -0.039)) 대기
(설치 (posedge TD를) (posedge CK 등록) (0.421:0.421:0.421))
(설치 (negedge TD를) (posedge CK 등록) (0.817:0.817:0.817))
((posedge TD를) (posedge CK 등록) (-0.192 : -0.192 : -0.192)) 대기
((negedge TD를) (posedge CK 등록) (-0.155 : -0.155 : -0.155)) 대기
(설치 (posedge SEL) (posedge CK 등록) (0.783:0.783:0.783))
(설치 (negedge SEL) (posedge CK 등록) (0.353:0.353:0.353))
((posedge SEL) (posedge CK 등록) (-0.128 : -0.128 : -0.128)) 대기
((negedge SEL) (posedge CK 등록) (-0.034 : -0.034 : -0.034)) 대기
)
)스탠드 세포
모듈 QDFZCGD (질문, 개발, TD를, CK 등록, SEL);
reg 플래그; / / 알리미 플래그
출력 질문;
입력 D 조, CK 등록, TD를, SEL;
supply1 vcc;

와이어 d_CK,,, d_SEL d_TD d_D;

/ / 함수 블록
`보호
버피의 G3 (질문, Qt를);
dffrsb_udp G2는 (은 Qt, D1에, d_CK, vcc, vcc, 플래그);
mux2_udp G4의 (D1에, d_D, d_TD, d_SEL);

/ / 지정 블록
지정

/ / 모듈 경로 지연
(* "(질문 : 1'bx)) CK 등록 posedge = (10.68:16.82:30.00, 11.19:17.49:31.13);

/ / 설치 및 잠깐 시간
setup_D_CK = 9.30 specparam;
hold_D_CK = 0.00 specparam;
setup_TD_CK = 10.30 specparam;
hold_TD_CK = 0.00 specparam;
setup_SEL_CK = 8.60 specparam;
hold_SEL_CK = 0.00 specparam;
$ setuphold (posedge CK 등록, posedge D 조 & & & ~ SEL, 7.91:13.35:25.21, -2.94 : -4.93 : -8.41, 플래그,,,, d_D) d_CK;
$ setuphold (posedge CK 등록, negedge D 조 & & & ~ SEL, 6.55:11.99:24.10, -1.46 : -2.09 : -2.87, 플래그,,,, d_D) d_CK;
$ setuphold (posedge CK 등록, & & & SEL, 10.87:18.28:36.31, -4.92 TD를 posedge : -8.14 : -14.82, 플래그,,,, d_TD d_CK);
$ setuphold (posedge CK 등록, & & & SEL, 22.09:38.87:79.21, -7.51 TD를 negedge : -9.99 : -14.21, 플래그,,,, d_TD d_CK);
$ setuphold (posedge CK 등록, posedge SEL, 22.58:38.87:78.10, -4.92 : -7.64 : -13.35, 플래그, d_CK, d_SEL);
$ setuphold (posedge CK 등록, negedge SEL, 11.61:19.14:35.81, -1.59 : -2.59 : -3.36, 플래그, d_CK, d_SEL);

/ / 최소 펄스 폭
mpw_pos_CK = 15.64 specparam;
mpw_neg_CK = 17.40 specparam;
$ 폭 (posedge CK 등록, 6.87:12.53:25.83, 0, 플래그);
$ 폭 (negedge CK 등록, 17.95:30.51:62.04, 0, 플래그);
endspecify
`endprotect
endmodule
`endcelldefine

합성했을 때, 난 "set_fix_hold CLK"사용

 
당신 위반 STA를 확인하는 도구를 실행해야합니다.

 
안녕,
만약 타이밍을 만났 먼저 확인 STA를 사용할 수있습니다.
아니라면 당신은 아직 가고 싶지, sdf 파일을 수동으로 수정 pls

 
위반 첫 번째 클럭 상승 에지에서 발생합니다.당신은 Testbench 설치에 약간의 문제가없는 거 같군.어떻게 입력 드라이브를 어떻게 설계 핀?
이런 종류의 문제를 디버깅하는 가장 좋은 방법은 일반적으로 파형을 덤프하고 위반이 발생했을 때 시간이 지점을 확인합니다.
GUI를 Netlist NanDigits에서 디버그 도구를 GOF 매우 게이트 수준의 Netlist 디버그에 편리합니다.그것 위반 세포 분리 수 있으며 위반 루트까지 셀 입력을 추적.
전리품을 가지고 배선 논리를 분리하는 부분
http://www.nandigits.com/partial_schematic.htm
또한 그것은 Gtkwave과 노바 nWave 인터페이스를하고있다.
http://www.nandigits.com/waveform_restore.htm

희망이 도움이됩니다.

Nandy
www.nandigits.com
Netlist 디버그 / 에코의 GUI 모드에서

 
안녕,

설치 도구로보고 그 때 데이터 2.841ns에서, 그리고 3ns에서 클럭 상승을 변경했다.마찬가지로 FF로 0.267ns 설치 요구 사항을 가지고, 거기 (2.841 0.267 - 3) 설치 violatoin입니다.

자료에 대한 설명하면, 그것은 시계를 6ns에서, 그리고 3ns 상승해야합니다 보인다.

안부,
영어 한

 

Welcome to EDABoard.com

Sponsor

Back
Top