원문: http://warpproject.org/trac/wiki/GettingStarted/WARPv3/Tools


본 페이지는, 두번째로 WARP를 잘 사용하기 위한 툴들과 장비들에 대해서 설명한다. 간단히 말하자면 WARP에서 사용되는 여러 칩셋들과 표준 프로토콜을 구동하기 위한 소프트웨어들에 대한 설명이다. 


    OS

We recommend Windows 7, 64-bit for all WARP development. That said, the Xilinx tools also support:

  • Red Hat Enterprise 5 Workstation
  • Red Hat Enterprise 4 Workstation
  • SUSE Linux Enterprise

So, these OS choices should also be okay. However, many of the other tools listed here rely on Windows, so appropriate replacements must be found.

OS는 윈도우 7을 추천한다.


    Xilinx Tools

A full installation of the Xilinx tools (System Edition), fulfilling all Xilinx licensing requirements, is necessary for building custom FPGA designs (i.e. hardware). An SDK-only installation (with less stringent licensing requirements) is also available and can be used if the user only wants to update software designs. For example, this reduced installation would be appropriate for customizing the MAC behavior of our 802.11 Reference Design.

커스톰 FPGA 디자인의 구성을 위해서 자일링스 full 인스톨은 필수적으로 요구된다.

하지만 SDK만을 설치해도 소프트웨어 디자인 업데이트가 가능하다. 예를들면, SDK만 설치해도 

802.11 레퍼런스 디자인의 MAC 동작을 사용자 정의형태로 구성 및 실행이 가능하다.   

    Matlab

Matlab is required for Xilinx System Generator and also for the WARPLab design flow.

매트랩도 자일링스 시스템의 생성을 위해서 요구된다. 



WARPLab은 싱글 또는 다중 안테나의 메세지 전송 및 컨트롤을 위한 빠른 프레임 워크로 사용될수 있다. (확장성을 가지는 장점) WARPLab 레퍼런스 디자인은 많은 통신물리계층의 구현 및 테스트를 가능토록 하는  프레임 워크입니다. 그리고 이 레퍼런스 디자인은 여러대의 WARP 노드를 이더넷 연결을 통하여 매트랩으로 제어 및 신호처리 할수 있도록 도와줍니다. 

The WARPLab reference design is an implementation of the WARPLab framework that allows many physical layer designs to be constructed and tested. The reference design combines MATLAB and FPGA implementations of the WARPLab framework modules that allow for easy extensibility and customization. While the reference design uses MATLAB to control nodes and perform signal processing, it also allows applications with strict latency requirements to move time critical processing in to the FPGA. The latest WARPLab 7 reference design runs on both WARP v2 and WARP v3 hardware. Users with WARP v1 hardware should use WARPLab 6.


WARPLab 7 is a complete rewrite of the original WARPLab framework. This rewrite was created and is maintained by engineers at ​Mango Communications.


**WARPLab 7에 대한 포스팅은 방대해서 나중에 따로 추가할 예정**

    TortoiseSVN

Any SVN client can be used, but we recommend TortoiseSVN if the user is using the Windows operating system. Instructions for downloading the WARP SVN repository are available here.

TortoiseSVN 의 사용을 권장합니다.

이 SVN이 무엇인지 알기 원한다면 아래의 링크를 열어보시기를 추천합니다.

https://tortoisesvn.net/about.html

TortoiseSVN은 GPL 기반으로 개발되었습니다. (비상업적 목적의 라이선스; 누구든지 수정 및 배포가능) 자유로운 개발 및 수정/ 업그레이드가 가능합니다. 





    PuTTY ¶

PuTTY is used to communicate with the WARP board via UART. Instructions for setting up PuTTY are here.

PuTTY는 PC-WARP간의 통신을 위해서 사용되는 통신 프로토콜입니다. 자세한 내용은 링크 "here" 를 눌러서 확인하세요. 


    Wireshark

Wireshark is a network protocol analyzer. It will show you, at the Ethernet link level, the packets entering and leaving your PC. This can be very useful for debugging interactions between your computer and a WARP node.

와이어샤크는 매우 유명한 네트워크 프로토콜 분석기이다. WARP는 이더넷 링크를 사용하기 때문에 PC와 WARP간의 디버깅을 위해서 유용하게 사용될 수 있다.

     WinDD

WinDD is a port of Unix's 'dd' command. This is used for writing SD cards with your hardware/software designs for running on WARP v3. This allows a WARP v3 node to load a design without downloading over JTAG (very useful for larger deployments). Details of this process are provided here.

