Xilinx IP解析之Processor System Reset v5.0

一. IP概述

可参考Xilinx官网Processor System Reset Module概述

Xilinx IP解析之Processor System Reset-1

以下翻译自官网此IP的概述。

产品描述:

Xilinx处理器系统复位模块允许客户通过设置某些参数来启用/禁用功能,从而根据自己的应用来定制设计。

主要功能和优势:

  • 使异步外部复位(External Reset)信号与时钟同步
  • 使异步辅助复位(Auxillary Reset)信号与时钟同步
  • 可选外部/辅助复位信号是低电平有效还是高电平有效
  • 可选复位信号需持续的最小脉宽
  • 可选负载均衡
  • DCM锁定输入
  • 生成上电复位信号

二. IP产品手册

可参考Xilinx官网Processor System Reset Module文档

Xilinx IP解析之Processor System Reset-2

下载PG164 - Processor System Reset Module v5.0 Product Guide (v5.0)

三. IP框图与信号端口

IP模块框图:

Xilinx IP解析之Processor System Reset-3

名称方向位宽有效电平说明
slowest_sync_clkI1-最慢同步时钟
ext_reset_inI1可配置,
默认低电平有效
外部复位
aux_reset_inI1可配置,
默认低电平有效
辅助复位
mb_debug_sys_rstI1总线调试复位
dcm_lockedI1dcm的locked信号
mb_resetO1总线复位
bus_struct_resetO1 ~ 8,
默认1
总线高电平复位
peripheral_resetO1 ~ 16,
默认1
外设高电平复位
interconnect_aresetnO1 ~ 8,
默认1
互联低电平复位
peripheral_aresetnO1 ~ 16,
默认1
外设低电平复位

四. IP配置

Xilinx IP解析之Processor System Reset-4

部分配置选项解释:

外部/辅助复位有效宽度:配置外部复位信号有效电平需要持续几个时钟周期才被视为有效信号,才会有复位输出。

五. IP仿真

5.1 仿真框图

Xilinx IP解析之Processor System Reset-5

将proc_sys_reset IP核的端口信号引出,在testbench中进行赋值。

5.2 testbench

/*
 * @Author       : Xu Dakang
 * @Email        : XudaKang_up@qq.com
 * @Date         : 2021-05-11 22:12:28
 * @LastEditors  : Xu Dakang
 * @LastEditTime : 2021-12-16 20:14:42
 * @Filename     : procSysReset_tb.sv
 * @Description  : 测试proc_sys_reset IP核的特性
*/

module procSysReset_tb();

timeunit 1ns;
timeprecision 10ps;

logic clk;
logic ext_reset_in;
logic aux_reset_in;
logic mb_debug_sys_rst;
logic dcm_locked;

logic mb_reset;
logic [0:0]bus_struct_reset;
logic [0:0]peripheral_reset;
logic [0:0]interconnect_aresetn;
logic [0:0]peripheral_aresetn;


PrcoSysReset_system_wrapper  PrcoSysReset_system_wrapper_inst(.*);


// 生成时钟
localparam CLKT = 4;
initial begin
  clk = 0;
  forever #(CLKT / 2) clk = ~clk;
end


int cnt;
always_ff @(posedge clk) begin
  cnt <= cnt + 1;
end


localparam EXT_RESET_WIDTH = 4;
localparam N = 100;

initial begin
  ext_reset_in = 1;
  aux_reset_in = 1;
  mb_debug_sys_rst = 0;
  dcm_locked = 1;

  #(CLKT * N)
  ext_reset_in = 0;
  aux_reset_in = 1;
  mb_debug_sys_rst = 0;

  #(CLKT * EXT_RESET_WIDTH) ext_reset_in = 1;
  #(CLKT * EXT_RESET_WIDTH) ext_reset_in = 0;
  #(CLKT * EXT_RESET_WIDTH) ext_reset_in = 1;

  #(CLKT * 100) $stop;
end


endmodule

5.3 仿真波形

仿真条件1:在testbench中设置dcm_locked=0,观察到此IP核输出的复位值会一直有效,并且不会响应输入。

image-20211216195957118

仿真条件2:N = 100,再使得ext_reset_in = 0(持续4个周期),dcm_locked = 1。波形如下图所示。

Xilinx IP解析之Processor System Reset-6

在初始阶段,输入为不定态X(或是非有效电平,效果一样),此时所有复位输出均有效。

46个时钟周期后,bus_struct_rst和interconnect_areset最先失效

再过16个时钟周期,peripheral_reset与peripheral_areset接着失效

再过16个时钟周期,mb_reset最后失效

