AMI(Algorithmic Modeling Interface)

원 포인트 레슨 2015. 10. 6. 22:00

SERDES algorithmic model 트랜스미터와 리시버는 AMI_Init, AMI_GetWave, AMI_Close 3 개의 함수로 구성된다. 함수에 대한 인터페이스는 초기화, 타임 세그먼트 시뮬레이션, 시뮬레이션 종료 등에 관한 시뮬레이션 처리 단계의 다른 과정을 지원하도록 디자인되어 있다. 함수는 단일 공유 라이브러리 안에서 제공되어야만 한다. 3 가지 중에서 AMI_Init 항상 필요한 함수 이다.

 

어플리케이션 시나리오

  • Linear, time-invariant equalization model

  1. 시스템 netlist 로부터 EDA 플랫폼은 주워진 모델이 IBIS 기술되는지 결정한다.

  2. IBIS 파일로부터 EDA 플랫폼은 모델이 algorithmic model로서 기술되는 지와 모델의 AMI_Init 함수가 모델의 임펄스 응답을 돌려주는 지를 결정한다.

  3. EDA 플랫폼은 algorithmic model 포함한 공유 라이브러리를 로드하고 AMI_Init, AMI_GetWave, AMIN_Close 함수의 주소를 얻는다.

  4. EDA 플랫폼은 AMI_Init 아규먼트를 조립한다. 아규먼트는 모델을 구동하는 채널의 임펄스 응답, 모델에 의해 사용되는 동적 메모리 핸들, 모델을 구성하는 파라미터, 옵션으로 어떤 크로스톡 간섭자의 임펄스 응답 등을 포함한다.

  5. EDA 플랫폼은 앞에 준비된 아규먼트로 AMI_Init 호출 한다.

  6. AMI_Init 구성 파라미터를 분석(parse)하고, 동적 메모리를 할당하고, 메모리 핸들에서 동적 메모리의 시작 주소를 배치하고, 블록의 임펄스 응답을 계산하고 수정된 임펄스 응답을 EDA 툴로 전달한다. 새로운 임펄스 응답은 필터된 임펄스 응답을 표현할 것이다.

  7. EDA 플랫폼은 AMI_Init 으로 구한 임펄스 응답(주워진 모델의 행동에 대한 완전한 표현물) 이용해서 시뮬레이션/분석의 나머지를 계산한다.

  8. 나가기 전에, EDA 플랫폼은 AMI_Close 호출해서 모델에 대한 메모리 핸들 주소를 준다.

  9. AMI_Close는 블록 대한 동적 매모리를 할당 해제하고 필요한 청소 작업을 수행한다.

  10. EDA 플랫폼은 실행을 끝낸다.

  • Nonlinear, and/or time-variant equalization model

  1. 시스템 netlist 로부터 EDA 플랫폼은 주워진 모델이 IBIS 기술되는지 결정한다.

  2. IBIS 파일로부터 EDA 플랫폼은 모델이 algorithmic model로서 기술되는지 결정한다.

  3. EDA 플랫폼은 algorithmic model 포함한 공유 라이브러리를 로드하고 AMI_Init, AMI_GetWave, AMIN_Close 함수의 주소를 얻는다.

  4. EDA 플랫폼은 AMI_Init 아규먼트를 조립한다. 아규먼트는 모델을 구동하는 채널의 임펄스 응답, 모델에 의해 사용되는 동적 메모리 핸들, 모델을 구성하는 파라미터, 옵션으로 어떤 크로스톡 간섭자의 임펄스 응답 등을 포함한다.

  5. EDA 플랫폼은 앞에 준비된 아규먼트로 AMI_Init 호출 한다.

  6. AMI_Init 구성 파라미터를 분석하고, 동적 메모리를 할당하고, 메모리 핸들에서 동적 메모리의 시작 주소를 배치하고, 블록의 임펄스 응답을 계산하고 수정된 임펄스 응답을 EDA 툴로 전달한다. 새로운 임펄스 응답은 필터된 임펄스 응답을 표현할 것이다.

  7. 시뮬레이션 시간은 multiple time segments 쪼개질 있다. time segment 대해서, EDA 플랫폼은 모델의 input waveform 계산한다. 예들 들어, 100 bits 실행되어야 한다면, 각각이 1000 bits 1000개의 segments 구성된다.

  8. time segment에서, EDA 플랫폼은 AMI_GetWave 함수를 호출해서 입력 waveform 블록에 대한 동적 메모리 핸들의 주소를 전달한다.

  9. AMI_GetWave 함수는 블록 대한 출력 waveform 을 계산한다. 트랜스미터의 경우, 그것은 리시버에 대한 입력 전압이다. 리시버의 경우, 이것은 리시버의 결정 포인트에서 전압 파형이다.

  10. EDA 플랫폼은 리시버 AMI_GetWAve 함수의 출력을 사용해서 시뮬레이션/분석을 완성한다.

  11. 나가기 전에, EDA 플랫폼은 AMI_Close 호출해서 모델에 대한 메모리 핸들 주소를 준다.

  12. AMI_Close는 블록 대한 동적 매모리를 할당 해제하고 필요한 청소 작업을 수행한다.

  13. EDA 플랫폼은 실행을 끝낸다.

 

