回路の結線パターンをHaskellで表す.
関連サイト
Lava の派生
- The Lava Hardware Description Language
- chalmers-lava2000: Hardware description library
- Wired: Wire-aware hardware description
- york-lava: A library for digital circuit description
- Reduceron
Chalmers工科大学の講義
- Hardware description in Functional Languages and Introduction to Lava
- How to Use the Lava System (2010)
著者のページ
chalmers-lava2000 のインストール
現時点で手に入れやすい Lava のパッケージは Hackage に登録されている chalmers-lava2000 である.これを cabal コマンドを使ってインストールする.
$ cabal update
$ cabal install chalmers-lava2000
通常はこれで,$HOME/.cabal/ 以下に必要なものがインストールされる.
chalmers-lava2000 で外部定理証明器を使う方法(Linux)
chalmers-lava2000 では回路の性質を検証する関数 verify が使えない.これは verify に対応する外部定理証明器へのラッパーが提供されていないためである.その代りに satzoo あるいは smv へのラッパーが用意されているのでこれを使う.
satzoo を使う
定理証明器 satzoo はすでに DEPRICATED! とのことで,代りに MiniSat を使う.まず,
minisat のインストール
minisat を /usr/local/bin/ にインストールし,これに satzoo という別名を付けておく.
$ wget http://minisat.se/downloads/minisat2-070721.zip
$ unzip minisat2-070721.zip
$ cd minisat
$ cd simp
$ make rs
$ sudo cp minisat_static /usr/local/bin/minisat
$ sudo ln -s /usr/local/bin/minisat /usr/local/bin/satzoo
ラッパーを設定
利用時に環境変数 Lava2000_Satzoo が /usr/local/bin/satzoo を指すようにしておく.シェルとして bash を使っているなら,$HOME/.bashrc に
export Lava2000_Satzoo=/usr/local/bin/satzoo
を書いておけばよいでしょう.ラッパースクリプトに実行パーミッションを立てる.chalmers-lava2000 を前述のようにインストールしたのなら,ラッパースクリプトは $HOME/.cabal/share/chalmers-lava2000-
$ chmod +x $HOME/.cabal/share/chalmers-lava2000-1.1.1/Scripts/satzoo.wrapper