FPGA의 전원을 켜고 구성하지 않은 경우 어떻게됩니까?


10

FPGA를 오랫동안 프로그래밍되지 않은 상태로두면 어떻게되는지에 대한 전반적인 이해를 얻으려고합니다.

FPGA를 가지고 있고 장시간 동안 (전원을 켠 후 몇 분에서 몇 시간) 프로그래밍되지 않은 상태로 유지한다고 가정합니다. 즉, 비트 스트림이없는 경우 디바이스에 좋지 않은가요? 항상 전원이 켜진 FPGA에 약간의 비트 스트림을 갖는 것이 권장됩니까? 이것에 관한 일반적인 의견은 무엇입니까?

기기 나 제조업체에 따라 결과가 달라 집니까 (Xilinx vs. Altera vs. Other)?


추가 정보:

Xilinx Virtex-6 FPGA를 사용하는 맞춤형 SoC 보드가 있습니다. 또한 참조 목적으로 사용하는 Xilinx ML605가 있습니다.

커스텀 보드 : 보드의 전원을 켭니다. XMD (Xilinx Microprocessor Debugger)를 사용하여 프로그래밍하는 데 짧은 시간이 걸린다는 것을 알았습니다. 20-30 초 창이 사라지면 다시 시도하기 전에 보드를 껐다 켜야합니다. ML605에서는 발생하지 않습니다.

XMD를 통해 사용자 정의 보드를 프로그래밍하려고하면 다음과 같은 결과가 나타납니다.

Error: Device Reset by JPROGRAM command, failed. INIT_COMPLETE did not go high.

당신이 무슨 생각을하는지 제게 알려주세요.


1
질문과 편집에서 "장기"를 강조합니다. 몇 초 또는 몇 시간인지 정말 중요합니까? 나는 그렇게 생각하지 않습니다 ..
m.Alin

맞춤형 FPGA 보드에서 20-30 초의 프로그래밍 창이 나타나는 현상이 나타납니다. 이 창에서 프로그래밍하지 않으면 성공적으로 프로그래밍 할 수 없습니다. 내 질문의 중심 주제는 시간이 아니라 현상을 이해하는 것입니다.
boffin

장치에 전혀 연결할 수 있습니까? 아니면 프로그래밍하려고 할 때 실패합니까? 프로그래머가 제공하는 오류는 무엇입니까?
embedded.kyle

1
JTAG를 통해 FPGA를 직접 프로그래밍하고 있습니까, 아니면 먼저 플래시 칩을로드 한 다음 FPGA가이를 통해 구성하도록 하시겠습니까?
ajs410

@fpga_boffin, 질문에 이러한 세부 정보를 추가 할 수 있습니까?
Jon L

답변:


7

이것은 흥미로운 질문입니다. 개인적 경험으로, 어셈블리 보드에서 새 보드가 들어올 때 나머지 회로를 점검하면서 프로그래밍되지 않은 상태로 몇 시간 동안 FPGA의 전원을 켜 두었습니다. 나는 그렇게함으로써 어떤 해로운 영향도 느끼지 못했다. 그러나 나는 솔직히 그것에 대해 생각하지 않았습니다.

FPGA 제조업체의 권장 사항을 찾으려고 시도했지만 찾을 수 없었습니다. 이 상태와 관련하여 내가 찾은 유일한 말은 격자 백서에서 발췌 한 것이며 FPGA 자체의 설계에 관한 것이며 사용 방법은 아닙니다.

사전 프로그래밍 된 정적 대기 디바이스 전력 소비는 디바이스를 프로그래밍하기 전에 FPGA가 소비하는 전력량입니다. 대기 디바이스 전력 소비를 위해 FPGA는 프로그래밍되지 않은 상태이지만 전원이 공급되었습니다. FPGA 디바이스는 개념적으로 과도한 전력을 소비하고 잠재적으로 전원 공급 장치를 차단하여 보드 자체와 시스템을 성공적으로 초기화하지 못하므로이 시간 동안 디바이스가 상당한 전력을 소비하지 않는 것이 중요합니다.
따라서 FPGA 공급 업체는 더 높은 성능이 요구되는 영역 (예 : I / O 및 SERDES)을 훼손하지 않으면 서 저 정적 3 설계 저전력 반도체 반도체 백서 전력 풋 프린트를 갖는 트랜지스터를 신중하게 설계해야합니다.

자일링스는 마찬가지로 대기 전류가 무엇인지 언급하므로 이에 따라 전원 공급 장치를 설계 할 수있다. 그러나 장치에 미치는 영향이 장치를 그러한 상태로 두는 것에 대해서는 언급하지 않습니다.

