Gate Level Simulations - "X"가 막나와~~

문제는 머냐..잘 정리해둔 곳에서 가져와보자..아래글 참고


출처 : Synchronizer 시뮬레이션 문제


사실, metastable을 피하는 방법은 예전에 한번 posting한 적이 있는데요.


Metastable을 피하는 가장 머리가 편한 방법은 2개의 F/F을 직렬로 사용하는 2-flop 방법입니다. 

...

그런데, 1-flop이던 2-flop이던 F/F을 이용하여 동기화기(synchronizer)를 만들고 이 회로에 대한 타이밍 시뮬레이션 할 때, 동기화기로 사용한 F/F이 setup/hold timing을 만족하지 못하는 경우 F/F의 출력이 unknown으로 되어 전체 시뮬레이션이 망가지는 경우가 있다는 점이지요.


결론적으로 회로는 맞게 동기화기를 삽입해 두었다면, 시뮬레이션 툴에서 "X" 가 막 전달 되어서 골치 때리는 문제는 아래처럼 피해가자는 말씀..


해결방법은 딱 정리해 보면,

출처 : http://www.cadence.com/rl/Resources/white_papers/Gate_Level_Simulation_WP.pdf


Example timing file, The following listing shows an example timing file:


// Disable all timing checks in top.inst1

PATH top.inst1 -tcheck

/* Disable all timing checks in all scopes below top.inst1 except

for instance top.inst1.U3 */

PATH top.inst1... -tcheck

PATH top.inst1.U3 +tcheck


여기도 정리를 잘 해둠, 여기는 쭉 다 읽어 보기 Gate Level Sim은 이렇게 한다는 문서이니깐..

출처 : http://hereitellyouwhatilearnttoday.wordpress.com/2011/11/27/gate-level-simulations-2/

3) tcheck file : A file containing a list of all the first flops of the synchronizes in the design where a timing violation is guaranteed and thus taken cared of by the design such as placing synchronizers.Therefore we dont check timing violations in this path.
Each entry is of the form:

 PATH full_hierarchical_path -tcheck


짤은..


Unknown 'X' Nevada Desert
Unknown 'X' Nevada Desert by murkmad 저작자 표시비영리변경 금지