저는 FPGA를 처음 접하고 현재 HDL (Verilog 특히) 수업을 듣고 있습니다. 다음과 같은 디지털 설계에 대한 충분한 지식이 있습니다. 조합 및 순차적 회로.

이 YouTube 동영상에 표시된 것과 유사한 프로젝트 를 만들고 싶습니다.

또한 Xilinx ISE가 로직 신호를 처리하고 파형을 시뮬레이션 할 수 있다는 것을 알고 있습니다. USB, 카메라 등을 통해 입력 신호를 받아 컴퓨터로 출력하는 것과 같은 추가 기능이 있습니까?

실행이 가능합니까? 실제 FPGA 보드를 구입하지 않고이 프로젝트 (컴퓨터 시뮬레이션과 같은)? 내 컴퓨터에서 해당 프로젝트를 빌드, 코딩 및 실행하고 USB를 통해 카메라를 연결 한 다음 들어오는 비디오 신호가 Xilinx ISE 등과 같은 HDL 시뮬레이터에 의해 처리됩니다. (실제로 FPGA 보드를 구매하고 프로젝트를 합성하지 않고, 현재 예산이 없습니다.)

( 진짜 의미는 HDLl 디자인을 실제 소스, C 코드 등에 인터페이스하는 것입니다.)

댓글

  • 나는 ' Xilinx '의 시뮬레이터로이를 수행 할 수 있는지 알 수 없습니다.하지만 Icarus Verilog와 같은 것은 시뮬레이션 인터페이스를 C 코드로 만들어 데이터를 얻을 수 있습니다. 실제 소스; 그러나 실시간보다 훨씬 느리게 실행될 가능성이 있으므로 라이브 비디오 소스를 처리하는 것이 어려울 수 있습니다.
  • 이게 바로 실제 소스와 인터페이스하는 im find라는 문구입니다.
  • @vvavepacket은 댓글 작성자 / 포스터에게 감사를 표하기 위해 댓글 / 게시물에 찬성 투표를합니다.
  • 비디오의 FPGA는 Altera DE2처럼 보입니다. 라이선스 및 칩에 따라 ' 200 ~ 600 달러입니다. ' csc.kth.se/~emille/niisim
  • 에 시뮬레이터가 있습니다.

  • Terasic DE0-nano는 $ 80 정도이며 카메라와 LCD에 연결할 수 있습니다. 사실 그들은 그들의 웹 사이트에 그것에 대한 데모를 가지고 있습니다. 그들과 관련이 없지만 DE0-nano '는 적당한 가격의 보드에 꽤 멋진 작은 FPGA를 가지고 있습니다. 저는 ' 대부분의 개발 보드가 얼마나 비싼 지 항상 싫어했습니다.

답변

자일링스 도구는 내가 아는 한 실시간으로 인터페이스 할 수 없으며 ModelSim (Actel의 Libero IDE에서 사용)도 마찬가지입니다.
오픈 소스 시뮬레이터에 대해 잘 모릅니다. 이색적인 프로젝트를 수행 할 수 있습니다.

그러나 이것은 귀하가 요청하지 않은 답변 일 수 있습니다 (도움이되지 않으면 삭제하겠습니다).이 작업을 수행하기 위해 자체 FPGA 보드를 구축하거나 적어도 처음으로 FPGA 보드를 에칭했는데 매우 간단했지만 (프로세스가 아닌 보드 ;-)) 매우 빠르게 많은 것을 배웠습니다.

장점 :

  • 저렴함
  • 심층 부분으로 이동하여 하드웨어 고려 사항에 대해 알아야 할 모든 것을 배우십시오. 대부분의 데이터 시트를 먼저 읽고 직접 작성해야합니다. IMHO는 종종 플러그 앤 플레이 개발 보드 학습 방식보다 더 나은 시작 코드입니다.
  • 필요한 것만 보드에 올리세요.
  • 모든 것을 실시간으로 시뮬레이션하는 방법을 알아내는 것과 동일한 노력 / 연구를 통해 실제 작업 설계의 목표.

단점 :

  • 저렴한 버전의 Xilinx / Altera 프로그래머는 eBay에서 찾을 수 있지만 프로그래머를 구매해야합니다.
  • PCB / 신호 무결성 설계 및 문제가 집중하고 싶지 않은 경우, 이러한 방식으로 습득 할 지식에 관심이 없을 수 있습니다.

