目次
 ●手続き
 ◎ライブラリへの登録
 ○ユーザ・ライブラリの作成
 ○ユーザ・ライブラリの読み出し
|
 
手続き
手続きは下のように書きます、出力はひとつだけです。
logicname sample
procedure add {手続き名}
input a[4]; {引数1}
input b[4]; {引数2}
output c[4]; {出力}
c=a+b;
endp
entity main
input a[4],b[4];
output c[4];
{↓引数1}
c = add( a , b );
{出力} {↑} {↑引数2}
{手続き名}
ende
endlogic
|
 
ライブラリへの登録
ライブラリの手続きはコンパイル時にメモリに置かれ
ています。
実効譜に書かれた手続きはメモリに置かれたライブラ
リに追加されます。
LDC sample -lib
とするとライブラリに手続き譜を追加して new.lib
に書き出します。
new.lib を std.lib に名前を変えると手続き譜を置
かなくても次から同手続きを引用できます。
 
ユーザ・ライブラリの作成
std.lib はコンパイラが参照する必須のライブラリです。
これに新たな手続きを上記の方法で追加していくこと
もできますし、また新たなライブラリを作ることもで
きます。
上の方法で new.lib を作るとファイルの最後に下の
手続きが追加されていますので、これを
(name〜endequまで)
エディタで新
しいファイルに保存して新規のライブラリにするか、
または既存のライブラリファイルに追加すなどして独
自のライブラリを構築していくことができます。
例 |
name add
time 0g
input a0,a1,a2,a3,b0,b1,b2,b3;
infoin 2,4,4;
infoinc 2,0,0;
output c0,c1,c2,c3;
infoout 1,4;
infointn 1,3;
intern _n14,_n15,_n16;
equ
c0 = !a0 & b0
| a0 & !b0 ;
_n14 = a0 & b0 ;
c1 = !a1 & !b1 & a0 & b0
| !a1 & b1 & !_n14
| a1 & !b1 & !_n14
| a1 & b1 & a0 & b0 ;
_n15 = !a1 & b1 & a0 & b0
| a1 & !b1 & a0 & b0
| a1 & b1 ;
c2 = !a2 & !b2 & _n15
| !a2 & b2 & !_n15
| a2 & !b2 & !_n15
| a2 & b2 & _n15 ;
_n16 = !a2 & b2 & _n15
| a2 & !b2 & _n15
| a2 & b2 ;
c3 = !a3 & !b3 & _n16
| !a3 & b3 & !_n16
| a3 & !b3 & !_n16
| a3 & b3 & _n16 ;
endequ
|
 
ユーザ・ライブラリの読み出し
ユーザのライブラリを usr.lib に作って、その中の
手続きを使う場合は library で usr.lib を読み込ま
せます。
例 |
logicname sample
library usr.lib {←ユーザのライブラリを読み込みます。}
entity main
input a[4],b[4];
output q[4];
q = add(a,b); {←ユーザの定義した手続きです。}
ende
entity sim
output a[4],b[4];
output q[4];
bitr tc[8];
part main(a,b,q)
tc=tc+1;
a=tc.0:3;
b=tc.4:7;
ende
endlogic
|
|