2013-07-05 5 views
0

Matlab을 사용하여 FPGA에서 /로 데이터를 보내거나 retreie하려고합니다. 가상 COM 포트를 사용하여 FPGA에 연결했습니다. 이제 Matlab에서 데이터를 FPGA으로 보내거나 FPGA의 데이터를 읽는 방법은 무엇입니까?Matlab과 FTDI

FTDI 2232HFPGA에 있습니다. 외장형 LED를 연결하고 I/O ports의 스위치를 FPGA에 연결했습니다.

나는이 분야에서 새로운 오전, 그래서 몇 가지 가이드 라인은 통신 B/MAtlab W 및 FPGA 시작하려는 : 나는 다음 코드를 시도

:

s1= serial('COM9') 
    fopen(s1) 

합니다. 의사 소통하는 것이 올바른 방법일까요? 친절하게 안내합니다. 감사합니다

답변

1

FPGA는 Verilog 또는 VHDL과 같은 하드웨어 설명 언어 (HDL)를 사용하여 구성됩니다. 이러한 언어를 사용하면 FPGA 내의 스위치 구성을 지정하고 사용자 정의 디지털 논리 및 처리 시스템을 구성 할 수 있습니다.

Matlab의 HDL 코드 도구 상자를 사용하면 상위 수준 기능을 사용하여 사용자 정의 논리를 설계하고 프로토 타입을 작성한 다음 HDL로 변환하고 칩을 직접 프로그래밍하는 데 사용할 수 있습니다. This tutorial describes the process in detail.

FPGA에 이미 구현 된 설계가 있고 해당 구현과 통신하려는 경우 Matlab의 serial port communication functions을 사용합니다. 정확한 프로토콜은 구현 한 인터페이스에 따라 다릅니다.

일부 중간 디버깅 단계는 내가 도움 :

  1. 는 컴퓨터에서 직렬 포트 데이터를 보낼 수 있는지 확인합니다. Windows XP에서는 HyperTerminal을 사용하여이 작업을 쉽게 수행하고 직렬 케이블의 출력 핀에 스코프를 연결합니다. 이벤트를 캡처 할 트리거를 설정하십시오. Windows 7 이상에서는 하이퍼 터미널 클라이언트를 다운로드해야합니다.
  2. 이 과정을 Matlab에서 반복하십시오. 스코프를 사용하여, Matlab에서 전송되었을 때 직렬 포트 신호를보고, 결과가 1 단계의 결과와 일치하는지 확인하십시오. 다시, 스코프 트리거를 설정하여 이벤트를 캡처하십시오.
  3. 이제 시리얼 케이블을 FPGA 보드에 직접 연결하십시오. LED에 출력을 표시하는 직렬 입력에 래치를 포함하도록 HDL을 수정하십시오. 보드가 올바른 LED 상태로 초기화되고 직렬 메시지를 보낼 때 LED 상태가 변경되는지 확인하십시오.
  4. 마지막으로 FPGA 측에서 메시지를 올바르게 해석하고 있는지 확인하십시오. 여기에는 비트 정렬이 올바른지 등이 포함됩니다. 다시 LED 출력은이 부분에서 매우 유용 할 수 있습니다.

여기서 핵심은 작고 점진적 인 단계를 취해 물리적으로 각 단계의 작업을 확인하는 것입니다.

+0

필자는 Inout 8 비트 (FTD7 ... FTD0) 및 기타 입력 및 출력을 갖는 FTDI 칩용 Verilog 코드를 보유하고 있습니다. 나는 그것에 깜박이는 Led 코드도 추가했다. 비트 파일을로드하여 FPGA에서 출력을 볼 수 있습니다. 그래서. 나는 HDL 파일이 필요 없다. 내가 Matlab에서 직렬 포트 통신 기능 (당신에 의해 설명)으로 시작해야 하는가 ?? 아니면 뭐든지? – Nabeel

+0

직렬 케이블이 없습니다. 내가 FPGA를 USB 포트 (따라서 가상 COM 포트를 사용하여)에 연결되어 있습니다. . "범위"란 말은 Matalb에서 시스템 생성기를 사용해야한다는 의미입니까? – Nabeel

+0

범위 별 - HP 또는 애질런트에서 만든 실제 오실로스코프를 의미합니다. 그들은 매우 도움이 될 수 있습니다. 또한 어댑터 (Google : USB 대 직렬 어댑터)를 사용하거나 값싼 USB 케이블을 클리핑하고 개별 와이어를 벗겨서 직접 빌드하여 오실로스코프를 직접 연결할 수 있습니다. 다시 말하지만, 실제로 일어나는 일을 실제로 볼 수있을 때 매우 유용합니다. 움직이는 부분이 많습니다. – chriswynnyk