主要内容

全局复位信号同步到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;

相关的话题

Baidu
map