Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

AWS EC2 F1について、みんなでワイワイ調べる会(その2)



AWS EC2 F1について、みんなでワイワイ調べる会は7/8(土)に開催しますが、
申込期限を6/30(金)の0:00としています。

まだ、10日ありますが、既に27名(キャンセルが2名なので、29名)の申込がありました。

前回の勉強会、「PYNQ祭り」延長戦 : FPGAディープラーニング実践懇親会よりも多くなりました。

前回と同じように、チーム活動ですが、
今回は事前にガッツリやってね。という条件を付けなかったのが良かったのかもしれません。

githubに公開されているサンプルコード(Hello World)では、
テストプログラムは、DPI-Cを利用したC言語です。
引用
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>

// Vivado does not support svGetScopeFromName
#ifdef INCLUDE_DPI_CALLS
#ifndef VIVADO_SIM
#include "svdpi.h"
#endif
#endif

#include "sh_dpi_tasks.h"

#define HELLO_WORLD_REG_ADDR UINT64_C(0x00)

void test_main(uint32_t *exit_code) {

// Vivado does not support svGetScopeFromName
#ifdef INCLUDE_DPI_CALLS
#ifndef VIVADO_SIM
  svScope scope;
#endif
#endif

  uint32_t rdata;

// Vivado does not support svGetScopeFromName
#ifdef INCLUDE_DPI_CALLS
#ifndef VIVADO_SIM
  scope = svGetScopeFromName("tb");
  svSetScope(scope);
#endif
#endif

  log_printf("Writing 0xDEAD_BEEF to address 0x%x", HELLO_WORLD_REG_ADDR);
  cl_poke(HELLO_WORLD_REG_ADDR, 0xDEADBEEF);
  cl_peek(HELLO_WORLD_REG_ADDR, &rdata);

  log_printf("Reading 0x%x from address 0x%x", rdata, HELLO_WORLD_REG_ADDR);

  if (rdata == 0xEFBEADDE) {
    log_printf("Test PASSED");
  } else {
    log_printf("Test FAILED");
  }

  *exit_code = 0;
}

ということで、
DPI-Cでどんな感じでテストベンチを組み立てているかを調べますチームもあります。

現時点では、下記のようなお題で各自参加したいチームで活動することになります。
 1)、サンプルデザインのHDLコードを解析するチーム(Hello World & DMA)
 2)、サンプルデザインのテストベンチ&テストプログラムを開発するチーム(Hello World & DMA)
 3)、hdk_setup.sh/sdk_setup.shを解析するチーム
 4)、DMAデバイスドライバを解析するチーム
 5)、HAL(Hardware Abstract Layer)を解析するチーム
 6)、Virtual JTAGを解析するチーム