2025년 12월 1일 업데이트

Moku 컴파일은 Moku FPGA 기반 테스트 및 측정 툴 제품군 전체에서 제공되는 혁신적인 기능입니다. Moku 컴파일을 사용하면 VHDL 또는 Verilog 코드를 Moku 디바이스에 배포할 수 있습니다. 이 코드는 사용자 지정 기능을 제공하고 기존 계측기와 상호 작용하여 Moku의 IOC(Instrument-on-Chip) 아키텍처를 통해 새롭고 고유한 계측 기능을 구현할 수 있습니다.

이 애플리케이션 노트에서는 Moku Compile을 시작하는 방법을 안내합니다. 이 가이드를 마치면 Moku에 사용자 지정 코드를 컴파일하고 배포하는 데 필요한 기본 지식을 갖추게 될 것입니다. 다음 각 예제는 모든 Moku 기기에서 작동합니다.

회사 개요

Moku Compile을 사용하면 Moku 플랫폼에서 구현할 수 있는 맞춤형 처리 및 기능을 설계할 수 있습니다. CPU 및 ASIC(Application Specific Integrated Circuit) 기반 DSP 방식과 비교할 때, FPGA 플랫폼은 기존 CPU와 유사하게 소프트웨어 프로그래밍이 가능하면서도 ASIC 수준의 지연 시간과 성능을 제공합니다.

CPU 기반 설계용 소프트웨어를 작성하는 데 널리 사용되는 소프트웨어 언어는 많지만, FPGA 프로그래밍은 일반적으로 VHDL이나 Verilog로 제한됩니다. 이러한 언어는 규모가 크고 복잡한 로컬 툴체인 설치가 필요합니다. HDL 코드를 배포하는 데 사용할 수 있는 플랫폼은 일반적으로 FPGA 공급업체의 평가 보드나 다양한 기능 제한형 오픈 소스 하드웨어 보드로 제한됩니다. Moku Compile은 다음 두 가지 기능을 제공합니다.

  • 통합 클라우드 기반 VHDL 및 Verilog 컴파일러인 Moku Cloud Compile
  • Moku Custom Instrument는 컴파일된 코드를 배포하는 Moku 기기에서 사용할 수 있는 도구입니다.

Moku Compile은 고성능 실험실 및 연구용 하드웨어에서 기존 FPGA 설계 소프트웨어의 오버헤드 없이 맞춤형 처리에 대한 요구를 충족합니다. Moku Cloud Compile은 클라우드에서 맞춤형 코드를 컴파일하고 모든 Moku 기기에 배포할 수 있는 패키지를 제공합니다.

그림 1: Moku Cloud Compile 배포 프로세스

그림 1: Moku Cloud Compile 배포 프로세스

다중 악기 모드 및 Moku 컴파일

다중 계측기 모드를 사용하면 여러 계측기를 동시에 배치하고 작동할 수 있습니다. 다중 계측기 모드는 Moku FPGA의 파티션을 나타내는 여러 슬롯을 제공합니다. 이러한 슬롯에 계측기를 유연하게 배치할 수 있습니다. 그림 2는 슬롯 1에 오실로스코프가 배치되고 슬롯 2에 스펙트럼 분석기가 배치된 다중 계측기 모드 인터페이스를 보여줍니다. 슬롯 3과 4는 아직 채워지지 않았습니다. Moku 플랫폼의 끊임없이 확장되는 계측기 목록은 Custom Instrument를 사용하여 사용자 정의 비트스트림을 포함하여 나머지 슬롯을 채울 수 있습니다. 전체 계측기 목록은 여기에서 확인할 수 있습니다. LINK.

그림 2: 다중 계측기 모드를 사용한 테스트 시스템 구축.

그림 3의 슬롯 4에 있는 Moku 커스텀 악기는 컴파일된 디자인을 배포할 수 있는 곳입니다. 커스텀 악기는 다중 악기 모드에서 사용 가능한 모든 슬롯에 배치할 수 있으며, ADC 및 DAC 입력/출력 외에도 다른 Moku 악기와도 상호 작용할 수 있도록 합니다.

