Xilinx IP解析之Processor System Reset v5.0
一. IP概述
可參考Xilinx官網(wǎng)Processor System Reset Module概述,
以下翻譯自官網(wǎng)此IP的概述。
產(chǎn)品描述:
Xilinx處理器系統(tǒng)復(fù)位模塊允許客戶通過(guò)設(shè)置某些參數(shù)來(lái)啟用/禁用功能,從而根據(jù)自己的應(yīng)用來(lái)定制設(shè)計(jì)。
主要功能和優(yōu)勢(shì):
- 使異步外部復(fù)位(External Reset)信號(hào)與時(shí)鐘同步
- 使異步輔助復(fù)位(Auxillary Reset)信號(hào)與時(shí)鐘同步
- 可選外部/輔助復(fù)位信號(hào)是低電平有效還是高電平有效
- 可選復(fù)位信號(hào)需持續(xù)的最小脈寬
- 可選負(fù)載均衡
- DCM鎖定輸入
- 生成上電復(fù)位信號(hào)
二. IP產(chǎn)品手冊(cè)
可參考Xilinx官網(wǎng)Processor System Reset Module文檔
下載PG164 - Processor System Reset Module v5.0 Product Guide (v5.0)。
三. IP框圖與信號(hào)端口
IP模塊框圖:
| slowest_sync_clk | I | 1 | - | 最慢同步時(shí)鐘 |
| ext_reset_in | I | 1 | 可配置, 默認(rèn)低電平有效 | 外部復(fù)位 |
| aux_reset_in | I | 1 | 可配置, 默認(rèn)低電平有效 | 輔助復(fù)位 |
| mb_debug_sys_rst | I | 1 | 高 | 總線調(diào)試復(fù)位 |
| dcm_locked | I | 1 | 高 | dcm的locked信號(hào) |
| mb_reset | O | 1 | 高 | 總線復(fù)位 |
| bus_struct_reset | O | 1 ~ 8, 默認(rèn)1 | 高 | 總線高電平復(fù)位 |
| peripheral_reset | O | 1 ~ 16, 默認(rèn)1 | 高 | 外設(shè)高電平復(fù)位 |
| interconnect_aresetn | O | 1 ~ 8, 默認(rèn)1 | 低 | 互聯(lián)低電平復(fù)位 |
| peripheral_aresetn | O | 1 ~ 16, 默認(rèn)1 | 低 | 外設(shè)低電平復(fù)位 |
四. IP配置
部分配置選項(xiàng)解釋:
外部/輔助復(fù)位有效寬度:配置外部復(fù)位信號(hào)有效電平需要持續(xù)幾個(gè)時(shí)鐘周期才被視為有效信號(hào),才會(huì)有復(fù)位輸出。
五. IP仿真
5.1 仿真框圖
將proc_sys_reset IP核的端口信號(hào)引出,在testbench中進(jìn)行賦值。
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 : 測(cè)試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(.*);// 生成時(shí)鐘 localparam CLKT = 4; initial beginclk = 0;forever #(CLKT / 2) clk = ~clk; endint cnt; always_ff @(posedge clk) begincnt <= cnt + 1; endlocalparam EXT_RESET_WIDTH = 4; localparam N = 100;initial beginext_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; endendmodule5.3 仿真波形
仿真條件1:在testbench中設(shè)置dcm_locked=0,觀察到此IP核輸出的復(fù)位值會(huì)一直有效,并且不會(huì)響應(yīng)輸入。
仿真條件2:N = 100,再使得ext_reset_in = 0(持續(xù)4個(gè)周期),dcm_locked = 1。波形如下圖所示。
在初始階段,輸入為不定態(tài)X(或是非有效電平,效果一樣),此時(shí)所有復(fù)位輸出均有效。
46個(gè)時(shí)鐘周期后,bus_struct_rst和interconnect_areset最先失效。
再過(guò)16個(gè)時(shí)鐘周期,peripheral_reset與peripheral_areset接著失效。
再過(guò)16個(gè)時(shí)鐘周期,mb_reset最后失效。
然后,等到ext_reset_in = 0(持續(xù)4個(gè)周期),此時(shí)IP應(yīng)檢測(cè)到外部輸入復(fù)位有效,
經(jīng)過(guò)6個(gè)時(shí)鐘周期后,各復(fù)位輸出開(kāi)始有效。
32個(gè)時(shí)鐘周期后,bus_struct_rst和interconnect_areset最先失效。
再過(guò)16個(gè)時(shí)鐘周期,peripheral_reset與peripheral_areset接著失效。
再過(guò)16個(gè)時(shí)鐘周期,mb_reset最后失效。
可見(jiàn),5個(gè)輸出信號(hào)的相對(duì)關(guān)系是確定的,如下:
bus_struct_rst與interconnect_areset持續(xù)32個(gè)周期有效后同時(shí)最先失效 -> 過(guò)16周期,peripheral_reset與peripheral_areset失效 -> 再過(guò)16周期,mb_reset最后失效
這正如IP產(chǎn)品手冊(cè)第9頁(yè)(下圖)所說(shuō)明的。
仿真條件3:N = 36,再使得ext_reset_in = 0(持續(xù)4個(gè)周期),dcm_locked = 1。波形如下圖所示。
從仿真條件2,我們知道初始此IP有46個(gè)周期輸出有效的復(fù)位信號(hào),但這46個(gè)周期不是固定的,經(jīng)過(guò)多次仿真發(fā)現(xiàn),前4個(gè)時(shí)鐘周期,此IP不檢測(cè)復(fù)位信號(hào),到第5個(gè)時(shí)鐘周期,IP開(kāi)始檢測(cè)復(fù)位信號(hào)。所以在這里,初始經(jīng)過(guò)N=36個(gè)周期后,外部復(fù)位開(kāi)始低電平有效,此時(shí)初始復(fù)位輸出將持續(xù)(46 + N - 4 = 78)個(gè)時(shí)鐘周期。當(dāng)N = 5 時(shí),初始復(fù)位輸出將持續(xù)(46 + 5 - 1 = 47)個(gè)時(shí)鐘周期,以此類推。
仿真條件4:N = 37,再使得ext_reset_in = 0(持續(xù)4個(gè)周期),dcm_locked = 1。波形如下圖所示。
可見(jiàn),N = 37 時(shí),bus和interconnect這個(gè)兩個(gè)輸出會(huì)出現(xiàn)(37 - 36 = 1)個(gè)時(shí)鐘周期的無(wú)效段,另外三個(gè)輸出則沒(méi)有。以此類推 N = 100,bus和interconnect輸出無(wú)效段會(huì)持續(xù) 100 - 36 = 64個(gè)時(shí)鐘周期的無(wú)效段,此特性在仿真條件1中也可以得到印證。
仿真條件5:N = 37 + 16 + 16,再使得ext_reset_in = 0(持續(xù)4個(gè)周期),dcm_locked = 1。波形如下圖所示。
此條件下,5個(gè)輸出均出現(xiàn)無(wú)效段,其中,bus_struct_reset無(wú)效段持續(xù)一個(gè)時(shí)鐘周期。
總結(jié)一下:此IP在初始階段默認(rèn)輸出復(fù)位信號(hào),信號(hào)寬度默認(rèn)為46個(gè)時(shí)鐘周期,如果在N(范圍4~36)個(gè)時(shí)鐘周期內(nèi),輸入的復(fù)位有效,則輸出復(fù)位信號(hào)寬度會(huì)延長(zhǎng)N-4個(gè)時(shí)鐘周期。超過(guò)36個(gè)時(shí)鐘周期還沒(méi)有有效的復(fù)位輸入,輸出復(fù)位信號(hào)會(huì)部分失效,超過(guò)36+16+16 = 68個(gè)周期沒(méi)有有效復(fù)位輸入,輸出復(fù)位信號(hào)會(huì)全部失效。此時(shí)初始階段結(jié)束,IP進(jìn)入等待輸入復(fù)位信號(hào)有效的階段。
此后,IP檢測(cè)到外部輸入復(fù)位有效,經(jīng)過(guò)6個(gè)時(shí)鐘周期后,各復(fù)位輸出開(kāi)始有效。
32+X(這一段不確定,與輸入復(fù)位信號(hào)有效寬度和有效次數(shù)有關(guān))個(gè)時(shí)鐘周期后,bus_struct_rst和interconnect_areset最先失效。
再過(guò)16個(gè)時(shí)鐘周期,peripheral_reset與peripheral_areset接著失效。
再過(guò)16個(gè)時(shí)鐘周期,mb_reset最后失效。
手冊(cè)中,展示了ext_reset_in作為輸入時(shí),各輸出的時(shí)序圖,如下圖所示。
另外,特別注意dcm_locked信號(hào),此信號(hào)為低時(shí)表示時(shí)鐘還未穩(wěn)定,此時(shí)reset IP的復(fù)位輸出全部有效,只有當(dāng)dcm_locked信號(hào)為高時(shí),reset IP的輸出才受外部復(fù)位輸入與輔助復(fù)位輸入的控制。
5.4 仿真工程分享
ProcSysResetV5.0 Xilinx IP解析 Vivado 2021.2工程.7z
鏈接:https://pan.baidu.com/s/1Z-bNBqHFauf7kPDd1ysS3A
提取碼:ttfy
六. IP性能
對(duì)于7系列FPGA,性能最低的A7此IP核頻率也可到508MHz。K7和V7可到704MHz。
七. IP使用示例
通常在Block Design中使用此復(fù)位IP,輸出作為自定義模塊,AXI總線等的復(fù)位信號(hào)。外部輸入可自行給定,特別的對(duì)于ZYNQ,外部輸入通常為PS側(cè)提供的FCLK_RESET_N信號(hào)。如下圖所示。
八. 總結(jié)
此IP使用簡(jiǎn)單,用作復(fù)位時(shí),在不提供外部復(fù)位輸入時(shí),還是可以提供初始復(fù)位輸出信號(hào)。使用時(shí)需要注意的是ext_reset_in和aux_reset_in的有效寬度必須大于設(shè)定的寬度才能被識(shí)別為有效復(fù)位輸入,另外,各輸出之間有固定的時(shí)序關(guān)系,此時(shí)序關(guān)系的目的是讓不同功能模塊開(kāi)始工作的時(shí)間不同,使用時(shí)需要合理使用各輸出。
與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的Xilinx IP解析之Processor System Reset v5.0的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Verilog功能模块——符号位扩展
- 下一篇: Xilinx Platform Cabl