Choose Parallel / Full case

Parallel case と Full case を指定する


バレルシフタは、Mentor AutoLogic II + Toshiba Library を使っていたとき、 マクロセルで作って欲しくなかったので、case 文でだらだら書いた。 その際、信号 sftbit は 0 〜 53 の範囲しか取らないとしておいて、 Full caseを付け加えた。
wire [52:0] mantissa;
wire [5:0] sftbit;
case(sftbit) // synopsys full_case
  6'd0 : sft =   mantissa;
  6'd1 : sft = { mantissa[51:0], 1'b0  };
  6'd2 : sft = { mantissa[50:0], 2'b0  };
  6'd3 : sft = { mantissa[49:0], 3'b0  }; 
  ....
  6'd52: sft = { mantissa[0]   , 52'b0 };
  6'd53: sft =                   53'b0; 
endcase
*しかしそもそも Synopsys + VDEC libraryの場合、素直に「>>」「<<」を使っ て合成した方がいいかもしれない。
いろいろ条件を変えて合成したりしてみた結果、やっぱりその方がいいので、 上記の修正は没。バレルシフタの記述は全部「>>」「<<」でいく。

Mentor AutoLogic だと、parallel とfull が、ファイル単位でしか指定でき ないような気がした。 synopsys は記述の中に埋め込むのでそんな感じに見え ないが。


一歩前へ
研究グループのページへ[OSCAR]
研究室のページへ[Amano Lab.]
Takahiro Kawaguchi kawaguti@am.ics.keio.ac.jp
Last modified: September 21 , 1998