자신의 보드 에칭이 아마도 불필요하다는 것을 이해합니다. FPGA가 있고 참을성이 없었기 때문에 PCB가 도착할 때까지 2 주를 기다릴 필요가 없었기 때문입니다. 여기에는 설계를 실행하는 데 사용할 수있는 2 레이어 보드에 대한 매우 저렴한 거래가 있습니다 (아마도 최종적으로 원하는 것보다 낮은 속도에서 가능합니다. 일반적으로 고속 FPGA 디자인의 최소 레이어 수는 4 개가 될 것입니다. 훨씬 더 비싸다)

어쨌든 Spirit Circuits는 일회성 디자인에 편리한 완전 무료 2- 레이어 “베어 본”PCB 거래 (한 달에 한 번, 한 번의 디자인, 마스크 또는 실크 스크린 없음)를 수행합니다. .
또한 적절한 2 층 및 4 층 저렴한 프로토 타입 보드의 경우 ITead 및 Seed Studio는 보드 10 개 (또는 해당 가격으로 5 개) 서비스에 대해 10 달러까지 저렴합니다.

댓글

  • 매우 흥미로워 요! 그리고 격려도

답변

표준 Xilinx ISE Webpack ( xilinx.com에서 다운로드 할 수 있음)에는 iSim이라는 시뮬레이터가 포함되어 있습니다. 훌륭한 시뮬레이터는 아니지만 모든 기능을 갖추고 있으며 가격이 적당합니다.

알테라 도구를 사용하지 않았지만 시뮬레이터가 포함되어 있지 않다면 놀랍습니다.

하지만 … 시뮬레이터가 할 수있는 것과 할 수없는 것을 알아야합니다. . 처음에는 전속력으로 실행되는 FPGA를 시뮬레이션 할 수 없습니다. 실제로 속도가 매우 느립니다. 시뮬레이션되는 FPGA의 복잡성에 따라 1ms의 “시뮬레이션”을 시뮬레이션하는 데 1 분이 걸린다는 사실이 놀랍지 않습니다. “시뮬레이션 된 시간”의 1 시간을 시뮬레이션하려면 1000 시간의 실시간이 필요합니다.

또한 시뮬레이션 된 FPGA는 USB 포트와 같은 것과 직접 통신 할 수 없습니다. 시뮬레이션 된 FPGA 테스트 벤치는 FPGA의 입력 (또는 FPGA의 일부)을 공급하고 FPGA의 출력을 확인하는 VHDL 또는 Verilog 코드의 덩어리입니다. 테스트 벤치에서 상당히 복잡한 작업을 수행 할 수 있습니다. , 부동 소수점 숫자 사용, 파일 읽기 및 쓰기, 합성이 불가능한 로직 실행 등.

댓글

  • A ltera '는 ModelSim이 포함 된 Quartus 무료 버전을 받았습니다. ModelSim의 무료 버전은 시뮬레이션 속도를 제한하고 Quartus의 무료 버전은 합성에 사용되는 CPU 코어의 수를 제한하지만 그렇지 않으면 완벽하게 작동합니다.
  • Altera ModelSim은 VHDL의 공동 시뮬레이션을 지원하지 않습니다. 및 Verilog는 동일한 디자인입니다.

Answer

직접 인터페이스 할 시뮬레이터를 모릅니다. USB 포트 (또는 다른 하드웨어)에 도착하는 신호에.

적어도 이론 상으로는 포트에 도착하는 신호를 받아 테스트 벤치 파일로 변환하는 소프트웨어를 작성할 수 있습니다. 시뮬레이터로 처리 할 수 있습니다. 안타깝게도이 작업을 수행 할 기존 소프트웨어가 없으며 직접 작성하는 것은 결코 사소한 일이 아닙니다.

