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

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

Linuxコマンド

つれづれに追加していきます。 指定した文字列をファイル名に含むファイルを検索する。 find -name "文字列" . 指定した文字列を内容に含むファイルを検索する。 grep "文字列" -rl . テンポラリファイルを作成せずに、2つの生成した標準出力を比較する。 d…

コード生成のためのヒアドキュメント利用

CSVで指定されたパラメータセットに応じてコードを自動生成するスクリプト。 パラメータの取得はPython標準CSVパーサを利用。コード生成はヒアドキュメントに変数を埋め込むことで実現している。 #! /usr/bin/env python import sys import csv #-----------…

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

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つの関数が必要とされる。 特に、①はコンパイルエラー回避のため必須である。 ②、③は無くてもよいが、デバ…