06/08/30Q1.C→HDL時、デバイスのライブラリは見るのか?A1.HDL生成の時点ではデバイスのライブラリ情報を見ていない。GenericなHDLを生成する。例外的に、Xilinxの浮動少数点マクロに対しては、デバイス・ライブラリのインスタンスを含む。Q2.ハードとソフトのインタフェース部で割り込みを使っているか?A2.現状使っていない。スレッドをサポートするOSを組み込む事ができた場合は可能にする。割り込みコントローラを管理して実現Q4.ループ内のPIPELINE化はループの入れ子には対応しているか?A4.一番内側のループにのみ対応している。内側内側のループをUNROLLすると、一番内側でなくても使えるQ5.(Xilinx)配列にBRAMが使えるか?A5.配列宣言はBRAMが通常割り付けられる。Q6.BRAMと外付けRAMとをどのように使い分けているのか?A6.通常の配列はBRAMに割り付けられます。外付けRAMは共有メモリ宣言をして使用し、BRAMとの間でブロック転送します。Q6.サポートしている演算の種類は?A6.整数演算と固定少数点演算をサポート。マクロで固定少数点演算をサポート。Xilinxの浮動少数マクロにに対応。Q7.C→HDL時のログで、パイプラインのレイテンシやレートが表示されるが、これらをコントロールできるか?A7.co_par_break()関数とプラグマでStageDelay値の設定でコントロール可能。Q8.ImpulseのHDLのライブラリは公開されているか?A8.当然、公開されている。FIFO等のモデリングを含めたシミュレーションができ、出力HDLと合わせて論理合成が可能になる。Q9.リソースを共有化してデバイスサイズを小さくできるか?A9.リソース・シェアリングを考慮した合成は現状できない。次期バージョン(ver3)で可能になる予定。リソースの有効利用としてpipeline化がある。pipeline化指定をすると、ループ内の全ステージが同時に動作されるようにコントロールされリソースの遊びがなくなると同時に飛躍的に高速になります。リソース・シェアリングが有利とは言えない。Q10.(Xilinx)生成されたHDLをISEで使用するには?A10.xxx_top.vhd、xxx_comp.vhd、impulseライブラリを一緒にISEに持ち込めば簡単に完全なプロジェクトとなる。Q11.SystemCのような、ビット幅の定義方法は?A11.任意ビット幅をサポート。Q12.Cでint使用時、ハード上では32ビット必要無い場合、CoDeveloperは最適化しているか?A12.使われている値の上限を見て、ビット幅を適切化する最適化はしていない。intの変りにint8などを意識して使うQ13.プラグマUNROLL指定時の、その効果のわかるデザイン例はあるか?A13.CoDeveloper\Examples\Fir51\fir_hw.cQ14.配列がレジスタになることが確認できるデザイン例はあるか?A14.ある。CoDeveloper\Examples\Fir51\fir_hw.cで、UNROLLにより配列(BRAM)がレジスタに変るQ15.StageDelayのデフォルト値は?A15.ない。d上式の式でa、b、c、dが互いに依存関係がない場合、なにも指定しなければ1クロックでの処理を試みるのか?A16.その通り。必要に応じて分割させる必要がある。リソース共有をサポート時に改善される予定。StageDelayで分割して演算数でグループ化して、複数クロック化できる。原理的に1クロックでは終了しない。64上記の表を元に遅延値が集計され64を超えないようにステージ化される*1演算がStageDelay値より大きい場合は、細分化できないので、その演算が1ステージとなるQ17.ステップ実行(デバック時)の方法は?A17.ユーザCコード:CoDeveloperそのものでは、ステップ実行の機能はない。各ANSI-Cコンパイラの持つデバッグ機構のステップ実行を使う。C++でブレークポイントを入れて実行する。CoMonitorもそれに同期する。Simularerで観察できる。全てのプロセス(Windowsスレッド)の終了時2)実装時〜スレッドをサポートするOSを組み込む事ができた場合:全てのスレッドの終了時スレッドをサポートするOSなしの場合:1つのプロセス終了時Q21.構造体のサポートは?A21.構造はをサポートされている。制限があるがバージョンが上がるに従い解消される。