アダルト・ヴァイオリン May the force be with you..

2009年2月22日

レジスタの初期値

Filed under: Weblog — い~ぐる @ 11:15 AM

以前、SFLの話をある人にした時に、
「SFLでは、レジスタの初期値を自由に設定できますか?」
と聞かれ、現状の仕様では、セットとリセットしかないと答えたら、それでは使えないというような反応が来たことがある。
論理設計の0.1%にもみたないような僅かな仕様で、採否を決めようとするのは、不思議だが、恐らく、採用しない理由が欲かったのだろう。

ということで、sfl2vlでは、初期値を自由に設定できるようにした。
ついでに、定数にビット幅の重みを明示的に持たせられるようにする。
(10進定数を新たに定義したので、幅を持たない整数値の回路中での扱いを変更した)。

定数の変更だが、Verilog風に、
整数’定数
で、整数ビットの定数値を作る。
定数プリフィックスには、0b, 0o, 0x などの従来の定数の他、10進定数 0dを定義した。

また、レジスタの宣言において、初期値を明示的に設定できるようにした。

module t {
reg a<8>=0x80, b<8>=8'0d5, c<8>;
c:=a+b;
}

のような記述を許している。

sfl2vlの20090222版からのサポートとなる(ベータ版扱い)。

Powered by WordPress