SD카드를 구동하기 위한 소프트웨어.

     FTDI Drivers

WARP v3 uses an FTDI usb chip to provide UART connectivity. These drivers create a virtual COM port on your computer that PuTTY can open. More details are available in the user guide and USB UART howto.

     Visual C++ 2010 Express

The WARPLab design flow currently uses a user-compiled library for Matlab to speak to the boards using UDP. Visual C++ 2010 Express is required by Matlab to compile this library.

     Windows SDK

The Windows SDK is also required for compiling Mex functions in Matlab.



   Recommended Equipment for WARP

When using WARP, there are a couple of pieces of equipment that you may find useful to have in your lab space.

    Computer

  • The Xilinx design tools can be very demanding. Depending on how complex the design is that you are building, Xilinx estimates RAM usage for building for the XC6VLX240T FPGA that is in WARP v3 to be typically 3.7GB and as much as 6.5GB (source). Further discussion of system requirements are available here on page 53.
  • It is very useful to have a computer that contains two Network Interface Cards (NICs). For example, you may want one Ethernet card to accessing your computer network or internet, and another card to communicating to the WARP boards over Ethernet.

    효과적인 실험셋팅을 위하여 PC에 2개의 이더넷 카드가 있다면 "WARP-이더넷(PC)" "인터넷-이더넷(PC)"로 구성하여 인터넷사용과 동시에 WARP 연결이 가능하다. 

     Other Useful Accessories

  • Gigabit Ethernet Switch
  • Ethernet cables
  • Micro USB cables


원문: http://warpproject.org/trac/wiki/GettingStarted/WARPv3/Hardware



WARP는 총 3가지 버전이 존재합니다. 제가 구매한 모듈은 왼쪽의 v3이기에 앞으로 모든 내용은 v3을 따라 가겠습니다.




먼저 The Key Components of the Hardware 를 알아보고,  WARP v3 Hardware Users Guide 를 알아볼 예정입니다. 


The Key Components of the Hardware


Throughout the documentation in this wiki and in theforums, we will refer to different components of the hardware by certain terminology and acronyms. In this section, we list these components along with a high-level description of what each component is responsible for.


실제 제가 가진 WARP v3는 아래와 같이 생겼습니다. 





