2013-02-01から1ヶ月間の記事一覧

SCV_SOFT_SONSTRAINTを書いてみた。

SystemVerilog 2012より追加された soft constraintが どんなものか分からなかったので SCVで書いてみました。 SystemVerilog 2012 : soft constraint サンプルコード #include <scv.h> //Valid values for a are 10 or 30 class slower : public scv_constraint_ba</scv.h>…

SCV:制約付ランダムデータ生成(その2)

今回は、SCVを使った制約付きランダム生成(その2)です。 前回のデータを元に更に制約を加えてみたいと思います。 サンプルコード #include <scv.h> // Valid values for a are 10-20, 50-60, 90-100 class slower : public scv_constraint_base { public: scv_smart</scv.h>…

SCV:制約付ランダムデータ生成(その1)

今回は、SCVを使った制約付きランダム生成(その1)です。 今までの keep_only/keep_outの記述を SCV_CONSTRANT を使って書くことができます。 サンプルコード #include <scv.h> // fast simple constraint. // Valid values for a are 10-20, 50-60, 90-100 class fa</scv.h>…

SCV:重み付けランダムデータ生成(値の範囲)

scv_bagを使ってランダムの確率分布を指定することが出来ます。 前回は値に対してですが、値の範囲に対しても同じことが可能です。 サンプルコード #include <scv.h> int sc_main( int argc, char* argv[] ) { scv_bag<pair<int,int> > dist; dist.add(pair<int, int>(0,4), 15); // 50% dis</int,></pair<int,int></scv.h>…

SystemC 2.3:sc_start(1) Error

きっかけはこちらのスレッドになります。 Error : no matching function for call to SC_start SystemC-2.2では、 sc_start(1); のような sc_start(int); 記述を許していたんですね。 書いたことなかったので、試しに記述して確認してみました。 SystemC-2.2…

SCV:重み付けランダムデータ生成(値)

scv_bagを使ってランダムの確率分布を指定することが出来ます。 サンプルコード #include <scv.h> int sc_main( int argc, char* argv[] ) { scv_bag<int> dist; dist.add(0,15); // 50% dist.add(1,8); // 27% dist.add(2,4); // 14% dist.add(3,2); // 6% dist.add(4,1</int></scv.h>…

SCV:分布を指定したランダムデータ生成

SCVではランダム生成において、モードが存在します。 今回はそれらを試してみました。 モード 説明 RAMDAM 指定分布範囲での一様なランダム生成 SCAN とりうる値で小さいものから大きいものへと生成 RANDOM_AVOID_DUPLICATE 生成可能な数値が出尽くすまで同…

メモ:git基本コマンド

Git

Gitのコマンドメモです。 例として、ファイル名:hoge.cpp ブランチ名:bra1としてます。 git リポジトリ作成 $> git init git 状態確認 $> git status ファイルの追加 $> git add hoge.cpp コミット $> git commit hoge.cpp コミット(メッセージ付き) 複数…

yokohama.vim.reverse #4 に参加してきました。

Yokohama.vim.reverse #4 に参加して来ました。 今回が初のVim勉強会参加でした。 開催前に @gu4さんから発表をお願いされ、当日の朝に資料書いてたなんて言え。。。 Pre懇親会 「Vimmerはシャイなので懇親会からギアが入ると聞いて。」 確かに、私もシャイ…

SCV使用時の役立つ?gccオプション

SCVをコンパイルする際の Makefileはこんな感じです。 ※使用する際にはインストールパスを自分のに置き換えてください。 SYSTEMC_HOME = /usr/local/lib/systemc-2.2.0 SCV_HOME = /usr/local/lib/scv-1.0p2-sysc2.2 TARGET_ARCH = linux SYSTEMC_INC_DIR = …

SCV:ランダムデータの生成

SCVをインストールしたので、色々書いてみたいと思います。 先ずは基本的なランダムデータの生成から。 サンプルコード #include <scv.h> int sc_main( int argc, char* argv[] ) { scv_smart_ptr<int> data_p( "data" ); for (int i=0; i<20; i++) { data_p->next(); pr</int></scv.h>…

SCV error: ‘_scv_pop_constraint’

Ubuntu12.04に SCV をインストール 後に exampleを動かすと 以下のような Errorが発生します。 ※実行したものは「examples/scv/randomization/constraints」 : ./run.x scv_constraints.cpp: In constructor ‘packet_base_constraint::packet_base_constrain…

Ubuntu12.04に SCV をインストール

SCV(SystemC Verification library)のことです。 2006年以降全く更新がない困ったライブラリちゃんなので、 ちょっと火がついたのでインストールしてみました。 環境 Ubuntu12.04 LTS(32bit) gcc/g++ 4.4.7 SystemC 2.2 ダウンロード こちらからファイルをダ…

【メモ】libtool

SystemC-2.3インストール時に使っている「libtool」が イマイチ分からなかったので、メモっとく。 正確には、GNU Libtool - The GNU Portable Library Tool 最新版は「2.4.2」で、2011年10月以降の更新なし。 目的(役割) libtool を使用することで、静的ライ…

Vim+kobitoで快適 Markdown編集♪

Markdownのプレビューはいくつもあると思いますが、 Vim(MacVim) + kobitoが無料で一番使い易いかも!!! これを使う前は、quickrun+open-browserで表示させたりしてました。 しかし、それだと Syntaxのハイライトなどが出来なかったので、 少々使いづらい…

SystemC動作時に確認している環境変数

SystemCでは、マニュアル(LRM)に載っていないけど 動作時に見ている環境変数が存在する。 src内部を getenv とかで grepした結果です。 変数名 2.2 2.3 内容 SYSTEMC_REGRESSION レ レ よくわからない... リグレッション用の何か? SC_SIGNAL_WRITE_CHECK レ…

【SystemC】libtool + gdbの使い方

SystemC-2.3で、libtoolを使ってコンパイル&リンカした場合の 実行形式ファイルらしきものを見るとスクリプトになっています SystemC-2.3では多分 libtoolを使うことが推奨されています。 サンプルコード(sc_main.cpp) #include <systemc.h> int sc_main(int argc, char</systemc.h>…

Mercurialから Vimをインストール

前回、Mercurialをインストールしたので、 Vimをインストールしたいと思います。 Mercurialリポジトリから取得 $> hg clone https://vim.googlecode.com/hg/ vim 全チェンジセットを取得中 チェンジセットを追加中 マニフェストを追加中 ファイルの変更を追…

Ubuntu 12.04に Mercurialインストール

Mercurial インストール $> sudo apt-get install mercurial パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の特別パッケージがインストールされます: mercurial-common 提案パッケー…

Ubuntu12.04に Valgrindをインストール

http://valgrind.org/ Linuxで SystemCモデルなど開発しているのであれば、 使ってない人はいないのではないでしょうか?(言い過ぎかもしれません) せっかくなので、個人PCにも入れてみました。 インストール $> sudo apt-get install valgrind インストール…