これが私の最善の推測ですが、生成されたビヘイビアー Verilog が合成されたときに単純な透過ラッチになるようには見えません。
// DXP Latch
val dxp = config(2) & config(0)
val latch = Reg( lut.io.out )
val out = Mux( dxp, latch, lut.io.out )
これに関するあなたのアイデアに感謝します。
これが私の最善の推測ですが、生成されたビヘイビアー Verilog が合成されたときに単純な透過ラッチになるようには見えません。
// DXP Latch
val dxp = config(2) & config(0)
val latch = Reg( lut.io.out )
val out = Mux( dxp, latch, lut.io.out )
これに関するあなたのアイデアに感謝します。
チゼルはラッチをサポートしていません。Reg()
エッジ トリガー状態要素のみを生成します。
本当にラッチが必要な場合は、Chisel のバックエンドを変更して新しいLatch()
構造を理解し、適切な Verilog を生成する必要があります。ただし、これは困難の長いうさぎの穴に陥ることになります。まず、同期のエッジ トリガー タイミング モデル (C++ エミュレーターなどを動作させる) を破棄することになります。
私たちの経験では、ラッチの特性の一部を必要とする重要なアプリケーションは、合成ツールによって自動的に処理されます (時間借用など)。