그리고 각 부분의 명칭은 아래와 같으며, 각 파트에 대한 간략한 설명도 되어있습니다.




  • User I/O: This collection of push buttons, LEDs, hexadecimal displays, dip switches, and debug header pins is used for interacting with the board. Designs can read values from the switches and push buttons and can write values to the displays and LEDs. The debug header can be used for any number of purposes, such as providing a convenient way for one WARP board to trigger the action of another board over a wire.

    입력/출력 포트는 일반적인 MCU와 같이 LED와 16진 디스플레이, 스위치, 디버거핀 등이 존재합니다. 디버거핀은 어떠한 액션을 실행하기 위한 트리거로써 사용되며 이는 아마 다른 문서에 자세한 설명이 존재 할것으로 보입니다.

  • Radio Interfaces A & B: These interfaces provide the radios that allow designs to communicate at the 2.4GHz and 5GHz bands. For each radio interface, digital I and Q values from the FPGA are taken through digital-to-analog converters and are delivered to the transceiver for upconversion (i.e. wireless transmission). Wireless reception follows the reciprocal process where I and Q analog streams are taken from the transceiver through analog-to-digital conversion and are then delivered to the FPGA. The interfaces are labeled "RF A" and "RF B" on the board and in our reference designs.

    WARP는 WLAN에 초점을 맞춘 플랫폼이기때문에, WiFi가 주로 사용하는 2,5 GHz 대역의 주파수를 사용하는 라디오 인터페이스가 있습니다. 기본적인 무선신호의 전송을 위한 기능을 FPGA를 사용하여 수행하며 (디지털->아날로그 변환과 변조) 송수신기를 분리하여 RF A와 B로 명명합니다.

  • SDRAM: This DDR3 SO-DIMM provides extra memory beyond the block RAM inside the FPGA. The WARP v3 kit ships with a pre-tested 2GB SO-DIMM.

    역시 좋은 플랫폼답게, SDRAM 메모리를 가지고 있습니다.

  • Device label: This label shows the FPGA device on the WARP v3 board. This device is used in a number of places during the development process (such as exporting a peripheral core from Xilinx System Generator), so this label is present for convenient lookup.


  • Virtex-6 FPGA: Under the fan, the FPGA serves as the central processing system for the WARP board.

    펜(fan)아래에는 본 FPGA보드의 핵심적인 CPU가 있습니다. 

  • FMC HPC Slot: The FPGA Mezzanine Card High Pin Count slot provides connectivity to an existing ecosystem of hardware as well as future WARP-specific modules.

    FPGA 중이층 핀 포트가 존재하지만, 여기에 대한 설명의 웹페이지가 유실되어서 아직은 본 포트의 존재를 모르겠습니다. 추후 업데이트 하겠습니다.

  • Serial #: This is the unique serial number for the WARP board. This number is also programmed into an EEPROM on the board prior to shipping, allowing software running on the hardware to read this information.

    WARP의 고유번호가 적혀있습니다. 해당번호는 모듈내부의 EEPROM에 새겨져서 배송되기 때문에 제품의 식별번호로 사용됩니다.


  • Ethernet A/B: The two 10/100/1000 Ethernet ports provide high-speed connectivity between the board and a wired network. The ports are labeled "ETH A" and "ETH B" on the WARP v3 board and in our reference designs.

    WARP는 2개의 고속 이더넷 포트를 제공합니다. 포트의 라벨은 ETH A와 V로 표기됩니다.

  • JTAG: The JTAG connector allows direct programming of the Virtex-6 FPGA using a Digilent or Xilinx JTAG cable.

    WARP는 FPGA 프로그래밍을 위한 JTAG 커넥터를 제공합니다.

  • SD Card: An alternative to programming the board over JTAG is to use the SD card. This allows non-volatile storage of programs that will automatically download and execute upon insertion of the SD card.


  • UART: The micro-USB connector on the board allows programs on the board to print messages to a terminal running on a computer.

    마이크로 USB 커넥터의 형태로 (보드-PC간의) UART통신도 사용이 가능합니다.

  • Power Switch: The power switch controls power to the board. The "off" position is where the switch is furthest away from the power jack. The "on" position is where the switch is closest to the power jack.

    파워스우치로 아래의 파워잭과 멀리 떨어진 위치일때가 OFF입니다. 가깝게 토글하면 

  • Power Jack: The power jack is where the 12V power supply that comes with the WARP hardware should be plugged in. Note: the power switch should be in the "off" position whenever the power plug is inserted or removed. This allows the circuitry controlled by the switch to properly sequence the power regulators on the board.

    WARP는 12V 전원 공급장치로 연결되며, 전원잭을 연결할때마다 파워 스위치는 OFF 상태에 위치해야합니다. 주의하십시요. WARP는 프로토타입으로 제공하는 플랫폼이기에 회로 쉽게 손상을 줄수있는 행동을 삼가하고 다룰때 신중해야합니다. 특히 정전기에 취약하기 때문에 접지 손목 스트랩과 같은 정전기 예방 솔루션을 사용하여서 작업하기 바랍니다. 

The Xilinx Virtex-6 FPGA 는 복잡한 프로그램 구동시 상당한 열을 발생하기 때문에 쿨러의 사용이 중요합니다. 아래의 그림과 같이 점퍼가 연결되어있어야 동작합니다.  




Each board will be shipped with this jumper connected. This jumper should not be removed. Verify that it is present before using the board.




Installing an FMC Module


WARP v3 includes a FMC HPC slot which can host an FMC module (a.k.a. FMC daughtercard). The FMC connector requires considerable force to mate and separate boards. It is essential you brace the WARP v3 board when mounting/removing FMC modules, to avoid flexing the PCB and breaking solder joints under the FMC connector and FPGA.


The video below shows the proper technique for connecting an FMC module. Do not simply press the FMC module down. Always prevent flexing the WARP board by pinching the FMC module and the WARP board together.





드디어 위에서 언급한 FMC HPC Slot의 쓰임에 대해서 나왔습니다. 동영상은 FMC 커넥터에 모듈을 연결하는 방법을 알려줍니다. 단순하게 FMC모듈을 눌러서는 안되고 동영상을 참조하여 장착하여 파손을 미리 방지 하기 바랍니다. 또한 FMC 모듈을 제거할때도 아래의 영상을 참조하여 적절한 방법으로 제거하기 바랍니다. 
(즉, 무작정 힘으로 하면 안되고, 보드의 튼튼한 부분 (예를들면 마운트) 을 붙잡고서 탈부착을 해야합니다.)




