如何在Chisel中制作透明闩锁?

时间:2015-10-17 01:30:47

标签: chisel

这是我最好的猜测,但看起来生成的行为Verilog在合成时会产生一个简单透明的锁存器:

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

感谢您对此的看法。

1 个答案:

答案 0 :(得分:1)

Chisel不支持锁存器。 Reg()只会生成边缘触发的状态元素。

如果您真的想要锁存器,则必须修改Chisel的后端以了解新的Latch()构造并生成相应的Verilog。但是,这会让你陷入长长的困难之中,第一个就是你可能会抛弃同步的,边缘触发的时序模型(允许C ++模拟器之类的东西工作)。

根据我们的经验,任何需要锁存器属性的关键应用程序都将由综合工具自动处理(如借用时间)。