현재 일부 RTL을 테스트 중이며 ncverilog를 사용하고 있으며 ... 매우 느립니다. 우리가 일종의 FPGA 보드를 사용한다면, 그 일이 더 빠를 것이라고 나는 들었다. 진짜야?FPGA 기반 RTL 평가
답변
당신은 두 가지 다른 것을 말하고 있습니다. FPGA를 보드는 실제 하드웨어 인 반면
NCVerilog는 시뮬레이션 도구입니다. 그래서 차이가있을 것입니다. 실제 하드웨어는 일반적으로 더 빠르지 만 시뮬레이터를 사용하면 모든 종류의 디버깅을 즐길 수 있습니다. 특정 신호를 조사하는 것은 테스트 벤치에 라인을 추가하는 것입니다. 또한 FPGA 보드를 재 설계하지 않고도 시뮬레이션 된 모델을 쉽게 변경할 수 있습니다.
당신은 충분히 강력한 컴퓨터에서 시뮬레이션을 실행하는 경우가 가끔 (FPGA를 속도가 느린 하나라고 가정) 실제 성능에 근접 할 수 있습니다.
모두 모두 수행해야합니다. 시뮬레이터를 사용하여 기본 개발 및 평가를 수행하십시오. 디자인이 충분히 잘 정의되면 FPGA 하드웨어로 이동하십시오.
좋은 대답 (나와 같은 초보자에게는 이해하기 쉽다). 고맙습니다! – Alphaneo
어떤 종류의 RTL을 테스트하고 있습니까? FPGA 보드를 사용한다면 올바른 FPGA를위한 올바른 툴을 가지고 있다면 코드를 컴파일 할 수 있습니다. FPGA는 재연성이 가능하므로 물론 보드에서 코드를 테스트하고 대상 (FPGA)에서 코드 (RTL)를 실행할 수 있습니다.
그러나 더 이상 시뮬레이션이 아니며 주어진 하드웨어, 주어진 클럭 속도. 그리고 화면에 좋은 결과를 얻지 못하면 실제 프로브와 스코프를 사용해야합니다. 또한 코드 내부가 어떻게 작동하는지 알지 못합니다.
를 Verilog 또는 VHDL 시뮬레이션 종류의 디버거를 사용하여 코드를 실행하는 것과 같다. FPGA 테스트는 printf로 디버깅하는 것과 비슷합니다. 큰 차이점은 시뮬레이션 할 때 CPU가 모든 로직 게이트의 동작을 시뮬레이션해야한다는 것입니다. FPGA에는 시뮬레이션이 없으므로 코드를 '실행'하기 때문에 훨씬 빠르지 만 정보는 거의 없습니다.
당신은 아주 작은 구성 요소에 대한 시뮬레이션을 사용하여 다음 FPGA에 전체 프로그램을 테스트해야합니다.
시뮬레이션 속도에서도 동일한 문제가있었습니다. 그러나 우리는 대부분의 검증을 위해 시뮬레이션을 고수합니다. 각 시뮬레이션은 특정 기능을 검사하며 시스템 레벨 시뮬레이션보다 훨씬 빠릅니다. 우리는 또한 그것들을 스스로 점검하고 회귀 테스트 (단위 테스트)에 유용합니다. 우리가 할 수있는 경우 시뮬레이션에 너무 많은 시간이 소요되어 실제 신호에 긴 시스템 테스트에 대한
, 우리는 FPGA에 이러한 이동합니다. 코드를 변경 한 후 이러한 모든 테스트 케이스를 다시 수동으로 다시 검사해야하므로 자체 테스트가 느려질 수 있습니다.
때로는 FPGA 설계가 실현 불가능합니다. 때로는 전체 디자인이 너무 커서 FPGA에 적합하지 않거나 클럭 속도가 너무 빠릅니다. 그러나 반드시 FPGA 전체 디자인을 할 필요는 없다는 것을 기억하십시오. 관심있는 중요한 블록을 가져 와서이를 충분히 확인하는 것으로 충분할 수 있습니다.
당신은 알테라의 SignalTap 또는 자일링스 칩 스코프와 같은 "임베디드 로직 분석기의"소프트웨어 도구를 사용하여 실행중인 FPGA 디자인의 신호 활동을 추적 할 수 있습니다. RTL을 디바이스에 합성/맵핑하기 전에이 툴을 사용하여보고 싶은 신호에 소프트 프로브를 부착하십시오. 신호의 값이 특정 조건에서만 기록되도록 트리거를 설정할 수 있습니다. 그런 다음 비트 파일을 생성하고 JTAG를 사용하여 장치를 프로그래밍합니다. 로직 애널라이저는 JTAG을 통해 PC와 통신하고 프로브의 활동을 기록한 다음 분석 할 수 있습니다.
이 도구는 특히 사용하기 쉽지 않으므로 설정하는 것이 약간 복잡하지만 RTL 시뮬레이션보다 훨씬 빠른 결과를 얻을 수 있습니다.
매우 느린 점이 무엇이라고 생각하십니까? 분 또는 시간. –
@Brian : 한 번의 테스트에서 시간 차이는 1 분 정도입니다. 그러나 포괄적 인 테스트를 실행하면 차이가 몇 일 정도 걸립니다. (내 말은, ~~) – Alphaneo