FPGAの部屋FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。CyberWorkBenchのセミナに行ってきた昨日、田町駅の近くの森永プラザビルで行われたCyberWorkBenchのセミナに参加してきました。(何か勘違い、間違いがありましたら、ご指摘ください)FPGAで性能を追求すると、動作周波数とデータが出てくるまでのクロック・レイテンシの最適化にいつも悩みます。動作周波数を可能なかぎり速くしたい、しかし、データが出てくるまでのクロック・レイテンシは可能なかぎり下げたいという要求仕様があります。これはいつでも同じだと思います。前に作ったネットワークの回路では、この要求がありました。FF間に入りそうなロジックを詰め込んで、論理合成し、インプリメントする。FF間のロジックが多すぎてクリティカル・パスの遅延が動作周波数の周期を満足できない!”パイプライン段数を増やして作りなおしだ。いうのが複数回発生して、大変な状況になってしまいました。一応まとまったから良いものの、かなり完成が遅くなってしまったことがあります。それに、FPGAがどう論理合成されてインプリメントするか、概略しかわからないというジレンマもありました。FF間のロジックが完全には予測はできませんでした。これが、FF間のロジックの見積もりを甘くしていました。その時から、パイプライン段数を簡単に可変出来て、試せたらものすごく良いのにと思っていました。C言語ベースの合成環境は、うまく行けば、その苦労を解消してくれるはずです。Cソースから、いろいろなパイプライン段数や、回路方式を出力できて、それを試すことが出来ます。複数のパソコンとツールのライセンスがあれば、全部同時に論理合成、インプリメントすることが出来ます。いう訳で、C言語ベース(Javaベースでも何ベースでも)の高位合成環境には期待しています。前フリが長くなりましたが、印象に残ったところを書きます。(間違いや勘違いがある可能性があります。自分の感じた印象を書きます)1.モデルの統一アルゴリズムのCでの検証は、floatやintの変数を使って行います。それからハードウェアに落とす前に浮動小数点演算を固定小数点演算に落とします。その時にビット精度(途中も含めて)を決めるのですが、どのくらいの精度にするか悩むところです。オーバーフローを防ぐため飽和演算処理を行ったり、アンダーフローを丸めたりする処理が必要です。今までは、アルゴリズム検証用のCモデルとハードウェア精度のCモデルを別々に書いて、効果を比較していましたが、CyberWorkBenchにすると、ビット幅を定義できるそうなので、ifdefで分けて1つのファイルに書けるそうです。これは便利だと思いました。2.ハードウェアの使用リソースの変更パイプラインのレジスタの入れる位置を調節してくれる機能を想像していたのですが、最初の説明では、FSMと計算リソースを使用して、指定された計算リソースで回路を生成するようなイメージでした。後でパイプラインの段数も指定できるというような説明があったと思います。どっちでも出来るのでしょう?レイテンシや回路規模を簡単に変更できると、前に書いたように、とても便利だと思います。3.サイクル精度シミュレータサイクル精度シミュレータは便利だと思いました。RTLも合わせて、サイクル精度でシミュレーション出来るようです。ModelSimよりかなり速くシミュレーション出来ます。私も画像関係のシミュレーションには、1フレームとてもシミュレーションできないほど時間かかってましたので、魅力的です。何値の信号をシミュレーションしているかを聞いてくるのを忘れました。後、SecureIPはどうなのか?というのも聞いてくれば良かったです。4.CソースコードデバックCソースコードデバックでは、回路になって並列化されるので、複数行が選択されていました。CyberWorkBenchは、とても便利なツールだと思いました。使い所は新たなアルゴリズムを生成する部分になると思います。それ以外は、どうしても検証済みのIPを使いたいところだと思います。それなので、出来れば、AXIバス・インターフェースを自動生成できて、EDKやQsysに簡単に接続できるようにウィザードなどを整備して頂ければ、より一層簡単に使えるものと、私は思います。(なお、問題がある内容、表現がありましたら、お知らせ下さい。URLhttps://marsee101.blog.fc2.com/tb.php/1955-072248fdこの記事にトラックバックする(FC2ブログユーザー)プロフィールAuthor:marseeFPGAの部屋へようこそ!FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。WEBブログデザイナ。