그림 3: 슬롯 4에 Moku Custom Instrument를 사용하여 구축한 다중 악기 모드 설정.

Moku Cloud Compile 계정 설정

Moku 기기에 코드를 컴파일하거나 배포하려면 먼저 온라인 계정을 만들어야 합니다. 간단한 절차입니다. 

  1. Moku Cloud Compile 사용자 계정을 설정하세요. compile.liquidinstruments.com이전 버전의 MokuOS(v4.0 이전)를 사용 중이시라면 다음 레거시 컴파일러 사이트를 이용하세요. compile-legacy.liquidinstruments.com.
  2. 처음 사용하는 경우 "가입"을 선택해야 합니다. 
  3. 가입 페이지에는 사용자가 선택한 사용자 이름, 유효한 이메일 주소, 사용자 정의 비밀번호만 필요합니다. 
  4. 가입하고 로그인하면 프로젝트 페이지가 나오는데, 그림 4에서 볼 수 있듯이 처음에는 비어 있습니다. 

그림 4: Moku Cloud Compile 프로젝트 생성 화면. 

첫 번째 프로젝트 만들기 

계정을 만들고 Moku Cloud Compile에 로그인하면 이전 작업과 디자인을 모두 사용할 수 있습니다. 또한, 새 프로젝트를 만들거나 Moku 플랫폼의 향후 개선 사항에 맞춰 이전 디자인을 다시 빌드할 수 있습니다. 프로젝트 페이지는 그림 5에서 확인할 수 있습니다. 기존 코드를 가져올 수 있습니다. 깃허브 클릭하여 저장소 가져오기 예제. 지금은 새 프로젝트를 클릭하여 시작하세요. 프로젝트 만들기 버튼을 클릭합니다.

그림 5: Moku Cloud Compile 프로젝트 화면.  

다음으로, 그림 6에 표시된 팝업 대화 상자를 사용하여 프로젝트 이름을 지정하고 디자인 코딩을 시작할 수 있습니다.

그림 6: 새 프로젝트 대화 상자.

그러면 그림 7에 표시된 프로젝트 구성 화면이 나타납니다. 드롭다운 메뉴를 확인하세요. 빌드 구성 화면 왼쪽 하단으로.

그림 7: 프로젝트 구성 화면.

