2009/2/4
VHDLをシミュレーションすると、髭がいっぱい
生えちゃうんですよね。
この図はちょっと極端な例かもしれませんが、
グレーコードとか意識して出力できるような
信号じゃないので、どうしてもクロックとクロック
の間で髭が生えてしまう…
このての話はどう捉えて、どう対処していけば
いいのやら…
CPLDは比較的遅延が少ないからアレなんだけど、
FPGAは遅延がマチマチだろうから、そういう
場合にどう捉えればいいんでしょうねぇ?
特に、合成を行うたびに遅延の現れ方も変わってくる
だろうし…

0
コメントは新しいものから表示されます。
コメント本文中とURL欄にURLを記入すると、自動的にリンクされます。
投稿者:nekosan
FFはFlipFlopですね。
投稿者:nekosan
なるほど。早速シミュレーションしてみました。
シミュレーションの結果はバッチリ「髭なし」になりました。
CMOS技術が確立してからというのは、それ以前にくらべて何か具合の悪い影響が大きくなったというような理由が生じたのでしょうかね?
ちなみに、レジスタの消費数は増えましたが、内部の回路は全然変わらなかったみたいです。
こんなかんじにしました。
-- calculate V-out
process (C_signal,Y_signal)
begin
Vout_tmp <= Y_signal + C_signal;
end process;
-- synchronizer
process (clock_in)
begin
if (clock_in'event and clock_in = '1') then
V_out <= Vout_tmp;
end if;
end process;
一旦FFに入れておいて、クロックのエッヂで出力する、と。
投稿者:A.C.
クロック同期設計するんですよ。
具体的には、箱の出口はすべてFFでラッチして出力します。
すべての出力が1ck遅くなるわけですな。
箱外との遅延を管理しなきゃならない場合は、ラッチ前の信号を1ck早いデコード値でデコードします。
CMOS技術が確立したころから、ハザード出しは禁止で、同期設計しろ!命令!ってメーカーが多かったと思います。
回路規模的にも、FPGAのLEは、全部のLEにFFがついてるので、全く変わらないはずです(FPGAのみ。LSIだと事情が変わります
--
業務区分上の問題でA.C.