2017-03-08 5 views
-1

次のコードてきたのは、私が言ってみましょう:シグナルがalways_ffのリセットロジック内でのみ定義されている場合、合成ではどうなりますか?

always_ff @(posedge clk, negedge rst) begin 
    if (~rst) begin 
     bad_singal <= '0; 
     good_signal <= '0; 
    end else begin 
     // do something 
     // bad_signal is not used here or anywhere in design. 
     if (some condition) 
     good_signal <= 1'b1; 
    end 
end 

何合成にbad_signalことが起こるのだろうか?合成ツールはデザインのどこにも使われていないので、フロップを最適化しますか?

+0

非常に妥当な質問のように聞こえます - なぜそれをdownvoting? – rascob

答えて

4

信号またはレジスタが何も駆動しない場合、有能な合成ツールは、どのように設定されているかにかかわらず、それをトリミングします。これが発生すると、多くの合成ツールが警告を報告します。

0

使用しないと最適化されます。どこかで使用されている場合、その値は常に0なので、地面に縛られます。

1

技術的にラッチを推測する必要があります。

+0

しかしこれは放棄するのが安全です。ではない? – newbie

+0

@newbieはい本当にそうです。このようなシナリオでは使用しない方がいいです。 –

関連する問題