다른 질문으로 판단하면 자일링스 사람입니다. 자일링스 칩의 데이터 시트를 받아 기능 설명 장으로 이동하는 것이 좋습니다. 내가 사용하는 Spartan 3 칩의 경우 42 페이지의 재미있는 독서입니다. IOB, CLB, 슬라이스, LUT, 블록 RAM, 멀티 플라이어, 디지털 클록 관리자, 클록 네트워크, 인터커넥트 및 매우 기본적인 구성 정보와 같이 FPGA에 어떤 구성 요소가 포함되어 있는지 정확하게 설명합니다. "컴파일 된 HDL"의 모양을 알고 싶다면이 정보를 이해해야합니다.
FPGA 아키텍처에 익숙해지면이 프로세스를 이해할 수 있습니다. 먼저 HDL 디자인은 합성 엔진을 통해 실행되므로 HDL을 기본적으로 RTL로 변환합니다. 그런 다음 Mapper는 Synthesis의 결과를 처리하여 사용 가능한 FPGA 아키텍처에 "매핑"합니다. 그런 다음 라우터는 PAR (Place And Route)을 수행하여 해당 부분의 위치와 연결 방법을 파악합니다. 마지막으로 PAR의 결과는 BIT 파일로 바뀝니다. 일반적으로이 BIT 파일은 플래시 칩에로드 될 수 있도록 어떤 방식 으로든 변환되어 FPGA가 켜지면 자동으로 프로그래밍 될 수 있습니다.
이 비트 파일은 전체 FPGA 프로그램을 설명합니다. 예를 들어, Spartan 3의 CLB는 슬라이스로 구성되며 LUT로 구성되며 16 비트 1 비트 SRAM입니다. 따라서 BIT 파일에 포함되는 것은 SRAM의 각 주소에 데이터가 들어가는 것입니다. BIT 파일에 포함 된 또 다른 것은 LUT의 각 입력이 연결 매트릭스에 연결되는 방법입니다. BIT 파일에는 블록 RAM 내부의 초기 값도 포함됩니다. 각 슬라이스에서 각 플립 플롭의 세트 및 리셋 핀에 연결된 것을 설명합니다. 캐리 체인이 어떻게 연결되어 있는지 설명합니다. 각 IOB (LVTTL, LVCMOS, LVDS 등)의 논리 인터페이스에 대해 설명합니다. 통합 풀업 또는 풀다운 저항에 대해 설명합니다. 기본적으로 모든 것.
Xilinx의 경우, 구성이 시작될 때 FPGA의 메모리가 지워집니다 (즉, PROG_B가 주장됩니다). 메모리가 비워지면 INIT_B가 높아져 단계가 완료되었음을 나타냅니다. 그런 다음 JTAG 또는 Flash 칩 인터페이스를 통해 BIT 파일이로드됩니다. 프로그램이로드되면 GSR (Global Set / Reset)에 펄스가 발생하여 모든 플립 플롭이 초기 상태로 재설정됩니다. 그런 다음 DONE 핀이 높아져 구성이 완료되었음을 나타냅니다. 정확히 한 클록 사이클 후, Global Three-State 신호 (GTS)가 해제되어 출력을 구동 할 수 있습니다. 정확히 1 클럭 사이클 후에 GWE (Global Write Enable)가 해제되어 플립 플롭이 입력에 응답하여 상태 변경을 시작할 수 있습니다. 이 최종 구성 프로세스조차도 BIT 파일에 설정된 플래그에 따라 약간 재정렬 될 수 있습니다.
편집하다:
또한 FPGA 프로그램이 영구적이지 않은 이유는 로직 패브릭이 휘발성 메모리 (예 : SRAM)로 구성되어 있기 때문입니다. 따라서 FPGA의 전원이 꺼지면 프로그램을 잊어 버립니다. 그렇기 때문에 FPGA 프로그램을위한 비 휘발성 스토리지로 플래시 칩이 필요하므로 디바이스 전원을 켤 때마다로드 할 수 있습니다.