全局复位信号同步到IP核时钟域
HDL DUT IP核和HDL IP核的AXI4从接口包装器中的地址解码器逻辑由全局复位信号驱动。如果生成的HDL IP核没有任何AXI4从接口,HDL Coder™不会生成AXI4从接口包装器。全局复位信号与IP核复位信号相同,并驱动DUT的HDL IP核。要了解如何在没有AXI4从接口的情况下生成IP核,请参见从Simulink模型中生成独立于板的HDL IP核.
当您在HDL IP核中生成AXI4从接口时,全局复位信号由三个复位信号驱动:IP核外部复位、AXI互连的复位信号和ARM处理器核的软复位。在这种情况下,全局复位信号驱动DUT的HDL IP核和AXI4从包装器中的地址解码器逻辑。
的IPCore_Clk
而且AXILite_ACLK
必须与同一个时钟源连接。的IPCore_RESETN
而且AXILite_ARESETN
必须连接到同一个复位源。
这些复位信号可以是同步的,也可以是异步的。使用异步复位信号可能会有问题,当复位在时钟的锁存窗口内解除时,会导致触发器中潜在的亚稳态问题。为避免在组合复位信号时产生可能的亚稳态值,HDL Coder自动插入复位同步逻辑复位同步
块。复位同步逻辑将全局复位信号同步到IP核时钟域。这个逻辑是插入当您打开HDL工作流顾问和运行生成RTL代码和IP核委员会的任务IP核生成
工作流。
重置同步逻辑包含两个背靠背触发器,它们与IPCore_CLK
信号。触发器确保复位信号的去断言发生在两个时钟周期之后IPCore_CLK
信号变高。这种同步去断言避免了产生具有可能的亚稳态值的全局复位信号。
的逻辑工作方式不同,取决于您是否指定重置类型作为同步
或异步
在模型上。如果你的重置类型是异步
,同步逻辑异步断言复位信号并同步撤销断言复位信号。例如,这段代码演示了生成的Verilog®当您生成带有异步复位的IP核时,重置同步逻辑的代码。
……reg_reset_pipe_process: PROCESS (clk, reset_in) BEGIN IF reset_in = '1' THEN reset_pipe <= '1';ELSIF clk' event AND clk = '1' THEN IF enb = '1' THEN reset_pipe <= const_0;如果;如果;END PROCESS reg_reset_pipe_process;reg_reset_delay_process: PROCESS (clk, reset_in) BEGIN IF reset_in = '1' THEN reset_out <= '1';ELSIF clk' event AND clk = '1' THEN IF enb = '1' THEN reset_out <= reset_pipe;如果;如果; END PROCESS reg_reset_delay_process; END rtl;
如果你的重置类型是同步
,同步逻辑同步断言和撤销断言复位信号。例如,这段代码演示了在生成具有同步复位的IP核时为复位同步逻辑生成的Verilog代码。
……reg_reset_pipe_process: PROCESS (clk) BEGIN IF clk' event AND clk = '1' THEN IF reset_in = '1' THEN reset_pipe <= '1';ELSIF enb = '1' THEN reset_pipe <= const_0;如果;如果;END PROCESS reg_reset_pipe_process;reg_reset_delay_process: PROCESS (clk) BEGIN IF clk' event AND clk = '1' THEN IF reset_in = '1' THEN reset_out <= '1';ELSIF enb = '1' THEN reset_out <= reset_pipe;如果;如果; END PROCESS reg_reset_delay_process; END rtl;