대부분의 칩은 공장에서 실리콘에 배선이 구워져 결코 바꿀 수 없는 한 가지만 할 수 있습니다. FPGA는 그 규칙을 깹니다. '현장 프로그래밍 가능한' 칩으로, 제조 후에 설계를 로드하여 구성할 수 있는 동일한 작은 논리 블록과 배선의 빈 바다입니다. 한 설계를 로드하면 계산기가 되고, 다른 설계를 로드하면 같은 칩이 신호등 제어기가 됩니다. 이 전시물은 코드 몇 줄에서 작동하는 칩까지의 전체 여정을 따라가며 내부에서 일어나는 모든 세부 사항을 볼 수 있게 합니다.
실제 칩 설계자들이 쓰는 언어인 진짜 Verilog로 시작해서 실제 툴체인을 거칩니다: 합성이 모든 입력에 대한 각 방정식을 평가하고 답을 룩업 테이블(16비트 '답 테이블')에 쓰고, 배치-및-라우팅이 LUT를 논리 블록에 넣고 스위치 박스를 설정하며, 비트스트림이 생성됩니다 — 정확한 순서의 비트 문자열입니다. 그 비트스트림은 플래시 칩에 저장되고, 전원 투입 시 비트 단위로 FPGA의 구성 SRAM 셀에 로드되어 실리콘이 살아납니다. 전원을 끄면 SRAM은 모두 잊습니다 — FPGA는 켤 때마다 설계를 새로 로드합니다. (솔직한 두 가지 주의: 여기서 배치와 라우팅은 명확성을 위해 미리 선택됐으며, 이는 논리 레벨 보기입니다 — 실제 신호는 시간도 걸리고 글리치도 발생합니다.) 이제 확대해 보세요. 하나의 논리 블록을 열면 LUT가 물리적으로 무엇인지 드러납니다 — 16개의 메모리 셀을 읽는 16대1 멀티플렉서로, 입력이 한 번에 한 비트씩 선택하며, 16에서 8, 4, 2, 1로 줄어들고, 실시간 우승 경로가 켜집니다. 더 깊이 들어가면 단일 답 비트는 6트랜지스터 SRAM 셀이고, 스위치 박스를 열면 라우팅은 각각 하나의 구성 비트로 온/오프되는 패스 트랜지스터의 격자입니다. 스위치를 전환하고, 클록을 구동하면, 실시간 신호가 모든 레벨의 모든 배선을 켭니다.
최초의 FPGA인 Xilinx의 XC2064는 1985년 로스 프리먼이 단 64개의 논리 블록으로 발명했습니다. 오늘날의 것은 수백만 개이며, 전화 네트워크와 우주선부터 새 컴퓨터 칩을 테스트하는 기계까지 모든 것을 실행합니다 — 동일한 하드웨어를 필요에 따라 소프트웨어로 재배선할 수 있기 때문에 귀하게 여겨집니다. DigiSim 자체의 가장 직접적인 친척입니다: FPGA는 프로그래머블 로직이며, DigiSim Logic Lab에서 게이트 단위로 만드는 바로 그것이 칩으로 만들어진 것입니다.
사양
- 코드에서
- 실제 Verilog → 합성 → 배치 & 라우팅 → 비트스트림 → 굽기 → 실행
- 굽기
- 구성 비트가 칩의 SRAM 셀에 시프트 — 다이가 채워지는 것을 보세요
- 원자 수준 확대
- 논리 블록 → 실시간 16:1 멀티플렉서로서의 LUT → 6트랜지스터 SRAM 셀
- 설계
- 논리 게이트, 반가산기, 블링커, 카운터 → 7세그먼트, 신호등 FSM
컴퓨팅 더 보기