레퍼런스 시스템 분석 플로우

시스템 시뮬레이션은 공통적으로 TX RX algorithmic model 포함할 것이다. LTI non-LTI 행동 algorithmic model 모델 있기 때문에, 어떤 모델로 실행할 것인가는 시뮬레이션 결과에 영향을 미칠 있다. 다음 단계는 기준 시스템 플로우 이다. 다른 방법이 사용될 있지만 최종 시뮬레이션 파형은 기준 시뮬레이션 플로우의 결과 파형과 일치될 것이다.

  1. 시뮬레이션 플랫폼은 아날로그 채널에 대한 임펄스 응답을 구한다. 이것은 트랜스미터 출력, 채널, 리시버 아날로그 프론터 엔드 조합의 임펄스 응답을 나타낸다. 임펄스 응답은 이퀄라이제이션 같은 필터링이 없는 트랜스미터의 출력 특성을 표현한다.

  2. 1단계의 출력은 TX 모델의 AMI_Init 호출에 표현된다. TX 모델에 대해 Use_Init_Output True 설정되면, TX AMI_Init 호출에 의한 임펄스 응답이 3단계로 전달된다. 만약 TX 모델에 대해 Use_Init_Output False 설정되면, 2단계로 전달된 임펄스 응답이 그대로 3단계로 전달된다.

  3. 2단계의 출력이 RX 모델의 AMI_Init 호출에 표현된다. RX 모델에 대해 Use_Init_Output True 설정되면, RX AMI_Init 호출에 의한 임펄스 응답이 4단계로 전달된다. 만약 RX 모델에 대해 Use_Init_Output False 설정되면, 3단계로 전달된 임펄스 응답이 그대로 3단계로 전달된다.

  4. 시뮬레이션 플랫폼은 3단계의 출력을 취한 입력 비트스트림 단위 펄스와 조합해서 아날로그 파형을 만든다.

  5. 4단계의 출력은 TX 모델의 AMI_Getwave 호출에 표현된다. TX 모델이 AMI_Getwave 호출을 포함하지 않으면 단계는 건너뛰고 5단계 입력이 바로 6단계로 전달된다.

  6. 5단계의 출력이 RX 모델의 AMI_Getwave 호출에 표현된다. RX 모델이 AMI_Getwave 호출을 포함하지 않으면 단계는 건너뛰고 6단계 입력이 바로 7단계로 전달된다.

  7. 6단계의 출력이 RX 결정 포인트에서 시뮬레이션 출력 파형이 된다. 이것은 시뮬레이션 툴에 의해서 후처리 있다.

4단계에서 7단계는 full 아날로그 파형을 처리하기 위해서 이상 호출될 있다. Full 아날로그 파형을 다중 호출로 쪼개는 것은 시뮬레이션을 요구되는 메모리를 최소화 하고 AMI_Getwave 때마다 모델 상태를 돌려줄 있게 해준다. 입력 파형의 모든 블록이 처리되면, TX AMI_Close RX AMI_Close 호출되어 마지막 처리를 수행하고 할당된 메모리를 해제한다.

 

 

옵션 항목:

  • Init_Returns_Impulse: EDA 플랫폼에게 AMI_Init 함수가 수정된 임펄스를  돌려줄지 여부를 말한다. True 설정되면, 모델은 이퀄라이제이션 임펄스 응답을 포함한 임펄스 응답의 컨벌루션을 돌려준다.

  • GetWave_Exists: EDA 플랫폼에게 AMI_GetWave 모델에서 실행될 여부를 말한다. Init_Returns_Impluse False 설정되면, GetWave_Exists 반드시 True 설정되어야 한다.

  • Use_Init_Output: EDA 플랫폼에게 AMI_GetWave 모델에서 실행될 여부를 말한다. 옵션이 True 설정되면, EDA툴은 AMI_GetWave 함수의 입력 파형 표현을 만들 , AMI_Init 함수로부터의 출력 임펄스 응답을 사용한다. False 설정되면, AMI_GetWave 함수의 입력 파형 표현을 만들 , 채널의 필터 되지 않은 원래 임펄스 응답을 사용한다.


: