スポンサーサイト

.-- -- スポンサー広告 comment(-) trackback(-)
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ISE 9 の最適化が残念な件

.30 2010 FPGA-others comment(0) trackback(0)
ISE ver 9でちょっとした回路を組んでみたわけですが、design goalをspeedにして合成した(要するに多少回路規模が大きくなってもいいから速度がでるように最適化するオプション)にもかかわらず結構残念なことが判明しました。
min		<= a       when b /= "000" or c > a else c;
min3	<= min - 1 when b = "000" and c <= a and c /= "00000" else min;

ここで、min3のwhen節が成立するとき、b = "000" かつ c <= a なのでこのときminは必ずcになっています。 したがって2行目は
min3	<= c - 1 when b = "000" and c <= a and c /= "00000" else min;

と書けるわけです。このように圧縮しないとき、min3の値が出るまでの遅延は、
minの値が出るまでの遅延( = マルチプレクサの遅延) + min - 1の計算の遅延( = 定数加算回路の遅延) + min3のマルチプレクサの遅延
となります。
しかし、さきほどのように圧縮すれば、min3の値が出るまでの遅延は、
max{minの値が出るまでの遅延( = マルチプレクサの遅延), min - 1の計算の遅延( = 定数加算回路の遅延)} + min3のマルチプレクサの遅延
となってそこそこ遅延時間を減らすことができるのです。

が、残念ながらISE9ではこういった最適化は自動ではやってくれませんでした。ISEもバージョンがあがるにつれてこういった最適化も上手になってきているんでしょうかね…
早く家のPCにも最新版を入れてみよう。
# そもそもこのくらいの最適化は手動でやれよという気もしますが…
スポンサーサイト
 HOME 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。