문서 ID: 000083603 콘텐츠 형태: 문제 해결 마지막 검토일: 2013-08-01

재설정을 주장하면 UniPHY NIOS 시퀀서의 잠금 가능성이 낮아져 불완전한 교정이 발생할 수 있는 이유

환경

BUILT IN - ARTICLE INTRO SECOND COMPONENT
설명

UniPHY IP는 UniPHY IP에 대해 global_reset_n 또는 soft_reset_n 신호를 낮게 주장하고 해제한 후 교정을 완료하지 않습니다. EMIF 디버그 툴킷은 해당 인터페이스에 연결할 수 없습니다(프로젝트에 장치 연결). 나중에 여러 리셋이 발행되더라도 이 조건은 변경되지 않습니다.   이 조건은 장치를 재구성해야만 복구할 수 있습니다.

이러한 증상은 EMIF UniPHY IP의 내부 재설정 구조로 인해 발생할 수 있습니다.  M20K RAM의 주소 버스를 구동하는 로직에 대한 비동기 재설정 어설션으로 비동기 로직 전파가 발생할 수 있습니다.  이는 M20K 주소 행/열 디코더의 기능에 영향을 미칠 수 있으며, 두 개 이상의 단어줄을 열면 비트 셀 간에 충전 공유가 발생하여 M20K의 내용이 손상됩니다.  비동기 재설정 어설션으로 인한 M20K 손상 가능성은 매우 낮습니다.

M20k 읽기 또는 쓰기 작업 중 PLL 재설정은 PLL 잠금 손실로 인해 재설정 중 클럭 결함이 발생할 수 있으므로 임베디드 RAM/ROM 손상에 기여할 수 있으며, 이는 M20K 주소 행/열 디코더의 기능에 영향을 줄 수 있습니다.

이 손상은 교정에 사용되는 Nios® II 프로세서가 포함되어 있고 프로세서의 프로그램 코드가 M20K RAM에 저장되어 있기 때문에 UniPHY IP에 영향을 미칩니다.  Nios® II 프로그램 메모리 내에서 손상이 발생하면 Nios® II 시퀀서가 잠기게 되어 불완전한 교정이 발생할 수 있습니다.  M20K 콘텐츠는 장치 프로그래밍 중에만 로드되기 때문에 이 상황에서 복구는 장치를 다시 프로그래밍해야만 가능합니다.

아래에 나열된 일반적인 EMIF 오류가 반드시 M20K RAM이 손상되었거나 Nios® II 시퀀서가 잠겨 있는 것은 아닙니다.

- 교정이 통과되지 않을 경우(즉, 교정이 항상 실패함).

- 교정 여백이 매우 슬림하고 때때로 교정에 실패하는 경우.

- 설계가 캘리브레이션을 통과한 경우, 설계를 실행하는 동안 가끔 데이터 오류가 관찰됩니다.

- 설계가 교정을 통과했다고 말하지만 설계가 예상대로 작동하지 않는 경우.

 

해결 방법

UniPHY IP 코어에는 두 개의 리셋 입력이 있습니다.

Global_reset_n: PLL을 포함한 UniPHY IP의 모든 것에 연결되어 있습니다.

Soft_reset_n: PLL을 제외한 UniPHY IP의 모든 것에 연결되어 있습니다.

1. Altera 항상 soft_reset_n만 사용하는 것이 좋습니다.  전원 켜기 재설정에만 global_reset_n 사용하십시오.

전원이 켜진 동안 PLL을 재설정하려면 다음 시퀀스를 사용하십시오.

a.      어설션 Global_reset_n(PLL 재설정)

B.     칩의 전원을 켜고 재구성합니다.

c. de-assert Global_reset_n

2. 수정은 동기화 리셋을 사용하기 위해 UNIPHY IP 코어의 내부 재설정 컨트롤러 및 재설정 구조를 변경하고 재설정 조건 중에 M20K clock_enable 포트를 선제적으로 해제합니다.  이렇게 하면 전이 가능한 전환이 M20K 주소 디코더로 전파되지 않습니다.

