什么是FPGA中的“半锁存器”?


10

在一篇有关防辐射FPGA的论文中,我遇到了这句话:

“与Virtex器件有关的另一个问题是半锁存器。在这些器件中有时将半锁存器用于内部常数,因为这比使用逻辑更有效。”

我从未听说过称为“半锁存器”的FPGA设备原语。据我了解,这听起来像是一种在后端工具中“提供”常量“ 0”或“ 1”的隐藏机制。 ,以及如何使用它们保存逻辑?

编辑:本文是我发现这是针对太空应用的防辐射FPGA和耐辐射FPGA的比较


7
您使用了哪个搜索引擎?
Ale..chenski

这是在设计阶段报告的一个故障, 由于加速应力,需要采取纠正措施slideserve.com/delilah/single-event-upsets-in-sram-fpgas,例如内部有一点错误,但它会锁存并可能使三态变为例如,输出
Tony Stewart Sunnyskyguy EE75,2018年

1
@ TonyStewart.EEsince'75错误用于内部常量吗?那没有道理。
duskwuff -inactive-

不能。半闭锁是必须避免的隐藏故障。
Tony Stewart Sunnyskyguy EE75,2018年

1
@ TonyStewart.EEsince'75在上下文中这仍然没有任何意义。您链接的演示文稿清楚地描述了FPGA中的“半锁存器”以及“配置位”和“ BRAM”等其他内容。这不是错。这可能会受到故障的影响
duskwuff -inactive

Answers:


14

半锁存器是通过弱上拉晶体管实现的具有正反馈的门:

原理图

模拟该电路 –使用CircuitLab创建的原理图

当输入被主动驱动时,它会覆盖弱上拉信号。当输入处于Z状态时,弱上拉可以无限期地保持输入的逻辑“ 1”(输出的逻辑“ 0”)。它不能可靠地保持相反状态,因此“半闩锁”。

为什么有人要半闩锁而不是全闩锁?对于某些信号,能够存储两个常量没有任何意义。例如,D触发器可以enable仅将输入锁存为高电平,而将reset输入仅锁存为低电平,否则将在合成期间将其简单地消除。这就是使用半闭锁的信号的类型:它们被锁存为默认值,或者由互连驱动。


因此,您应该在浮动输入之前先将输入驱动为高电平,否则最终将处于亚稳态,该状态最终但会意外地翻转?
hmakholm在莫妮卡(Monica)

@HenningMakholm是的,FPGA在每个编程周期之前驱动所有半闩锁。
德米特里·格里戈里耶夫

这听起来很复杂,无论哪一种电路都提供输入,只是为了节省单个晶体管。如果您能写些关于为什么在地球上值得的东西,我认为它将改善答案。
hmakholm在莫妮卡(Monica)

@HenningMakholm为什么您认为半闩锁只保存一个晶体管?AFAIK将它们用作常量,否则必须在LUT中进行编码。
德米特里·格里戈里耶夫

一个全功能的锁存器除了需要在输出高电平时将输入拉低之外,还需要一个弱NMOS。我不知道什么是LUT,如果它可以可靠地存储的唯一值是1,您能否在回答中说出“用作常量”的工作方式?这些东西如何使用
hmakholm在莫妮卡(Monica)

-2

看来它们提供了保持常数的逻辑。

由于它们是不可观察的,只能被初始化一次(因此只能在设备初始化之后重新配置),因此它们不会消耗完整的LUT,并且它们更简单,但却很有用。


1
我在搜寻google时也看到了该摘要文字。它没有按照OP的问题正确地解释它们,也没有将它们引向数据表示例。投票失败。
TonyM,

如果它是FPGA的不同结构,而不是完整的LUT,还有更多细节,请解释一下它如何不回答“什么是”问题以及“如何节省逻辑”的问题,这也得到了回答。 。
gommer
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.