댓글

  • 그런 다음 가장 좋은 방법은 저와 같은 n00bs를위한 보급형 저비용 fpga 보드를 얻는 것입니다.
  • ' 실제로 시뮬레이터 whic이있는 경우 testbench 파일 h는 VPI와 같은 사용자 지정 코드에 대한 인터페이스를 지원하지만 시뮬레이터가 실시간보다 훨씬 느리게 실행된다는 점을 고려할 때 시뮬레이션 속도로 읽을 수있는 파일에서 캡처 된 데이터를 처리하는 것이 더 쉬울 수 있습니다.
  • @ChrisStratton 파일에 캡처 된 데이터에 관심이 있습니다. 그에 대한 리소스가 있습니까? 감사합니다
  • 데이터 소스로 사용하려는 주변 장치에 따라 전적으로 달라집니다.

답변

시뮬레이션에서 실행되는 RTL과 머신의 실제 하드웨어를 연결하는 코드를 시뮬레이터에 연결하는 코드를 작성할 수있는 공동 시뮬레이션 인터페이스 (DPI, VPI, VHPI, FLI)를 사용해야합니다. .

(잘못 문서화 된 인터페이스를 제외하고) 직면하게 될 중요한 문제는 동기화 및 타이밍 관련입니다. 시뮬레이션에서 실행되는 RTL은 실제 하드웨어보다 훨씬 느립니다 . 시뮬레이션 속도와 일치하도록 외부 인터페이스와의 상호 작용을 단계별로 수행 할 수 있어야합니다. 일부 하드웨어 인터페이스는이 방식을 좋아하지 않습니다. 예를 들어 TCP를 사용하는 경우 허위 재전송 등을 피하기 위해 커널 스택에서 타이머를 퍼지해야 할 수 있습니다.

Icarus 는 VPI 및 라이센스에 돈을 들이지 않고도 실험 할 수 있습니다. 복잡한 공동 시뮬레이션을 수행하고 시뮬레이터에 더 깨끗한 추상화를 제공하는 기존 프레임 워크를 살펴볼 수 있습니다. 그러한 프레임 워크 중 하나는 시뮬레이터에 Python 인터페이스를 제공하는 오픈 소스 라이브러리 인 Cocotb 입니다. ( 면책 조항 : 저는 cocotb 개발자 중 한 명입니다.)

관련 될 수있는 예 : 어제 저는 ping 요청에 응답하기 위해 RTL을 깨고 테스트 벤치를 만들었습니다. 그러면 TUN 인터페이스가 열립니다. 그런 다음 ping 명령을 사용하여 인터페이스를 핑할 수 있으며 시뮬레이션에서 실행중인 RTL이 핑을 수신하고 응답합니다. 전체 테스트 벤치는 Python의 50 줄 미만입니다! 이 예제의 소스 코드는 Github 에 있으며 Linux의 Icarus에서 실행됩니다.

Answer

대부분의 경우 시뮬레이션에서 수행하는 모든 작업은 시뮬레이션에 그대로 유지됩니다. 실제 하드웨어에는 액세스 할 수 없습니다. 실제 하드웨어의 시뮬레이션 모델이 있어야합니다.

그러나 약간의 노력을 기울이고 싶다면 대부분의 시뮬레이터에는 임의 코드에 대한 인터페이스가 있습니다. Verilog에서는 “내가 이해하는 것처럼 상당히 표준적인 인터페이스이므로 Verilog 측면은 시뮬레이터간에 이식 될 것입니다. VHDL-land에는 표준 방식이 있지만 적어도 하나의 대형 공급 업체가 자체 방식을 가지고 있습니다.

또한 실시간 인터페이싱 (즉 FPGA가 수행하는 속도)은 거의 불가능하며 나머지 시뮬레이션 (HDL)은 실제로 실행되지 않습니다. -시간도.댓글에서 언급했듯이 실시간으로 시뮬레이션 된 비디오 처리는 이런 방식으로 불가능합니다.

개인적으로는 이것을 시도 할 필요가 없었습니다. 하드웨어와 VHDL에서 모두 실행됩니다.

그러나 시뮬레이션 수행의 이점을 간과하지 마십시오. 작업이 작동하는지 (컴파일하는 데 몇 초가 소요됨) 비트 스트림을 빌드 한 다음 (컴파일이 수십 분에서 몇 시간) 하드웨어에서 시도해보세요.

댓글

  • 사실이 아닙니다. 질문에 대한 댓글을 참조하세요.
  • 좋습니다. ' 더 명확해야합니다. " 나 ' m 새로운 FPGA " 레벨 🙂 답변 업데이트 됨

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다