$countones で bitランダム
きっかけはこちらの Verification Academyにて
このスレッドにCVCの方が回答したものが、こちらになります。
Smart constraint modeling in SystemVerilog
class c; rand bit[31:0] vec_1; constraint cst_max_2_hot_bits { $countones(vec_1) inside {1,2}; }
この記述すごく簡素ですよね。
$countones 使うとこんなに簡単に出来るとは。
one hotだと $onehot を使えば良いと思います。
SystemC-2.3インストール(clang3.3)
clang 3.3で SystemC-2.3をインストールしようとした際のメモ。
$> ../configure CC=clang CXX=clang++ : : configure: error: "sorry...compiler not supported"
ってな感じでエラーが出ます。
どうやら、INSTALLには記載があるのに、clangは使えないようです。
っとそんなはずはない!っと思ったのですが。。。
結局、configureを修正します。
configureでは「$CXX_COMP」という形で、c++ compilerを検査してます。
なので、ここに clang++を追加することで configのエラー回避出来ます。
例えば、Linux OSだと 5082行目です。
--- ../configure.org 2013-04-25 23:19:19.918563992 +0900 +++ ../configure 2013-04-25 23:38:35.215930881 +0900 @@ -5079,7 +5079,7 @@ ;; esac case "$CXX_COMP" in - c++ | g++) + c++ | g++ | clang++) EXTRA_CXXFLAGS="${EXTRA_CXXFLAGS} -m${CPU_ARCH}" EXTRA_ASFLAGS="-m${CPU_ARCH}" ;;
これで、make すると
$> make : /bin/sh ../../../libtool --tag=CXX --mode=compile clang++ -DSC_INCLUDE_FX -I. -I../../../../src/sysc/kernel -I../../../../src -Wall -m32 -c -o sc_attribute.lo ../../../../src/sysc/kernel/sc_attribute.cpp libtool: compile: clang++ -DSC_INCLUDE_FX -I. -I../../../../src/sysc/kernel -I../../../../src -Wall -m32 -c ../../../../src/sysc/kernel/sc_attribute.cpp -fPIC -DPIC -o .libs/sc_attribute.o libtool: compile: clang++ -DSC_INCLUDE_FX -I. -I../../../../src/sysc/kernel -I../../../../src -Wall -m32 -c ../../../../src/sysc/kernel/sc_attribute.cpp -o sc_attribute.o >/dev/null 2>&1 : :
ってな感じで、完了します。
あとは $> make install で完了です。
あと。SystemC Forumでもスレッドが立ってました。
- SystemC install clang
最終的には「configure.in」を修正して、
$> autoreconf -ivf
を行いインストールしました。
関連記事
HLSで「等価性検証は必要ないのか?」と質問された時の正解
元ネタ:TDDで「テストばかり書いて間に合うのか?」と質問されたときの正解
高位合成/動作合成のツールを使った設計において、顧客などから
「等価性検証は必要ないのか?」
などと質問されることがあると思います。
そんな時には、後ろからそっと抱きしめて
「そんな質問させてごめんな」
が正解です。
SystemVerilog:bitスライスと初期値代入
problem about variable part select in SystemVerilog
確かに、こういう風に書きたいと思った時もありますね。
addr[8-:idx_bits] = {idx_bits{1'b1}};
☆ここでのポイント
addr[ const_or_var : const ] = { const { const_or_var } };
- ビットスライス右側の部分は定数
addr[ const_or_var [+/-]: const ]
- 初期値宣言の範囲は定数
= { const { const_or_var } };
Vim: +Lua にてインストール(Ubuntu12.04)
Vimにて、if_luaを有効にしたかったので、その時のメモを。
Lua5.2のインストール
$> sudo apt-get install lua5.2
これだけだと、「lua.h」が見つからないということで 有効化されません。
なので、こちらもインストールする必要があります。
@h_east さんありがとうございます。
$> sudo apt-get install liblua5.2-dev
configureの設定
「 --enable-luainterp=yes 」をつけて configします。
$> ./configure --enable-luainterp=yes
- 見るべきポイント
: checking --disable-xsmp argument... no checking --disable-xsmp-interact argument... no checking --enable-luainterp argument... yes checking --with-lua-prefix argument... no checking LUA_PREFIX environment var... not set, default to /usr checking for lua... (cached) /usr/bin/lua checking Lua version... (cached) 5.2 checking if lua.h can be found in /usr/include... no checking if lua.h can be found in /usr/include/lua5.2... yes checking --enable-mzschemeinterp argument... no checking --enable-perlinterp argument... yes :
きちんと「lua.h」が見つかっていることを確認してください。
あとは、make; make install で完了です。
改めて、Vim Girlかわいい!!!