FPGA-DIY 프로그래밍


9

저는 몇 년 동안 마이크로 컨트롤러를 프로그래밍 해 왔으며 디지털 디자인 클래스를 수강 한 후 FPGA를 발견했습니다. 다른 FPGA, 개발 보드 등에 대한 연구를 한 후에도 최종 "제품"의 내 자신의 버전을 만드는 방법을 알지 못하므로 구매를 주저하고 있습니다. PIC, SAM, AVR 등을 사용자 정의 PCB에 아무 문제없이 넣었으므로 걱정할 필요가 없습니다. 제 주요 관심사는 제조업체 보드없이 FPGA를 프로그래밍하는 것입니다.

내 특정 질문 : Quartus, Vivado, iCEcube 등에서 생성 된 비트 맵 파일을 가져 와서 주소 0에서 시작하여 (예 : FT2232H를 통해) SPI 플래시 메모리 칩에 썼고 플래시 메모리를 FPGA의 SPI 핀 (MODE 구성이 올바르게 설정된 상태)?

나는 부분적인 가설에 대해 사과한다. 나는 이것이 Lattice의 Diamond Programmer의 모든 것이라고 확신하지만, 그 접근 방식이 다른 제조업체의 FPGA에서 작동하는지 또는 Quartus가 메모리에 "창 드레싱"또는 헤더를 추가하여 작성하는 동안 추가 할 수 있는지 궁금했습니다.

질문을 개선 / 명확하게하기 위해 할 수있는 일이 있는지, 또는 FPGA 프로그래밍 프로세스에서 중요한 점이 없는지 알려주십시오. 감사!


"비트 맵"이란 비트 스트림을 의미합니까?
유진 Sh.

이 질문은 전에 다른 화신으로 요청되었습니다
전압 스파이크

1
첫 번째 FPGA 보드 설계에서 두 가지 장치 프로그래밍 방법 (공급 업체의 JTAG 헤더)을 제공하는 것이 좋습니다. 점퍼 위치를 지정하여 필요에 따라 MODE 핀을 변경할 수 있습니다. 이를 망쳐 놓는 것은 매우 쉽고 백업 계획을 세우는 것이 좋습니다. 또한 INIT 및 DONE (또는 래티스가 프로그래밍 상태를 나타내는 데 사용하는 모든 것)에 대한 테스트 포인트를 제공해야합니다.
광자

2
BGA를 마운트하는 데 필요한 프로세스 제어, 특히 핀 수가 많은 프로세스 제어는 QFP와 같은 것보다 더 엄격합니다. 볼이 더 많다는 것은 브리징 또는 연결 불량 가능성이 높다는 것을 의미하며 숨겨져 있기 때문에 물건을 실행하기 전에 (X 선이없는 한) 문제를 감지 할 수 없습니다. 어떤 문제. 그리고 당신이 구성 요소를 다시 장착하면 더 장비가 필요한 구성 요소를 리 볼링해야합니다. FPGA는 또한 손상을 원하지 않는 고가의 칩입니다. 대형 BGA는 PCB 예열기와 같은 것들이 필요한 곳입니다.
DKNguyen

1
나는 기술자들이 하루 종일 재 작업을 한 곳에서 일했고 뜨거운 공기 스테이션 (열건보다 더 엄격한 온도 제어 및보다 신뢰할 수있는)을 가지고 있었고 납땜 BGA를 안정적으로 수공 할 수 없었습니다. 나는 그들이 예열기를 가지고 있다고 생각하지 않기 때문에 당신이 그것을 시도한다면, 예열기를 가져 와서 저렴한 칩을 사용하십시오 (데이지 체인 더미 BGA 패키지 일 수도 있습니다. 진짜).
DKNguyen

답변:


12

예, 잘 작동합니다.

실제로, 대부분의 FPGA를위한 개발 도구를 사용하면 FPGA의 자체 JTAG 연결을 통해 외부 플래시를 직접 프로그래밍 할 수 있으므로 플래시를위한 별도의 프로그래밍 인터페이스가 필요하지 않습니다.


1
Lattice Mach X02와 같은 일부 제품에는 온보드 플래시가 내장되어 있으므로 Lattice 프로그래밍 포드에 연결하려면 몇 개의 저항과 5x2 헤더 만 있으면됩니다.
Spehro Pefhany

Vivado / Quartus와 같은 도구에서 JTAG를 통해 플래시를 직접 프로그래밍 할 수 있다는 것을 알고있었습니다. 벤더별 케이블을 구매하지 않고도 할 수 있기를 바랐습니다 .FT2232H를 사용하고 비트 스트림을 쓰지 마십시오. 비트 맵?) 자신. 그래도 Quartus가 칩을 지원한다고 생각하지 않으며 Vivado가 공개적으로 지원하지 않는다고 생각합니다 (Nyxs 및 Basys 보드에서 칩을 사용하더라도).
Blake Lucas

