爱游戏-BPO行业整合方案提供者
专业化、科技化、国际化;高标准、广覆盖、全流程
了解更多FPGA复位的8种技能 时候:2024-12-19 18:34:27 手机看文章
扫描二维码随时随地手机看文章
在 FPGA 设计中,复位起到的是同步旌旗灯号的感化,可以或许将所有的存储元件设置成已知状况。在数字电路设计中,设计人员一般把全局复位作为一个外部引脚来实现,在加电的时辰初始化设计。全局复位引脚与任何其它输入引脚近似,对 FPGA 来讲常常是异步的。设计人员可使用这个旌旗灯号在 FPGA 内部对本身的设计进行异步或同步复位。
不外在一些提醒和技能的帮忙下,设计人员可以找到加倍适合的复位布局。抱负的复位布局可以改良 FPGA 中器件的操纵率、时序和功耗程度。
领会触发器复位行动
在深切切磋复位手艺之前,有需要领会 FPGA Slice 内触发器行动。基在赛灵思 7 系列架构的 FPGA 器件的每一个Slice中含有 8 个寄放器,所有这些寄放器都是 D 类触发器。这些触发器同享一个通用的节制集。
触发器节制集的构成包罗时钟输入(CLK)、高电平有用芯片使能端 (CE) 和高电平有用 SR 端口。触发器中的 SR 端口既可用作同步置位/复位端口,也可用作异步预设/断根端口(见图1)。
揣度触发器的 RTL 代码也能揣度触发器预备利用的复位类型。当复位旌旗灯号呈现在 RTL 进程的敏感列表中时,该代码就会揣度异步复位(如图 2a所示)。随后综合东西将揣度出一个触发器,该触发器的 SR 端口被设置装备摆设为预设或断根端口(用 FDCE 或 FDPE 触发器原语来暗示)。在 SR 端口被断言后,触发器的输出会被当即强迫付与给触发器的 SRVAL 属性。
在同步复位的环境下,综合东西揣度出的触发器,其 SR 端口被设置装备摆设为置位或复位端口(用FDSE 或 FDRE 触发器原语来暗示)。SR 端口被断言后,触发器的输出将在时钟周期的下一个上升沿被强迫付与给触发器的 SRVAL 属性。
另外,还可以把触发器的输出初始化为 INIT 属性划定的值。在设置装备摆设进程中,当全局置位/复位 (GSR) 旌旗灯号被断言时,INIT 值就会被加载到触发器。
赛灵思 FPGA 中的触发器可以或许同时撑持异步的和同步的复位与置位节制。可是,底层触发器每次只能实现一个设置/重设/预设/断根。假如为 RTL 代码中的多个设置/重设/预设/断根状态进行编码,那末此中一种状态的实现将利用触发器的 SR端口,其余的状态则利用架构逻辑,因此会占用更多的 FPGA 资本。
假如此中一个状态是同步的,另外一个状态是异步的,异步状态的实现将利用 SR 端口,同步状态的实现则利用架构逻辑。一般来讲,应尽可能避免呈现一个以上的设置/重设/预设/断根状态的呈现。别的,对 Slice 中的每一个触发器组(4 个触发器为一组),只有一个属性可以肯定触发器的 SR 端口是同步的仍是异步的。
复位方式不管利用哪一种复位类型( 同步或是异步),一般都需要让复位与时钟同步。只要全局复位脉冲的延续时候足够长,器件上所有的触发器城市进入复位状况。可是,打消复位旌旗灯号的断言必需知足触发器的时序要求,才能包管触发器顺遂地从复位状况转换到正常状况。假如不克不及知足时序要求,触发器就会进入亚不变状况。
别的, 为了某些子系统的正常运行,好比状况机和计数器,所有的触发器必需在统一个时钟边缘退出复位。假如状况机的分歧部门在分歧的时钟周期退出复位状况,状况机可能会进入不法状况。这就要求打消复位断言必需与时钟同步。
对在给按时钟域中利用同步复位方式的设计来讲,利用尺度的亚稳态解决电路(两个背对背触发器)就足以把全局复位引脚同步到特定的时钟域。这个同步复位旌旗灯号可以操纵触发器上的同步SR 端口初始化该时钟域内的所有存储元件。因为待复位的同步器和触发器都处在统一时钟域,是以该时钟域的尺度PERIOD 束缚的包罗同步器与触发器之间的路径时序。器件中的每一个时钟域都需要利用零丁的同步器为该时钟域生成一个同步的全局复位。
此刻进入本色部门。下面是一些具体的提醒和技能,有助在您找到最好的设计复位策略。
技能 1:当驱动触发器的同步 SR端口时,每一个时钟域都需要全局复位的局部版本, 并与该时钟域同步。
有时辰不克不及包管设计的某个部门具有有用的时钟。这类环境凡是产生在如许的系统中,即系统利用的时钟为恢复时钟,或系统利用的时钟源在热拔插模块。在这类环境下,可能需要利用触发器上的异步 SR 端口,经由过程异步复位的方式对设计中的存储元件进行初始化。即使存储元件利用的是异步 SR 端口,打消复位沿断言依然必需与时钟同步。这项要求首要表现为触发器的复位恢复时序弧,这近似在要求将异步 SR的打消断言沿设置为与时钟的上升沿同步。假如不克不及知足这个时序弧的要求,就会致使触发器进入亚稳态,同步子系统也会进入异常状况。
图 3 所示的复位桥接电路供给了一种机制,可以对复位进行异步断言(故在无有用时钟的环境下也能够进行)和对复位进行同步打消断言。在这个电路中,假定两个触发器的 SR端口具有异步置位功能 (SRVAL=1)。
可使用该复位桥的输出来驱动给按时钟域的异步复位。这类颠末同步的复位可以或许利用触发器的异步 SR 端口对该时钟域中的所有存储元件进行初始化。器件中的每一个时钟域仍需要一个零丁的、颠末同步的、由零丁复位桥生成的全局复位。
技能 2:复位桥接电路实现了一种平安的机制,可以同步地对异步复位打消断言。利用复位桥接电路,每一个时钟域都需要全局复位的局部版本。
在图 3 所示的电路中,假定为复位桥和相干逻辑供给时钟旌旗灯号的时钟 (clk_a) 是不变且无误的。在 FPGA 中,时钟旌旗灯号可以直接来自片外的时钟源(抱负的环境下是经由过程有时钟功能的引脚取得),或可以用 MMCM 或锁相环(PLL) 在内部生成。任何用在生成时钟的MMCM 或 PLL 在复位以后都需要进行校准。是以,可能需要在全局复位路径中插入额外的逻辑来不变时钟。
技能3:在对 FPGA 的全局复位打消断言之前,确保由 MMCM 或PLL 生成的时钟是不变且被锁定的
图 4 是 FPGA 中典型的复位实现方式。
赛灵思寄放器的 SR 节制端口属在高电平有用。假如 RTL 代码描写的是低电平有用的设置/重设/预设/断根功能,那末综合东西在驱动寄放器的节制端口之前,必需起首揣度出一个反相器。因为必需利用查找表来完成反相操作,所以需要一个 LUT 输入。这个因利用低电平有用的节制旌旗灯号而增添的逻辑可能致使运行时候耽误,器件操纵率降落。并且它还会给时序和功耗造成晦气影响。
那末底线是甚么呢?在 HDL 代码或实例化组件中尽可能利用高电平有用的节制旌旗灯号。在没法节制设计中节制旌旗灯号的极性的时辰,应在代码的最顶层对旌旗灯号进行反相操作。用这类方式进行描写,揣度出的反相器可以并入 I/O 逻辑中,无需占用额外的 FPGA 逻辑或布线。
技能 4:高电平有用复位可以或许实现更高的器件操纵率,并可改良机能值得留意的是,FPGA 不是必然需要全局复位。全局复位和设计中的其它线路一样,要争用不异的布线资本。全局复位一般具有高扇出,由于它需要扩大到设计中的每个触发器。如许会耗损年夜量的布线资本,对器件的操纵率和时序机能造成晦气影响。由此,有需要摸索出不是成立在完全的全局复位根本之上的其它复位机制。
在设置装备摆设或重设置装备摆设赛灵思 FPGA时,每个单位(包罗触发器和 block RAM)都需要进行初始化,如图 5 所示。是以,FPGA 设置装备摆设具有与全局复位一样的结果,由于它能将 FPGA中的每个存储元件的初始状况都设置为已知状况。
可以从 RTL 代码中揣度触发器初始化值。图 6 的示例申明了若何对 RTL中寄放器的初始化进行编码。FPGA 东西可以或许综合这些旌旗灯号的初始化,虽然凡是会误觉得做不到。底层 VHDL 旌旗灯号或 Verilog 寄放器的初始化值会成为揣度出的触发器的 INIT 值,这个值会在设置装备摆设的进程中被加载到触发器中。
利用寄放器还可以在设置装备摆设进程中初始化 block RAM。跟着基在处置器的系统中嵌入式 RAM 数目的增多,BRAM初始化已成为一项有效的功能。这是由于预先界说的 RAM 可以或许简化仿真设置,而且无需利用指导挨次为嵌入式设计清空内存。
全局置位/复位 (GSR) 旌旗灯号是一种非凡的预布线复位旌旗灯号,可以或许在 FPGA设置装备摆设的进程中让设计连结初始状况。在设置装备摆设完成后,GSR 会被释放,所有的触发器和其它资本都加载的是 INIT 值。除在设置装备摆设历程中运行 GSR,用户设计还可以经由过程实例化 STARTUPE2 模块并毗连到 GSR 端口的方式来拜候 GSR 网。利用该端口,设计可以从头断言 GSR网,响应地 FPGA 中的所有存储元件将返回到它们的 INIT 属性所划定的状况。
打消断言 GSR 是异步的,需要利用多个时钟才能影响到设计中的所有触发器。对状况机、计数器或其它可以或许主动改变状况的逻辑,需要一个显示的复位,用在同步打消用户时钟断言。因次,利用 GSR 作为独一的复位机制可能致使系统不成靠。
是以,最好是综合采取多种方式来有用地治理启动。
技能 5:依托 GSR 供给的内置初始化功能,同时对设计中可以或许主动启动的部门进行显式复位,这类综正当可以或许带来更高的操纵率和机能。
在利用 GSR 设置全部设计的初始状况以后,对需要同步复位的逻辑单位(好比状况机)利用显式复位。可以使用尺度的亚稳态解决电路或复位桥来生成同步的显式复位。
利用得当的复位实现操纵率的最年夜化RTL 代码中利用的复位类型对东西将设计映照到 FPGA 底层资本的能力有重年夜影响。在编写 RTL 代码的时辰,设计人员应按照环境定制子设计的复位体例,以便东西可以或许把设计映照到这些资本。
应留意的是,SRL、LUTRAM 和BRAM 中内容的初始化,只能用 GSR方式来完成,不克不及利用显式复位。是以,在为以上这些资本编写代码时,应留意避免在编码中利用复位。例如,假如一段 RTL 代码描写的是一个 32 位移位寄放器,并且对移位寄放器的 32 个阶进行显式复位,那末综合东西将没法将这段 RTL 代码直接映照到 SRL32E上, 由于它没法知足该资本的编码复位要求。作为替换,该代码将环绕SRL32E 揣度出 32 个触发器,或揣度出一些其它电路,用以实现要求的复位功能。相对不利用复位的 RTL 代码,这两种解决方案城市占用更多资本。
技能 6:在映照到 SRL、LUTRAM或 BRAM 时,不要为 SRL 或RAM 阵列的复位进行编码在 7 系列器件中,不克不及把具有分歧节制旌旗灯号的触发器打包到统一个 Slice中。对低扇出复位,如许会给 Slice的整体操纵率造成晦气影响。在同步复位的环境下,综合东西可使用 LUT(如图 7 所示)来实现复位功能,而不是利用触发器的节制端口,故而可将复位看成节制端口移除。如许便可以把获得的 LUT/触发器对与其它不利用其 SR端口的触发器打包。如许做的成果是LUT 利用率固然会上升,但 Slice 的利用率可以获得改良。
技能 7:同步复位可以或许加强 FPGA操纵率。在设计中应利用同步复位,而不是异步复位
一些较年夜的专用资本(即 BRAM和 DSP48E1 单位)内含的寄放器可以被揣度为专用资本功能的构成部门。BRAM 包括可选的输出寄放器,可操纵该寄放器和附加的时延时钟来改良时钟频率。DSP48E1 有很多寄放器,既可以作为流水线来增添最年夜时钟速度,也可作为周期时延 (Z-1)。可是这些寄放器只具有同步置位/复位功能。
技能 8:利用同步复位可以答应综合东西利用 DSP48E1 Slice 或BRAM等专用资本内部的寄放器。如许可以或许改良设计中响应部门的器件整体利用率和机能,同时下降整体功耗。
假如 RTL 代码描写的是异步置位/复位,那末综合东西就没法利用这些内部寄放器。作为替换,它将利用 Slice触发器,由于它们可以或许实现要求的异步置位/复位功能。如许不但会致使器件操纵率下降,还会给机能和功耗造成晦气影响。
多种选择有多种复位方式可供 FPGA 选择,每种都有本身的优势和不足。这里提出的建议有助在设计人员为本身的设计选择最合适的复位布局。抱负的复位布局可以或许改良 FPGA 的器件利用率、时序和功耗。
欲知详情,请下载word文档 下载文档