最初に [HDL]
最近AXIとか勉強中です。
趣味とは言え、一応決まりとかポリシーみたいのを並べてみます。自分にとっても再確認。この決まりは増えたり減ったり都合で書き換わったり例外措置を平気で認めたりします(笑)
(1)ターゲットはシミュレーションとFPGA。趣味だし。
結果、以下が決まります。
(1.1)同期回路が基本。
(1.2)同期リセットがデフォルト。非同期リセットは注意して使う。
この方がFPGAのツール側の自由度が上がります。FPGAのファミリによっては非同期リセットが使えないブロックを持つ物もありますし(XilinxのDSPブロックとか)。
非同期リセットを特別扱いにします。基本、クロックが無いところとか、クロックをまたぐところだけで使うようにします。
あと、
(1.3)リセットやクロックイネーブルは正論理で。
TTL全盛時代からロジックやってる人は頭の中が負論理な人もいます(自分もそう)が、FPGAによってはこれら制御信号が正論理のみというのもあります。負論理をサポートしたFPGAもありますが、サポートされてない方に合わせてます。
で、これからの流行りはたぶんこっち方向。
(2)合成は階層維持で。それで性能出すように心がける。
前のリセットの論理を気にするのも、次の出力のレジスタ化も、これが引っかかってたりします。
そして、性能を出しやすくするための決まり。
(3)モジュールの出力は必ずレジスタ(FF)化する。
(4)入力は可能ならレジスタ化する、のは実際難しいのでほどほどであきらめる。
モジュールの出力はレジスタ化する、これは極力守る。
ただし実機で使わないシミュレーションモデルは特にこの辺関知しないです。
(↑早速の例外事項)
もちろんこれらに縛られて物が作れないのでは本末転倒なので、必要があれば景気よく無視します。
(↑早速の例外事項その2)
趣味とは言え、一応決まりとかポリシーみたいのを並べてみます。自分にとっても再確認。この決まりは増えたり減ったり都合で書き換わったり例外措置を平気で認めたりします(笑)
(1)ターゲットはシミュレーションとFPGA。趣味だし。
結果、以下が決まります。
(1.1)同期回路が基本。
(1.2)同期リセットがデフォルト。非同期リセットは注意して使う。
この方がFPGAのツール側の自由度が上がります。FPGAのファミリによっては非同期リセットが使えないブロックを持つ物もありますし(XilinxのDSPブロックとか)。
非同期リセットを特別扱いにします。基本、クロックが無いところとか、クロックをまたぐところだけで使うようにします。
あと、
(1.3)リセットやクロックイネーブルは正論理で。
TTL全盛時代からロジックやってる人は頭の中が負論理な人もいます(自分もそう)が、FPGAによってはこれら制御信号が正論理のみというのもあります。負論理をサポートしたFPGAもありますが、サポートされてない方に合わせてます。
で、これからの流行りはたぶんこっち方向。
(2)合成は階層維持で。それで性能出すように心がける。
前のリセットの論理を気にするのも、次の出力のレジスタ化も、これが引っかかってたりします。
そして、性能を出しやすくするための決まり。
(3)モジュールの出力は必ずレジスタ(FF)化する。
(4)入力は可能ならレジスタ化する、のは実際難しいのでほどほどであきらめる。
モジュールの出力はレジスタ化する、これは極力守る。
ただし実機で使わないシミュレーションモデルは特にこの辺関知しないです。
(↑早速の例外事項)
もちろんこれらに縛られて物が作れないのでは本末転倒なので、必要があれば景気よく無視します。
(↑早速の例外事項その2)
2012-04-17 03:33
nice!(0)
コメント(0)
トラックバック(0)
コメント 0