然后,等到ext_reset_in = 0(持续4个周期),此时IP应检测到外部输入复位有效

经过6个时钟周期后,各复位输出开始有效。

32个时钟周期后,bus_struct_rst和interconnect_areset最先失效。

再过16个时钟周期,peripheral_reset与peripheral_areset接着失效。

再过16个时钟周期,mb_reset最后失效。

可见,5个输出信号的相对关系是确定的,如下:

bus_struct_rst与interconnect_areset持续32个周期有效后同时最先失效 -> 过16周期,peripheral_reset与peripheral_areset失效 -> 再过16周期,mb_reset最后失效

这正如IP产品手册第9页(下图)所说明的。

Xilinx IP解析之Processor System Reset-7

仿真条件3:N = 36,再使得ext_reset_in = 0(持续4个周期),dcm_locked = 1。波形如下图所示。

Xilinx IP解析之Processor System Reset-8

从仿真条件2,我们知道初始此IP有46个周期输出有效的复位信号,但这46个周期不是固定的,经过多次仿真发现,前4个时钟周期,此IP不检测复位信号,到第5个时钟周期,IP开始检测复位信号。所以在这里,初始经过N=36个周期后,外部复位开始低电平有效,此时初始复位输出将持续(46 + N - 4 = 78)个时钟周期。当N = 5 时,初始复位输出将持续(46 + 5 - 1 = 47)个时钟周期,以此类推。

仿真条件4:N = 37,再使得ext_reset_in = 0(持续4个周期),dcm_locked = 1。波形如下图所示。

Xilinx IP解析之Processor System Reset-9

可见,N = 37 时,bus和interconnect这个两个输出会出现(37 - 36 = 1)个时钟周期的无效段,另外三个输出则没有。以此类推 N = 100,bus和interconnect输出无效段会持续 100 - 36 = 64个时钟周期的无效段,此特性在仿真条件1中也可以得到印证。

仿真条件5:N = 37 + 16 + 16,再使得ext_reset_in = 0(持续4个周期),dcm_locked = 1。波形如下图所示。

Xilinx IP解析之Processor System Reset-10

此条件下,5个输出均出现无效段,其中,bus_struct_reset无效段持续一个时钟周期。

总结一下:此IP在初始阶段默认输出复位信号,信号宽度默认为46个时钟周期,如果在N(范围4~36)个时钟周期内,输入的复位有效,则输出复位信号宽度会延长N-4个时钟周期。超过36个时钟周期还没有有效的复位输入,输出复位信号会部分失效,超过36+16+16 = 68个周期没有有效复位输入,输出复位信号会全部失效。此时初始阶段结束,IP进入等待输入复位信号有效的阶段

此后,IP检测到外部输入复位有效,经过6个时钟周期后,各复位输出开始有效。

32+X(这一段不确定,与输入复位信号有效宽度和有效次数有关)个时钟周期后,bus_struct_rst和interconnect_areset最先失效。

再过16个时钟周期,peripheral_reset与peripheral_areset接着失效。

再过16个时钟周期,mb_reset最后失效。

手册中,展示了ext_reset_in作为输入时,各输出的时序图,如下图所示。

Xilinx IP解析之Processor System Reset-11

另外,特别注意dcm_locked信号,此信号为低时表示时钟还未稳定,此时reset IP的复位输出全部有效,只有当dcm_locked信号为高时,reset IP的输出才受外部复位输入与辅助复位输入的控制。

5.4 仿真工程分享

ProcSysResetV5.0 Xilinx IP解析 Vivado 2021.2工程.7z

链接:https://pan.baidu.com/s/1Z-bNBqHFauf7kPDd1ysS3A
提取码:ttfy

六. IP性能

对于7系列FPGA,性能最低的A7此IP核频率也可到508MHz。K7和V7可到704MHz

Xilinx IP解析之Processor System Reset-12

七. IP使用示例

通常在Block Design中使用此复位IP,输出作为自定义模块,AXI总线等的复位信号。外部输入可自行给定,特别的对于ZYNQ,外部输入通常为PS侧提供的FCLK_RESET_N信号。如下图所示。

Xilinx IP解析之Processor System Reset-13

八. 总结

此IP使用简单,用作复位时,在不提供外部复位输入时,还是可以提供初始复位输出信号。使用时需要注意的是ext_reset_in和aux_reset_in的有效宽度必须大于设定的宽度才能被识别为有效复位输入,另外,各输出之间有固定的时序关系,此时序关系的目的是让不同功能模块开始工作的时间不同,使用时需要合理使用各输出。

评论 9 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:精致技术 设计师:CSDN官方博客 返回首页

打赏作者

徐晓康的博客

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值