* 앞으로의 연구에 사용할 일이 있어서 WARP 플랫폼 공부에 대한 흔적을 깨작깨작 제 맘대로 남기고자 합니다. 

  제 생각대로 해석하고 진행하는 부분들이 많기 때문에 틀린부분이 다소 많을수 있습니다. 

  그냥 참고용으로만 봐 주세요. *



WARP를 알아가는 모든 내용들은 아래의 공식 홈페이지를 참조하여 진행합니다.


http://warpproject.org/trac/wiki/GettingStarted/WARPv3


아래는 WARP 시작을 위한 페이지입니다. 모든 페이지는 본문내용 + 네이게이터 BAR가(아래그림) 존재합니다. 


 <- 한눈에 잘 정리된 네비게이터를 잘 활용하면 좋습니다.



This "getting started" guide is intended as a resource for new users of WARP v3. The idea of this guide is to present the initial steps in order to get "up and running" with the hardware and to minimize the amount of time it takes a new user to start doing their own interesting research on the platform. This guide is broken up into four pieces. We highly recommend new users read all of them.


  1. Getting to Know the Hardware - A tour of the WARP v3 hardware and important information for proper handling of the board.
  2. Recommended Tools and Equipment - A list of the hardware and software tools we recommend for using the WARP hardware.
  3. Getting Started with the Xilinx tools - Some initial exercises using WARP with the Xilinx design tools.
  4. Additional Resources - Extra resources and reference material for users as they begin their own research on WARP.



저는 위의 순서번호에 맞게 차근차근 하나씩 스터디를 해 볼 예정입니다. (시작일 2016.05.02)

일단 무엇부터 시작할지 결정하기 위해서 전반적인 웹페이지 구성에대해서 알기 위하여 무작적 하나씩 다 들어가서 클릭해보았습니다. 그래서 대강 정리해보면 아래와 같은 구성으로 읽어보면 된다는 것을 알았습니다. 번호는 위의 WARP Start 페이지의 1~4번호를 참조하여 작성했습니다.



1. http://warpproject.org/trac/wiki/GettingStarted/WARPv3/Hardware

2. http://warpproject.org/trac/wiki/GettingStarted/WARPv3/Tools

3. http://warpproject.org/trac/wiki/GettingStarted/WARPv3/IntroToTools

 3-1. http://warpproject.org/trac/wiki/Exercises/13_4/IntroToSDK

 3-1-2. http://warpproject.org/trac/wiki/HardwareUsersGuides/WARPv3/TemplateProjects

 3-2. http://warpproject.org/trac/wiki/Exercises/13_4/IntroToXPS

 3-3. http://warpproject.org/trac/wiki/Exercises/13_4/SysGenExport

4. http://warpproject.org/trac/wiki/GettingStarted/WARPv3/Resources

 4-1. http://warpproject.org/trac/wiki/HardwareUsersGuides/WARPv3 

       : WARP user 메뉴얼에 대한 내용입니다. 

5. http://warpproject.org/trac/wiki/WARPLab

6. http://warpproject.org/trac/browser

7. http://warpproject.org/trac/wiki/WARPLab


8. 802.11 Reference Design: Changelog 
  
http://warpproject.org/trac/wiki/802.11




WARP Projects 는 Template Projects 말고도 802.11 Reference Design, WARPLab Reference Design, and OFDM Reference Design 에 대한 프로젝트 예제들을 포함하고 있습니다. 필자의 주 타겟은 WARP를 사용한 WALN 통신구성이기 때문에 subsection 8 이후 내용은 802.11 참조모델 디자인에 대해서 포스팅 할 예정입니다.  




복잡해보이지만, 결국 WARP를 잘 다루기 위해서는 먼저 하드웨어 대한 이해와 코드와 디버깅을 작성하는 소프트웨어 툴의 이해 그리고 프로젝트 제작으로 볼수가 있고, 이를 지원하기 위한 포럼과 예제 코드들이 존재한다는 것을 알수가 있습니다.


각각의 웹페이지들의 내용진술에서 이전 페이지들을 참조할수도 있는데, 이는 이전 내용들을 다방면으로 숙지해야만 이해가 가능하다는 의미입니다. 따라서 이리저리 페이지들을 옮겨다니며 공부를 해야하는 번거로움이 존재하기 때문에, 위와 같은 하나의 큰 줄기를 잡아놓는다면 현재까지의 공부진행상태가 어디까지인지 명확하게 파악하여 효율적으로 스터디를 진행 할수가 있습니다. 







+ Recent posts