이 수정은 13.0dp1, 13.0sp1 및 모든 후속 버전의 Quartus의 일부로 제공됩니다.  사용자는 UnipHY IP를 재생성하고 디자인을 다시 컴파일해야 합니다.  Altera 이러한 Quartus 버전 중 하나로 이동하는 것이 좋습니다.

수정이 더 시급하거나 Quartus 버전 12.1sp1에 수정이 필요한 경우 UniPHY IP 코어를 수동으로 업데이트할 수 있습니다.  다음 절차를 따라야 합니다.

설계 내에서 Altera UniPHY IP의 소스 파일을 찾습니다.
수정해야 하는 파일은 5개 있습니다.

altera_reset_synchronizer.v

altera_reset_controller.v

altera_mem_if_sequencer_mem_no_ifdef_params.sv

_if0_p0_reset.v

_if0_s0.v

단계

1. 다음 링크에서 altera-reset-syncer.v 를 다운로드하고 UniPHY IP 소스 파일과 동일한 디렉토리에 배치합니다. Altera_reset_syncer.v

2. 다음 링크에서 altera-reset-controller.v 를 다운로드하고 UniPHY IP 소스 파일과 동일한 디렉토리에 배치합니다. Altera_reset_controller.v

3. in altera_mem_if_sequencer_mem_no_ifdef_params.sv' - 입력 's1_clken'이 'the_altsyncram'의 'clocken0' 입력에 연결되었는지 확인합니다.

4. 예를 들어_if0_p0_reset.v – "dut_if0_p0_reset_sync" 인스턴스에 대한 defparam 문을 수정하여 첨부된 샘플 파일(dut_if0_p0_reset.v)에 따라 매개변수가 "RESET_SYNC_STAGES"과 "NUM_RESET_OUTPUT"로 설정되도록 합니다. (UniPHY IP 소스 파일 디렉토리에서 샘플 파일을 다운로드하지 마십시오)

dut-if0-p0-reset.v(

5. _if0_s0.v

(UniPHY IP 소스 파일 디렉토리에서 샘플 파일 dut_if0_s0.v를 다운로드하지 마십시오)

dut-if0-s0.v(_if0_s0.v 샘플 파일)

– 최상위 레벨에 다음 포트를 추가합니다.

와이어 early_rst_controller_reset_out_reset;

- "rst_controller" 모듈의 출력 포트 "m20k_gate"를 'sequencer_mem' 모듈의 's1_clken' 입력에 연결합니다.  M20k_gate 출력이 활성-낮기 때문에 다음과 같이 출력을 반전해야 합니다.

.s1_clken(~early_rst_controller_reset_out_reset), //sequencer_mem, 첨부된 샘플 파일의 785줄(dut_if0_s0.v)

.m20k_gate(early_rst_controller_reset_out_reset), //rst_controller, 첨부된 샘플 파일의 2572줄

6. 이러한 변경 사항이 발생하면 설계를 다시 컴파일해야 합니다.

 

관련 제품

이 문서는 다음 항목에 적용됩니다. 6 제품

Arria® V GZ FPGA
Stratix® IV GX FPGA
Arria® II GX FPGA
Stratix® V GX FPGA
Cyclone® V GX FPGA
Arria® V GX FPGA

1

이 페이지의 콘텐츠는 원본 영어 콘텐츠에 대한 사람 번역 및 컴퓨터 번역의 조합으로 완성되었습니다. 이 콘텐츠는 편의와 일반적인 정보 제공을 위해서만 제공되었으며, 완전하거나 정확한 것으로 간주되어선 안 됩니다. 이 페이지의 영어 버전과 번역 간 모순이 있는 경우, 영어 버전이 우선적으로 적용됩니다. 이 페이지의 영어 버전을 확인하십시오.