1
예, 다른 방법으로 비트 파일로 플래시를 프로그래밍 할 수 있습니다. MCU 프로그래머 중 한 명이 할 수 있습니다. 내 Segger J-link가 확실히 할 수 있다는 것을 알고 있습니다.
DKNguyen

@Toor : 실제로 벤더 전용 케이블은 아니지만 벤더 도구에서 하드 코딩 된 지원을 제공하고 있으며 Segger는 FT2232H보다 약간 비쌉니다.
벤 Voigt

2
거의 모든 주요 벤더가 엔지니어링 문서를 제공하므로 통합 시스템이나 테스트 장비에서 때때로 바람직하기 때문에 사용자 정의 도구를 사용하여 결정된 업로드 비트 스트림을 해당 부품 (FPGA 및 사용자 정의 구성 플래시)에 업로드 할 수 있습니다. 공급 업체가 지원하는 장비 (특히 처음에)를 사용하는 것이 가장 간단하지만 몇 년에 걸쳐 특정 프로젝트에 대한 대체품을 여러 번 구현했습니다. 원래 FPGA 보드 프로젝트의 어려운 부분은 보드에서 FPGA가 필요로하는 모든 지원 일 수 있습니다. 종종 여러 가지 독특한 전압을 위해 라우팅 및 바이 패스하기위한 많은 전력 쌍이 있습니다.
Chris Stratton

3

""에서 생성 한 [sic] 비트 맵 [sic] 파일이라고 말하면 올바른 파일을 선택하는 한 대답은 '예'입니다. 파일이 하나만 생성되지 않기 때문에 명확한 기사를 사용하여 약간의 오류가 발생했습니다. .

예를 들어, Quartus는 SOF, POF 및 JIC 파일을 생성 할 수 있습니다. 마지막은 FPGA JTAG를 통한 간접 프로그래밍에 사용하는 것입니다. SPI 플래시에 기록하는 것은 유용하지 않습니다. SOF는 JTAG를로드하여 FPGA에서 일시적으로 설계를 실행하기위한 것입니다. POF는 플래시 칩에로드해야하는 것입니다.

각기 다른 공급 업체의 각기 다른 파일의 의미에 대한 유용한 정보는 FPGA : 비트 스트림 및 SRAM 객체 파일 을 참조하십시오 .


1

플래시 메모리를 FPGA의 SPI 핀에 연결하면 (MODE 구성이 올바르게 설정된 경우) FPGA가 작동합니까?

질문을 올바르게 이해하면 FPGA 구성 (예 : 컴파일 된 HDL 모델)을 SPI EEPROM 또는 SPI Flash에 작성하고 FPGA가 SPI IC의 데이터를 사용하여 자체적으로 프로그래밍하기를 원합니다.

(Tave Tweed의 답변을 올바르게 이해하면 그는 다른 방식으로 귀하의 질문을 이해했습니다.)

SPI 플래시 메모리 IC는 특정 파형 (예 : 읽을 주소)을 보내야 IC에서 데이터를 읽을 수 있기 때문에 적어도 많은 SPI 플래시 메모리 장치가 작동하지 않습니다 .

이 파형은 모든 플래시 메모리 장치에서 동일하지 않습니다. SD 메모리 카드 (SPI 플래시 메모리로도 사용 가능) 만 볼 때에도 카드가 데이터를 읽기 전에 다른 파형을 카드로 보내야하는 두 가지 변형이 있습니다.

FPGA의 모드 핀을 올바르게 설정하면 FPGA는 일부 직렬 메모리 장치에 데이터를 보내도록 지시하는 파형을 보냅니다. 그러나 IC마다 다른 파형이 필요하기 때문에 모든 Flash IC에서 파형을 이해하는 것이 아니라 특정 유형에서만 파형을 이해할 수 있습니다.

Altera는 FPGA와 호환되는 특수 플래시 또는 EEPROM IC를 생산한다는 것을 알고 있습니다.


SD / MMC를 구성 프로토콜로 지원하는 FPGA는 없기 때문에 SD 카드는 작동하지 않습니다. 대부분의 FPGA는 AT24 / AT26 / AT45를 준수합니다.
Dmitry Grigoryev

1

공식 FPGA 프로그래밍 도구없이 FPGA 비트 스트림을 플래시에 쓰려면, 비트 스트림 파일을 원시 바이너리, Intel HEX 또는 Motorola SREC와 같이 쉽게 읽을 수있는 열린 바이너리 형식으로 변환하는 것이 좋습니다 ( ). 이것은 FPGA 비트 스트림이 포함 할 수있는 모든 독점 헤더를 제거합니다.

이렇게하면 플래시 제조업체의 툴 (또는 자체 툴)을 사용하여 플래시를 프로그래밍하거나 FPGA 비트 스트림으로 사전 프로그래밍 된 플래시 칩을 주문할 수 있습니다.

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