몇 가지 차이점이 있습니다. SRAM 대 플롭의 사용에 관한 한 가지 점은 표면적 차이입니다. 사실, 대부분의 FPGA 벤더는 메모리를 블록 메모리 또는 플립으로 구현한다는 아이디어를지지합니다. 기능적으로는 동일합니다.
대부분의 FPGA 공급 업체가 기술을 구현하는 방식 때문에 단일 블록 RAM을 약간 작게 사용하면 기본적으로 모든 단일 블록 RAM을 사용합니다. 장치에 10 개의 블록 RAM이 10 개 있다고 가정 해 보겠습니다. 당신은 10 개의 작은 메모리를 구현합니다. 각각의 바이트는 단지 1 바이트라고 말할 수 있습니다 ... 당신은 모든 10 개의 블록 RAM을 사용할 것입니다! 그 좋지 않다. 보유하고있는 메모리 테이블이 작 으면이를 플롭으로 구현하고 큰 RAM을 위해 블록 RAM을 저장하십시오. 자신의 질문에 mem가 대용량 데이터를 사용하는 것이 더 나을 것이라고 제안 할 때, 이것이 사실입니다.
다음 문제는 타이밍입니다. FPGA 메모리 타이밍은 때로는 Flops에 비해 느릴 수 있습니다. 즉, 메모리에 구현 한 버퍼가 있고 300Mhz에서 실행되도록 디자인을 얻을 수 없다는 것을 알았다면 버퍼를 사용하여 플롭을 변경할 수 있고 필요한 추가 속도를 줄일 수 있습니다 300Mhz로.
라우팅 차이점이 있습니다. 디자인에 따라 칩의 한 사분면에있는 모든 메모리가 활용되므로 디자인이 다른 사분면에 도달하여 블록 RAM을 늘리려고하면 논리가 확산 될 수 있습니다. 이것은 또한 열악한 타이밍으로 나타날 수 있습니다. 일부 메모리를 플롭으로 사용할 수 있도록 허용하면 여분의 리소스를 늘릴 필요가 없기 때문에 사분면의 모양으로 디자인 스냅을 다시 볼 수 있습니다.
다음은 내가 메모리를 위해 Flops에서 RAM을 선택할 때 생각하는 몇 가지 사항입니다.