ASYNC_REG属性可以用在RTL代码或XDC约束两个阶段。下面是一个RTL中使用的例子: 在定义寄存器 sync_0和sync_1的语句前面加上 (* ASYNC_REG = "TRUE" *) 就可以了 ,“TURE” 表示应用了 ASYNC_REG 属性,ASYNC_REG 的默认状态是 “FALSE”。 应用了该属性后,综合工具就会把两个寄存器放置在一起了: 下图是...
ASYNC_REG用于单bit信号采用双(或多)触发器实现异步跨时钟域的场合,此时所有用于同步的触发器都要标记ASYNC_REG。标记方式为: (* ASYNC_REG = "TRUE" *) reg sync_0, sync_1; 目的是告诉综合工具布线时将这2个寄存器放在一起(即同一个SLICE中),从而减少线延迟对时序的影响。 为避免忘记标记ASYNC_REG,打开...
1、ASYNC_REG ASYNC_REG属性可将reg类型配置为可接受异步数据的寄存器或带同步链的同步寄存器。该属性默认为FALSE,可以设置为TRUE。该属性既可以在RTL中设置,也可以在XDC文件中设置。 (* ASYNC_REG = "TRUE" *) reg [2:0] sync_regs_r; 2、CASCADE_HEIGHT (CASCADE_HEIGHT)只适用于UltraScale架构的FPGA,用...
1.ASYNC_REG 该属性将reg类型配置为可以在D输入管脚接受异步数据的寄存器,或者带同步链的同步寄存器。该属性默认为FALSE,可设置为TRUE。可在RTL或XDC中设置。示例如下: (* ASYNC_REG = “TRUE”) reg [2:0] sync_regs; //Verilog示例 2.BLACK_BOX 当设置了该属性时,Vivado综合工具会为该模块创建一个黑盒子...
1.ASYNC_REG 该属性将reg类型配置为可以在D输入管脚接受异步数据的寄存器,或者带同步链的同步寄存器。该属性默认为FALSE,可设置为TRUE。可在RTL或XDC中设置。示例如下: (* ASYNC_REG = “TRUE”) reg [2:0] sync_regs; //Verilog示例 2.BLACK_BOX ...
set_property ASYNC_REG TRUE [get_cells [list sync0_reg sync1_reg]] 在XDC中,对于此类设计的CDC路径,可以采用set_clock_groups来约束。 set_clock_groups -asynchronous -group [get_clocks -include_generated_clocks clk_oxo ] \ -group [get_clocks -include_generated_clocks clk_core ] ...
set_property ASYNC_REG TRUE [get_cells [list sync0_reg sync1_reg]] 在XDC中,对于此类设计的CDC路径,可以采用set_clock_groups来约束。 set_clock_groups -asynchronous -group [get_clocks -include_generated_clocks clk_oxo ] \ -group [get_clocks -include_generated_clocks clk_core ] ...
ASYNC_REG属性的作用对象为寄存器,寄存器添加该属性后,即表明寄存器的数据输入口D接收的是来自异步时钟触发器的数据或是该寄存器在一个同步链中属于同步寄存器。ASYNC_REG更多的是使用在异步跨时钟域中。 在Vivado综合的过程中,对于添加了ASYNC_REG属性的寄存器,会将该属性放置到网表的前面,这也能保证网表不会被优化...
(*ASYNC_REG = “TRUE” *) reg [2:0] sync_regs; 2.CLOCK_BUFFER_TYPE 在输入时钟上应用CLOCK_BUFFER_TYPE以描述要使用的时钟缓冲器类型。 默认情况下,Vivado综合使用BUFG作为时钟缓冲器。支持的值是“BUFG”,“BUFH”,“BUFIO”,“BUFMR”,“BUFR”或“无”。 CLOCK_BUFFER_TYPE属性可以放在任何顶级时钟...
set_property ASYNC_REG TRUE [get_cells [list sync0_reg sync1_reg]] 在XDC中,对于此类设计的CDC路径,可以采用set_clock_groups来约束。 set_clock_groups -asynchronous -group [get_clocks -include_generated_clocks clk_oxo ] \ -group [get_clocks -include_generated_clocks clk_core ] ...