DSP的断言复位键是什么意思是啥意思

  随着数字化设计和SoC的日益复雜复位键是什么意思架构也变得非常复杂。在实施如此复杂的架构时设计人员往往会犯一些低级错误,这些错误可能会导致亚稳态、幹扰或其他系统功能故障本文讨论了一些复位键是什么意思设计的基本的结构性问题。在每个问题的最后都提出了一些解决方案。

  在一个连续设计中如果源寄存器的异步复位键是什么意思不同于目标寄存器的复位键是什么意思,并且在起点寄存器的复位键是什么意思断言过程中目标寄存器的数据输入发生异步变化那么该路径将被视为异步路径,尽管源寄存器和目标寄存器都位于同一个时钟域茬源寄存器的复位键是什么意思断言过程中可能导致目标寄存器出现亚稳态。这被称为复位键是什么意思域交叉其中启动和捕捉触发的複位键是什么意思是不同的。

  在这种情况下C寄存器和A寄存器的起点异步复位键是什么意思断言是不同的。在C寄存器复位键是什么意思断言过程中而A触发器没有复位键是什么意思如果A寄存器的输入端有一些有效数据交易,那么C寄存器的起点异步复位键是什么意思断言引起的异步变更可能导致目标A寄存器发生时序违规从而可能产生亚稳态。

  图1:复位键是什么意思域交叉问题

  在上面的时序图中当有一些有效数据交易通过C1进行时,rst_c_b获得断言导致C1发生异步改变,w.r.t clk从而使QC1进入亚稳态这可能导致设计发生功能故障。

  * 使用异步複位键是什么意思、不可复位键是什么意思触发器或D1触发器POR.

  * 在目的地(A)使用双触发器同步器以避免设计中发生亚稳态传播。然而设计人员应确保安装两个触发器引入的延迟不会影响预期功能。

  由于组合环路导致复位键是什么意思源干扰

  在SoC 中全局系统复位键是什么意思在设备中组合了软件或硬件生成的各种复位键是什么意思源。LVD复位键是什么意思、看门狗复位键是什么意思、调试复位键昰什么意思、软件复位键是什么意思、时钟丢失复位键是什么意思是导致全局系统复位键是什么意思断言的一些示例 然而,如果由于任哬复位键是什么意思源导致的全局复位键是什么意思断言是完全异步的且复位键是什么意思发生源逻辑被全局复位键是什么意思清零,那么设计中会产生组合环路这会在该复位键是什么意思源产生干扰。组合路径的传播延迟会根据不同的流程、电压或温度以及干扰范围洏不同如果设计中使用了组合信元用于复位键是什么意思断言和去断言,那么也会导致模拟中出现紊乱情况这被视为设计人员的非常低级的错误。

  图2:复位键是什么意思源干扰(基本问题)

  在上图中当复位键是什么意思源SW_Q断言时,会导致rst_b断言这是全局复位鍵是什么意思。现在如果全局复位键是什么意思本身被用于清除 “SW_Q” 复位键是什么意思断言,那么会在设计中在SW_Q输出和全局复位键是什麼意思时产生干扰此外,在模拟中这会导致紊乱情况,因为复位键是什么意思源断言试图通过该组合逻辑去断言

  然而,如果复位键是什么意思源(SW_Q)在复位键是什么意思状态机(触发器的SET/CLR输入)为全局复位键是什么意思断言被异步使用那么复位键是什么意思干擾可能能够复位键是什么意思整个系统(通过断言全局复位键是什么意思),因为全局系统复位键是什么意思去断言不仅仅与复位键是什麼意思源去断言相关当该复位键是什么意思源(有干扰)被同步使用或在触发器D输入使用的情况下可能依然有一个问题。干扰范围可能無法在至少一个周期内保持稳定因此这不会被目标触发器捕获。此外该复位键是什么意思源不能被用作任何电路的时钟(除了脉冲捕捉电路),因为它可能违反时钟宽度

  图3:复位键是什么意思源干扰(问题2)

  在上图中,复位键是什么意思源SW_Q将出现干扰虽然洳果复位键是什么意思源SW_Q的干扰在某个触发器被捕捉作为复位键是什么意思事件状态(在S)或用于其他目的,全局复位键是什么意思输出(rst_b)都没有干扰但它将导致时序违反/亚稳态,或根本不可能被捕获

  * 设计人员永远都不应犯下上述(图2)低级错误。

  * 如果复位鍵是什么意思实现如图3所示那么设计人员应保证复位键是什么意思源(在该示例中为SW_Q)总是在触发器的SET/CLR输入使用,而不在D或CLK使用

  * 解决这个问题的最好的方法是在复位键是什么意思状态机中使用之前注册该复位键是什么意思源。 虽然它将导致时钟依靠全局复位键是什麼意思断言但是无论如何,如果没有时钟该内部复位键是什么意思(SW_Q)都不会断言。请参见图4.

  此外用户也可以扩展SW_Q断言,然后洅在设计中使用它复位键是什么意思断言与时钟无关。 请参见图5.

  复位键是什么意思路径的组合逻辑

  如果组合逻辑输入大约在同┅时间发生变化那么使用复位键是什么意思路径中的组合逻辑可能产生干扰,这可能在设计中触发虚假复位键是什么意思下面是一个RTL玳码,它会在设计中意外复位键是什么意思

  在上面的示例中,slave_addrwrite_enable和wdata改变它们的值 w.r.t system clock,使用静态时序分析设计人员可以保证在目标触發器的设置时间窗口之前这些信号在一个时钟周期内的稳定性。然而在该示例中,这些信号直接用作触发器的异步清零输入

  因此,即使在特定的时间slave_addr[7:0]在逻辑上将其值从“”改为 “”但由于组合逻辑的传播延迟(净延迟和信元延迟)它可以用一个序列“ --> --> --> --> ”生成過渡。

  在这段时间里salve_addr为“”,如果wdata[7:0]始终为零且“write_enable” 已经被断言那么它将在module_rst_b创建一个无用脉冲,从而导致虚假复位键是什么意思

  图6:复位键是什么意思路径的组合逻辑

  首先注册组合输出,然后再将其用作复位键是什么意思源(如图7所示)

  图7:复位键是什么意思路径的组合逻辑解决方案

  3. 问题(II)

  在上面的示例中,复位键是什么意思路径的组合逻辑解决方案并不完善如果組合逻辑输入大约在同一时间发生变化,那么它可能在设计中触发虚假复位键是什么意思然而,如果组合逻辑的输入信号变化相互排斥那么它可能不会引起任何设计问题。例如测试模式和功能模式相互排斥。因此复位键是什么意思路径的测试复用是有效的设计实践

  然而,对于某些情况变化相互排斥的静态信号或信号可能会导致设计出现虚假复位键是什么意思触发。下面的示例描述了此类设计鈳能出现问题

  图8:复位键是什么意思路径的组合逻辑(问题 2)

  在上面的示例中,多路复用结构用于复位键是什么意思路径同時进行RTL编码。其中“mode” 是一个控制信号不频繁改变,而mode0_rst_b和mode_1_rst_b是两个复位键是什么意思事件然而在合成RTL时,在门控级它被分解成不同的复雜的组合(And-Or-Invert[AOI])信元虽然在逻辑上它相当于一个多路复用器,但由于不同的信元和净延迟每当信号“mode”从

  * 在合成过程中在复位鍵是什么意思路径保留多路复用结构,因为多路复用结构与其他组合逻辑相比易于产生干扰MUX Pragma可以在编码RTL时使用,这将有助于合成工具在複位键是什么意思路径中保留任何多路复用器

  设计中的同步复位键是什么意思问题

  在许多地方,设计人员在时钟方面喜欢同步複位键是什么意思设计原因可能是为了节省一些芯片面积(带有异步复位键是什么意思输入的触发器比任何不可复位键是什么意思触发器都大)或让系统与时钟完全同步,也可能有一些其他原因对于此类设计,当复位键是什么意思源被断言时需要向设计的触发器提供时鍾否则,这些触发器可能会在一段时间内都不进行初始化但当该模块被插入一个系统时,系统设计人员可能选择在复位键是什么意思階段禁用其时钟(如果在一开始不需要激活该模块)以节省整个系统的动态功耗。因此该模块甚至在复位键是什么意思去断言后一段時间内都不进行初始化。如果该模块的任何输出直接在系统中使用那么将捕获未初始化和未知的值(X),这可能会导致系统功能故障

  图9:同步复位键是什么意思问题时序图

  在复位键是什么意思阶段启用该模块的时钟且持续最短的时间,使该模块内的所有触发器嘟在复位键是什么意思过程中被初始化 当系统复位键是什么意思被去断言时,模块输出不会有任何未初始化的值

  图10:同步复位键昰什么意思问题已解决

  3. 问题(II)

  在时钟域交叉路径使用两个触发同步器是常见做法。然而有时设计人员对这些触发器使用同步複位键是什么意思。相同的RTL代码是

  在硬件中进行了RTL合成后上面的代码会在双触发器同步器的同步链中引入组合逻辑,这会带来风险并缩短sync2触发器输入进入亚稳态的时间。

  图11:同步复位键是什么意思问题2

  可用以下方式编写RTL代码以避免同步链的组合逻辑。

  在上面的代码中对sync2触发器不使用复位键是什么意思,因此在同步链中不会实现组合信元然而,需要注意sync2需要一个额外的周期才能复位键是什么意思这不应导致设计出现任何问题。

  冗余复位键是什么意思同步器引起的问题

  在使用多个异步时钟的设计中设计囚员需要确保在目标寄存器使用的时钟方面,异步复位键是什么意思的同步去断言否则可能导致目标触发器发生时序违反,从而产生亚穩态复位键是什么意思同步器被用来复位键是什么意思去断言,与目标时钟域同步然而,只有在系统复位键是什么意思去断言过程中囿目标时钟时才会发生复位键是什么意思去断言时序违反如果在复位键是什么意思去断言时没有时钟,那么便不会有任何时序违反因此,在设计多时钟域模块时设计人员可以让编译时间选项绕过该模块中的那些复位键是什么意思同步器,并让系统集成商根据对该模块嘚时钟可用性决定是否需要使用复位键是什么意思同步器

  此外,如果系统时钟和异步时钟比非常高冗余同步器甚至会造成设计功能性问题。下面描述了这个问题

  图12:冗余同步器的问题

  在上面的设计中,去断言与sys clk同步的系统复位键是什么意思被馈送到(mod_clk域)的复位键是什么意思同步器然后在mod_clk域逻辑中使用该复位键是什么意思。让我们假定sys clk : mod_clk的时钟频率比大于6:1.默认不启用mod_clk以节省动态功率。当用户想要启用mod_clk域逻辑的功能时便启用该时钟。在启用了该时钟后有两个mod_clk周期的延迟,其中由于复位键是什么意思同步器导致整個mod_clk域逻辑都处于复位键是什么意思状态。在该阶段如果一些数据交易从sys clk域开始,将在mod_clk域丢失

  虽然这不是大问题,但有时会在客户┅端造成混淆因为该延迟对客户不可见。 因此消除混淆的更好的方式是:

  * 如果在全局复位键是什么意思去断言过程中没有时钟则茬设计中绕过/删除冗余复位键是什么意思同步器。 这当然会节省一定的门控数

  * 如果动态功耗不是问题,用户可以在mod_clk域逻辑开始运作の前很长时间在启动代码选择启用mod_clk. 因此复位键是什么意思去断言将有足够的时间传播。

  * 这也可以在软件中处理在任何有效操作之湔启用了mod_clk后,设置两三个mod_clk周期的延迟

  由于罕见的时钟路径导致复位键是什么意思去断言时序问题

  设计的复位键是什么意思架构根据系统而不同。在一些安全关键设备中整个复位键是什么意思状态机在安全时钟上工作,安全时钟默认启用 该时钟也被用作设备的默认系统时钟。

  图13:罕见时钟路径的问题

  在上图中复位键是什么意思状态机(R触发器)在default_clk上工作。此外在复位键是什么意思詓断言过程中,default_clk是sys clk的源因此,在逻辑上这两个时钟(clk1和clk2)在复位键是什么意思去断言过程中同步。但是由于clk1和clk2之间存在巨大的罕见蕗径,因此很难平衡这两个时钟并视其为同步 因此,满足A触发器的复位键是什么意思去断言变得具有挑战性

  异步对待clk1和clk2,并在A触發器中使用复位键是什么意思之前放置复位键是什么意思同步器现在需要从S2--》A满足复位键是什么意思去断言时序(见图14)。这不应是个問题

  这部分主要专注于复位键是什么意思设计中的故障以及克服这些问题的可能的解决方案。然而上述解决方案并非唯一的解决方案,也不普遍适用于所有设计这些是一些通用的解决方案和建议的指导方针,在特殊情况下可能需要进行修改在这些情况下,此类問题不仅导致功能故障还会增加一些额外的调试时间和工作,从而增加执行周期时间因此,设计人员需要在设计的早期阶段考虑此类問题

我要回帖

更多关于 复位键是什么意思 的文章

 

随机推荐