디자인을 빌드하기 전에 먼저 사용 중인 하드웨어와 MokuOS 버전을 지정해야 합니다. 빌드 구성 드롭다운을 열면 하드웨어 모델 드롭다운을 사용하면 현재 Moku 장치를 지정할 수 있습니다. 적절한 장치를 선택하면 드롭다운이 슬롯 수 필요에 따라 자동으로 채워집니다. Moku:Go와 Moku:Lab에는 두 개 또는 세 개의 슬롯 옵션이 있습니다. 마지막으로, Moku 기기에서 실행 중인 현재 MokuOS 버전을 지정해야 합니다. 어떤 버전을 사용할지 확실하지 않은 경우 MokuOS 버전 사용 중인 경우 그림 8에서 볼 수 있듯이 Moku 앱의 오른쪽 하단에서 이 정보를 찾을 수 있습니다. 마지막으로 다음을 선택합니다. 커스텀 악기 아래 타겟 인터페이스 이것이 귀하의 첫 번째 Cloud Compile 프로젝트인 경우( 커스텀 래퍼 (이전 프로젝트와의 호환성을 보장하기 위해 엔터티를 사용할 수 있습니다.)

참고: 기기에서 MokuOS를 업데이트하거나 다른 Moku 하드웨어에 코드를 배포할 때마다 디자인을 다시 빌드해야 합니다. 프로젝트를 열고 하드웨어 및 MokuOS 설정을 변경한 후, 빌드를 선택하고 새로운 비트스트림을 다운로드하면 쉽게 빌드할 수 있습니다.

그림 8: 장치 선택 화면, 오른쪽 하단에 MokuOS 버전 번호가 표시되어 있습니다.

디자인 구축

엔티티 커스텀 악기 HDL 코드를 Moku 하드웨어와 연결하는 방법입니다. 엔티티는 사용자 지정 디자인이 구현해야 하는 인터페이스와 변수를 정의합니다. Moku Cloud Compile에서 새 파일을 생성하면 코드는 이미 정의된 엔티티로 시작하므로 변경할 필요가 없습니다. 이전 코드나 예제에서는 엔티티를 사용할 수 있습니다. 커스텀 래퍼. 이것은 기능이 유사하며 이전 코드 버전과의 호환성을 위해 설계되었으며 모든 새 디자인은 다음을 사용해야 합니다. 커스텀 악기.

Moku Cloud Compile 디자인은 다중 악기 모드를 통해 단독 악기로 배포할 수 있지만, 대부분의 디자인은 다른 Moku 악기와 함께 배포할 때 진정한 이점을 얻을 수 있습니다.

첫 번째 프로젝트  

이 첫 번째 프로젝트에서는 다중 악기 모드를 통해 InputA와 InputB에 매핑된 두 개의 입력을 받아 기본적인 조합 연산을 수행하는 맞춤형 악기를 설계합니다. 두 입력(InputA + InputB)의 합은 그림 9와 같이 OutputA에 출력됩니다. 두 입력의 뺄셈은 그림 10과 같이 OutputB에 출력됩니다.


VHDL 코드 입력 

이 예제는 VHDL을 사용하여 프로그래밍하지만, Verilog도 사용할 수 있습니다. 프로젝트에 HDL 코드를 삽입하는 방법은 두 가지가 있습니다. 먼저, 그림 11에서 강조 표시된 버튼을 클릭하여 Moku Cloud Compile 인터페이스에 코드를 입력할 수 있습니다. 먼저 이 코드를 저장할 파일을 생성해야 합니다. 여기서는 ""라는 이름의 파일 하나를 생성합니다. Adder.vhd.

그림 11: 프로젝트 내에서 VHDL 파일을 만듭니다.

이 파일에 VHDL 설계 코드를 입력할 것입니다. 파일이 생성되면 그림 12와 같이 사용자 정의가 가능한 빈 템플릿이 표시됩니다. 

그림 12: 파일 템플릿에 코드 입력. 

이 첫 번째 프로젝트에서는 전체 코드를 Adder.vhd 파일에 직접 복사하여 붙여넣고 완료되면 저장할 수 있습니다. 이 간단한 예제에서는 Adder.vhd 파일의 현재 코드를 모두 덮어쓰고 아래 코드를 포함할 수 있습니다.

라이브러리 IEEE; 

CustomInstrument의 아키텍처 동작은 다음과 같습니다. 

시작하다 

     출력A <= 입력A + 입력B; 

     출력B <= 입력A – 입력B; 

최종 아키텍처; 

VHDL 코드 업로드

Moku Cloud Compile 사용자 인터페이스를 사용하면 이미 생성한 .vhd 또는 .v 파일을 직접 업로드할 수도 있습니다. 이 기능은 파일이 많은 복잡한 프로젝트를 진행하거나 특정 텍스트 편집기를 사용하는 경우에 특히 유용합니다. 그림 13은 이미 생성된 파일에서 직접 VHDL 코드를 업로드하기 위해 누르는 버튼을 보여줍니다.

그림 13: Moku Cloud Compile 인터페이스 내에서 VHDL 코드 업로드.

VHDL 코드에서 비트스트림 생성

VHDL 설계를 빌드하려면 모든 개별 VHDL 파일을 Moku Cloud에 저장하기만 하면 됩니다. 빌드 구성이 올바른지 확인한 후 프로젝트 창 오른쪽 상단에서 '빌드'를 선택하세요. 프로젝트 빌드는 그림 14와 같은 과정을 거칩니다. 빌드 과정에서 발생한 오류는 강조 표시되고, 빌드 로그에 해당 문제에 대한 설명이 표시됩니다.

그림 14: Moku Cloud Compile 빌드 프로세스의 단계.

코드 컴파일이 완료되면 "IP", "Synthesis", "Route", "Bitstream" 아이콘이 모두 녹색으로 표시됩니다. 빌드 로그에 노란색 텍스트로 표시되는 컴파일러 또는 신시사이저 경고가 많이 나타날 수 있습니다. 이 글에서는 이러한 경고를 무시해도 됩니다. 하지만 오류가 발생하면 빌드 프로세스가 중단되므로 주의가 필요합니다.

나중에 사용하기 위해 비트스트림 저장

이 비트스트림을 컴퓨터에 저장하면 디자인을 다시 빌드하지 않고도 다양한 다중 악기 모드 구성에서 나중에 사용하고 배포할 수 있습니다. 먼저 드롭다운을 확장해야 합니다. 최신 빌드 화면 왼쪽 하단에 빌드 구성. 그런 다음 그림 15와 같이 bitstream.tar 파일을 다운로드하여 Moku 앱으로 가져올 수 있는 알려진 위치에 저장하기만 하면 됩니다. 이 파일의 압축을 풀거나 tar를 풀지 마세요. 단, 기능을 설명하기 위해 파일 이름을 변경할 수 있습니다.

그림 15: 비트스트림 다운로드.

그림 15: 비트스트림 다운로드.

디자인 배포

컴파일된 비트스트림은 사용자 지정 악기를 사용하여 배포되며, 일반적으로 다중 악기 모드를 통해 Moku에서 사용 가능한 다른 악기와 함께 사용됩니다. 비트스트림이 독립적으로 설계된 경우에도 Moku 기기의 다중 악기 모드를 통해 디자인 기능에 접근해야 합니다.

다중 악기 모드 구성

Moku 사용자 지정 악기는 Moku의 사용 가능한 모든 슬롯에 배치할 수 있습니다. 슬롯 선택은 Moku에서 설계하려는 악기 체인과 기능에 따라 결정됩니다. 이 첫 번째 예시에서는 그림 16과 같이 Moku:Go의 다중 악기 모드 구성을 사용할 수 있습니다.

그림 16: 다중 계측기 모드 구성.

슬롯 1에는 Moku가 있습니다. 오실로스코프 출력 A와 출력 B가 사용자 지정 악기가 포함된 슬롯 2의 입력 A와 입력 B로 라우팅됩니다. 사용자 지정 악기의 출력 A와 출력 B는 기본적으로 슬롯 1의 입력 A와 입력 B로 다시 라우팅됩니다. 이 설정을 통해 단일 Moku:Go 장치로 설계 성능을 검증할 수 있습니다.

비트스트림 배포

다중 악기 모드를 구성하고 Moku 컴파일 비트스트림을 빌드하고 다운로드하면 비트스트림을 배포할 준비가 된 것입니다. Moku 사용자 지정 악기 아이콘 아래에 있는 세 개의 점을 클릭하세요. "비트스트림 찾아보기"를 클릭하면 그림 17과 같이 Moku 컴파일 비트스트림 브라우저가 열립니다. 이 기능을 사용하면 Moku 클라우드 컴파일 계정에 연결하여 비트스트림을 기기에 직접 다운로드할 수 있습니다. 이 절차는 아래에 설명되어 있습니다. 지금은 다음을 클릭하세요. 로컬 비트스트림… 그리고 이전에 다운로드한 파일로 이동합니다. 로드되면 클릭하세요. 변경 승인 다중 악기 모드의 오른쪽 상단에서 사용자 지정 악기를 실행하세요.

그림 17: Moku 컴파일 비트스트림 브라우저.

Cloud Compile 계정 연결

Bitstream Browser를 사용하여 비트스트림을 기기에 직접 다운로드하려면 먼저 Moku Cloud Compile 웹사이트에서 API 키를 받아야 합니다. 로그인 후 오른쪽 상단 모서리에 있는 글자(이니셜)를 클릭하고 환경 설정 그림 18에서 볼 수 있듯이 드롭다운 메뉴에서.

그림 18. Moku Cloud 컴파일 환경 설정 메뉴.

왼쪽 메뉴에서 클릭하세요  API 키. 이렇게 하면 생성한 모든 키를 볼 수 있습니다. 클릭하세요. API 키 생성을 입력한 다음 이름을 입력합니다. 모든 상자를 활성화합니다. 모두 선택하세요. 준비가 되면 클릭하세요 만들기그림 19에서 볼 수 있듯이.

그림 19. API 키 생성 메뉴.

그러면 API 키가 포함된 팝업이 표시됩니다. 클릭하세요. 이 키를 어딘가에 붙여넣으세요. 다시 볼 수 없게 됩니다. 복사가 완료되면 메뉴를 닫고 API 키 메뉴로 돌아가세요. 새 키 이름이 나열되어 있습니다.

Moku 기기의 다중 악기 모드 화면으로 돌아가서 이전 섹션의 그림 16과 같이 구성을 설정하세요. 비트스트림 탐색다음을 클릭합니다 API 키 설정 그림 20에서 볼 수 있듯이, 얻은 키를 복사하여 붙여넣은 다음 클릭하세요. 수락.

그림 20. 비트스트림 브라우저의 API 키 정보.

이렇게 하면 왼쪽에 기존 프로젝트가 채워지기 시작하고 최신 빌드 정보가 표시됩니다. 그림 21에서 볼 수 있듯이 최근에 컴파일되었을 "MyFirstProject"를 확인하세요. 를 클릭하세요. 비트스트림을 사용하세요 Moku에 로드하세요. 업로드가 끝나면 다중 악기 모드 구성 화면으로 돌아가야 합니다. 를 클릭하세요. 변경 승인 다음 섹션으로 넘어가기 전에 Moku를 구성하세요.  

 

그림 21: 비트스트림 브라우저를 사용하여 비트스트림을 선택합니다.

결과

Moku 오실로스코프의 신호 발생기 기능을 사용하여 Moku 클라우드 컴파일 가산기 기능을 시연해 보겠습니다. Moku 클라우드 컴파일 설계가 예상대로 작동하는지 확인하려면 두 출력 채널에 간단한 2VDC 신호를 연결합니다. 오실로스코프의 입력 A는 두 신호의 합을 4V로 일정하게 유지해야 합니다. 오실로스코프의 입력 B는 두 신호의 차이를 0V로 일정하게 유지해야 합니다(그림 22 참조).

그림 22: 덧셈기의 샘플 DC 결과.

신호 유형을 "사인파"로 변경하여 다양한 효과를 실험해 볼 수도 있습니다. 주파수가 서로 다른 두 사인파를 결합하면 박자음이 생성되고, 동일한 두 사인파의 위상을 변경하면 보강 간섭이나 상쇄 간섭이 발생합니다. 그림 23에서 이러한 예를 확인할 수 있습니다. 생성된 신호에 인위적인 노이즈를 추가하려면 "노이즈" 신호 유형을 선택할 수도 있습니다.

그림 23: 덧셈기의 샘플 비트 노트 결과.

맺음말

여기에 제시된 예는 매우 간단하지만, 이 애플리케이션 노트는 Moku Cloud Compile을 빠르게 시작하고 재구성 가능한 Moku 플랫폼의 진정한 유연성을 활용하는 데 도움을 주기 위해 작성되었습니다.


데모 모드에서 Moku를 사용해 보세요

macOS 및 Windows용 Moku 앱을 다운로드할 수 있습니다. LINK.


FAQ에 대한 답변을 받으세요

장치 및 계측기에 대한 질문과 답변을 찾아보세요. 기술 자료.


Moku 사용자와 연결

또한 사용자 포럼 새로운 기능을 요청하고, 지원 팁을 공유하고, 글로벌 사용자 커뮤니티와 소통하세요.

기타 권장 어플리케이션 노트

모든 애플리케이션 노트로 돌아가기