はぐれエンジニアつれづれ

デジタルLSI設計(SystemC, SystemVerilog, etc.)の備忘録。はてなダイアリから移行中。

C++

CMake + Google Testの中規模プロジェクト作成

C++

はじめに 概要 公開用ヘッダファイルとソースファイル、テストファイルのディレクトリを分離する テストにGoogleTestを使用する Github GitHub - taksei/googletest_sample 動作環境 Ubuntu18.04(NativeあるいはWSL) ディレクトリ構成 Directory Note includ…

メルセンヌツイスターによるランダムテストデータ作成

C++

ランダムなテストデータを生成する関数randomizeArrayを作成した。 具体的には、指定した区間([min, max))の一様分布にて配列をランダム化する。 疑似乱数であるstd::mt19937_64を使っているため同一環境での再現性あり。 ただし、一様分布生成std::unifor…

float, doubleの16進数内部表現から値を復元する

C++

16進数内部表現で与えられたfloatやdoubleの変数値を入力として、floatやdoubleに復元するコードを考えた。 入力となる16進数内部表現には、先頭に”0x”または"0X"が付加されていてもよい。 x86_64にて動作確認。処理系依存のコードになっているため、使用時…

ユーザ定義クラスのためのメソッド定義

C++

SystemCでは、ユーザ定義型(クラス)をチャネルのテンプレート引数として使用できる。 ユーザ定義型には、①比較(==)、②標準出力(<<)、③sc_traceの3つの関数が必要とされる。 特に、①はコンパイルエラー回避のため必須である。 ②、③は無くてもよいが、デバ…