On-Chip Clock Controller Design Description
有三种类型的片上控制器设计:
standard, parent, and child。可以根据设计要求选择它们。使用OCC时,必须考虑本节中讨论的设计元素。
The Standard OCC
标准OCC为快速捕获提供快速时钟,为换档和慢速捕获提供慢速时钟。扫描可编程移位寄存器允许ATPG根据需要抑制或脉冲时钟周期。标准OCC的一种用法是用于pattern重定目标的Intest模式。
标准OCC执行所有三个OCC功能:时钟选择、时钟斩波控制和时钟门控。图17-2显示了标准OCC实施。
标准OCC是推荐用于分层核心的OCC。
Design Placement
OCC的插入应确保OCC的快速时钟输入由功能时钟源(通常为PLL)驱动。理想情况下,OCC放置在时钟源(PLL)附近,但应放置在内核内部,以允许pattern重定流所需的本地时钟控制。OCC使用顶级慢速时钟进行换档和慢速捕获,并使用测试pattern信号确定是否向设计提供了测试或功能时钟。
没有理由在功能模式的OCC之后添加时钟多路复用器,因为fast_clock在测试模式信号被取消断言时传播。此外,在功能模式和测试模式下具有快速时钟的公共路径简化了时钟树合成和时序关闭。时钟控制设计用于在功能和测试模式下提供时钟。在功能模式下,快速时钟传递给设计。在测试模式下,快速时钟用于全速捕获,而顶级慢速时钟将用于移位和慢速捕获。提供给PLL的参考时钟是自由运行时钟,通常总是脉冲。建议不要在布局期间flatten时钟控制块,以便于定义时钟门控逻辑及其操作的自动化。
Standard OCC Schematic
芯片上时钟控制电路的示意图如图所示。
所示示意图表示在没有IJTAG接口的情况下生成的OCC。

Slow Clock Driving Sequential Elements
用于移位和慢速捕获的顶级慢速时钟不能直接控制任何顺序元素,因为慢速时钟在快速捕获模式期间充当捕获的触发器。
在快速捕获期间,工具不会模拟必要的慢速时钟脉冲,这可能导致模拟失配。
Scan Enable Synchronization
为了使顶级扫描使能信号与快速时钟(PLL输出)同步,使用双触发同步单元并由快速时钟计时。这很重要,因为扫描使能被用作将时钟选通到移位寄存器的触发信号。同步单元的输出产生扫描使能信号,该信号与快速时钟同步。
此外,在同步单元的输入侧使用触发器,并由慢时钟的后沿计时。由于scan enable通常扇出到整个电路,并且可能在快时钟之后到达,所以慢时钟上的触发器确保scan enable不会被快时钟同步,直到慢时钟被脉冲化,从而降低竞争条件的风险。为了确保正确的DRC分析和仿真,由同步逻辑驱动的时钟门控单元的输出被定义为捕获内部时钟中的脉冲。当使用TCD流生成pattern时,工具自动将内部时钟定义为捕获时钟中的脉冲。这确保了在load_unload期间正确模拟逻辑,并避免了不必要的DRC冲突。图17-4中所示的同步单元(sync_cell)有一个异步复位端口,如果该端口处于高活动状态,则由scan_en驱动。如果同步单元的复位端口处于低激活状态,则由~scan_en驱动。在RTL描述中,同步单元被描述为一个单独的模块,以便它可以被来自适当库的特定于技术的同步单元替换。
Slow Clock Pulses in Capture
考虑到慢时钟在被快时钟同步之前用于捕获scan enable,它不能直接驱动可能影响扫描操作的任何顺序元件。这是因为假设慢时钟和快时钟不同步,因此在用于快速捕获的external_capture过程中定义了捕获开始时慢时钟上的脉冲:
procedure external_capture ext_fast_cap_proc =
timeplate tmp1 ;
cycle =
force_pi ;
pulse slow_clock;