GHDL 및 Vunit를 사용한 VHDL 테스트 환경 구축

7044 단어 VunitDockerVHDLGHDL

개시하다


"GHDL 및 Vunit를 사용한 VHDL 테스트 환경 구축"의 Docker 버전입니다.
파형 확인용 추가GTKWave

개발 환경

  • Windows10 Pro 64bit
  • Docker for Windows Community Edition Version 2.0.0.3
  • VcXsrv X Server Version "1.20.1.4"
  • ghdl/ext:ls-vunit-gtkwave
  • Python 3.7.4
  • GHDL : 0.37-dev
  • vunit-hdl : 4.0.9rc0
  • GTKWave Analyzer v3.3.102
  • X11 libraries
  • 환경 구조


    Windows에서 테스트 및 웨이브 확인을 위해 VcXsrv 설치 및 Docker 이미지 만들기

    VcXsrv


    VcXsrv 설치


    설치VcXsrv
    이번에 chocolatey부터 설치를 시작했어요.
    choco install vcxsrv -y
    

    VcXsrv 시작


    VcXsrv 시작
    모든 기본 설정 OK

    Docker


    Windows 용 Docker 설치에 대한 자세한 내용은 추가 기사를 참조하십시오.

    디렉토리 구조


    다음과 같은 디렉터리 구조를 구상하다
    디렉토리 구조
    C:.
    ├─docker-compose.yml
    ├─ghdl
    │  └─Dockerfile
    └─project
       ├─run.py # テスト実行ファイル
       ├─src
       │  └─*.vhd
       ├─test
       │  └─*.vhd
       └─vunit_out # テスト結果出力フォルダ
    

    Docker file 만들기


    자동 테스트 및 파형 확인 사용ghdl/ext:latestVcXsrv로ltkwave의 파형을 확인하기 위해 설정ENV DISPLAY host.docker.internal:0.0Dockerfile
    FROM ghdl/ext:latest
    # VcXsrvでWindows上にGUIを表示するための設定
    ENV DISPLAY host.docker.internal:0.0
    

    docker-compose.yml 만들기


    volumes 를 사용하려면 Windows 용 Docker 용 Shared Drives 를 미리 설정하십시오.
    docker-compose.yml
    version: '3'
    services:
      ghdl:
        restart: always
        build: ./ghdl
        working_dir: "/project"
        volumes:
          - ./project:/project
        tty: true
    

    실행 파일run을 테스트합니다.py 생성


    Vunit의 예의 VHDL User Guide를 기반으로 테스트 실행 파일 작성
    run.py
    from os.path import join, dirname
    from vunit import VUnit
    
    root = dirname(__file__)
    project = VUnit.from_argv()
    
    lib = project.add_library("lib")
    lib.add_source_files(join(root, "src", "*.vhd"), "lib")
    lib.add_source_files(join(root, "test", "*.vhd"), "lib")
    
    project.main()
    

    docker 이미지 만들기


    docker-compose로 ghdl 이미지 만들기
    docker-compose build ghdl
    

    실행 테스트


    테스트를 위한 GUI 없음


    src와test 폴더에 파일 넣기
    docker-compose에서run까지.py를 실행하면 테스트가 실행되고 결과가 표시됩니다
    docker-compose run --rm ghdl python run.py
    
    실행 결과
    (省略)
    
    ==== Summary ===============================================
    pass lib.tb_uartreceiver_0.o_EN          (0.6 seconds)
    pass lib.tb_uartreceiver_0.normal        (0.5 seconds)
    pass lib.tb_uartreceiver_0.parity error  (0.8 seconds)
    pass lib.tb_uartreceiver_0.framing error (0.7 seconds)
    ============================================================
    pass 4 of 4
    ============================================================
    Total time was 2.7 seconds
    Elapsed time was 2.7 seconds
    ============================================================
    All passed!
    

    GUI에서 테스트

    -g 옵션을 설정하면 VcXsrv에서도 GTKWave의 파형을 확인할 수 있습니다.
    docker-compose run --rm ghdl python run.py -g
    

    참고 자료


    GHDL
    ghdl/docker
    ghdl/docker usecase.md
    Vunit
    VcXsrv
    GTKWave
    Docker for 창의 컨테이너에서 GUI 응용 프로그램 실행
    GHDL 및 Vunit를 사용한 VHDL 테스트 환경 구축

    역사를 갱신하다


    2019/09/23
    이미지 이름을 ghdl/ext:ls-vunit-gtkwave에서 ghdl/ext:latest로 변경합니다.

    좋은 웹페이지 즐겨찾기