2

これが私の最善の推測ですが、生成されたビヘイビアー Verilog が合成されたときに単純な透過ラッチになるようには見えません。

// DXP Latch
val dxp = config(2) & config(0)
val latch = Reg( lut.io.out )
val out = Mux( dxp, latch, lut.io.out ) 

これに関するあなたのアイデアに感謝します。

4

1 に答える 1

1

チゼルはラッチをサポートしていません。Reg()エッジ トリガー状態要素のみを生成します。

本当にラッチが必要な場合は、Chisel のバックエンドを変更して新しいLatch()構造を理解し、適切な Verilog を生成する必要があります。ただし、これは困難の長いうさぎの穴に陥ることになります。まず、同期のエッジ トリガー タイミング モデル (C++ エミュレーターなどを動作させる) を破棄することになります。

私たちの経験では、ラッチの特性の一部を必要とする重要なアプリケーションは、合成ツールによって自動的に処理されます (時間借用など)。

于 2015-10-20T20:29:18.687 に答える