정적 또는 대기 전력은 주로 트랜지스터 누설 전류에 의해 좌우됩니다. 이 전류가 데이터 시트에 나열되면 ICCINTQ로 나열되고 FPGA 코어에 전원을 공급하는 VCCINT 전원을 통해 공급되는 전류입니다.

누군가가 장치를 정지 상태로 두지 않아 손상을 입은 경우 듣고 싶습니다. 그러나 전원 공급 장치가 장치와 올바르게 일치하는 한 문제가 없어야한다고 생각합니다.


6

Spartan 3 데이터 시트를 참조하고 있습니다. 그것이 가장 익숙한 FPGA이기 때문입니다.

2 장 (기능 설명)을 보면 "구성"섹션에 몇 가지 흐름도가 있습니다. 그림 27 (50 페이지)은 Flash에서로드하기위한 흐름도를 보여줍니다. 그림 28은 JTAG 흐름도를 보여줍니다.

다음은 간단한 요약입니다.

1) Vccint, Vccaux 및 Vcco가 필요한 수준에 도달 할 때까지 기다립니다.

2) 구성 래치 지우기

3) INIT_B가 높아질 때까지 기다리십시오. INIT_B는 구성을 지연시키기 위해 외부 마스터가 낮게 유지할 수있는 오픈 드레인 출력입니다.

4) 샘플 모드 핀. 이는 JTAG 또는 Flash를 통해로드할지, 그리고 FPGA 또는 Flash가 마스터인지 Flash인지를 결정합니다.

5) 구성 데이터 프레임을로드하십시오.

6) 데이터 프레임의 CRC가 올바른지 확인하십시오. 올바르지 않은 경우 FPGA는 INIT_B를 낮게 구동하여 CRC 오류를 나타내며 시작을 중단합니다.

5 단계는 아마도 당신의 실제 질문이있는 곳 일 것입니다-로드 할 것이 없다면 어떻게됩니까? 글쎄, 당신은 안 얻을 당신이 바로 일을하는 경우 5 단계로. 플래시 칩은 데이터를 FPGA에 제공 할 준비가 될 때까지 INIT_B를 낮게 유지합니다. JTAG를 사용하는 경우 JTAG 프로그래머가 INIT_B를 낮게 유지할지 확실하지 않지만 FPGA를 프로그래밍 할 때 PROG_B를 거의 확실하게 주장합니다 (낮게 구동하여). 2 단계로

내가 당신이라면, 전원을 켜는 동안 INIT_B 신호의 범위를 지정하여 무슨 일이 일어나고 있는지 볼 것입니다. 낮게 시작했다가 다시 높아지면 다시 FPGA가 시작 시퀀스를 중단하고 FPGA를 재설정하려면 PROG_B를 지정해야합니다.


귀하의 답변은 5 단계 이전에 FPGA의 내부 상태에 대해 아무 것도 말하지 않습니다. 이것이 OP가 알고 싶어하는 것입니다.
stevenvh

2 단계. 구성 래치를 지 웁니다. 3 단계, INIT_B를 기다리고 있습니다. 또한로드 할 구성 데이터가 없을 때마다 FPGA가 어떤 결정을 내릴 수 있는지에 대해 논의합니다 (INIT_B는 CRC 오류를 나타 내기 위해 낮아짐).
ajs410

1
내 사과, 내가 참조하는 데이터 시트는 2005 년경이며 2009 년에 업데이트되었습니다. 그러나 실제로 내 의견을 철저히 읽으면 그것을 찾을 수 있었을 것입니다. 구성 표제 아래의 2 장, 기능 설명. 링크는 최신 데이터 시트와 새 페이지 번호를 가리 키도록 업데이트되었습니다.
ajs410

0

기본 구성은 장치를 보편적으로 사용할 수 있도록 가능한 한 수동적입니다.

Altera Cyclone 시리즈의 경우 (가장 경험이 많은)

  • I / O 핀이 VCCIO로 약하게 당겨집니다 (액티브 로우 칩 인 에이블 라인이있는 IC를 버스에서 분리).
  • CONF_DONE 출력은 로우 (구성이로드 될 때까지 재구성 할 때뿐만 아니라 알려진 상태로 복원 당신이 재설정에 보관하는 다른 IC의 리셋 핀에 연결합니다 수 있습니다) 뽑아됩니다
  • 클럭 입력은 클럭 네트워크로 전달되지 않습니다.

다른 FPGA 유형은 비슷하게 정지해야하며 구성 상태를 나타내는 비 반전 및 반전 출력을 나머지 보드에 제공해야합니다.

코어가 외부 세계와 상당히 격리되어 있기 때문에 장치를 그 상태로 두는 것은 무해합니다. 풀업에만 작은 전류가있을 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.