首页 > 其他分享 >app_intf笔记

app_intf笔记

时间:2023-09-03 22:45:09浏览次数:42  
标签:intf addr wdf app mask 笔记 WIDTH data

pg150-ultrascale-memory-ip.pdf

Protocol Description

User Interface

Signal I/O Description
app_addr[APP_ADDR_WIDTH – 1:0] I 地址线.
app_cmd[2:0] I 命令,写为3'b000;读为3'b001.
app_en I 命令通道使能
app_rdy O 命令通道ready
app_rd_data [APP_DATA_WIDTH – 1:0] O 读数据
app_rd_data_end O 指示最后一笔读数据
app_rd_data_valid O 读数据有效信号
app_wdf_data [APP_DATA_WIDTH – 1:0] I 写数据
app_wdf_end I 指示最后一笔写数据
app_wdf_mask [APP_MASK_WIDTH – 1:0] I 写数据mask
app_wdf_rdy O 写数据通道ready
app_wdf_wren I 写数据通道使能
ui_clk O app接口时钟
init_calib_complete O 初始化完信号
ui_clk_sync_rst O app接口复位,高有效

app_addr[APP_ADDR_WIDTH – 1:0]

app_addr受参数MEM_ADDR_ORDER影响

ROW_BANK_COLUMN
SDRAM app_addr Mapping
Rank (RANK == 1) ? 1'b0:
Row app_addr[COL_WIDTH + BANK_WIDTH +: ROW_WIDTH]
Column app_addr[0 +: COL_WIDTH]
Bank app_addr[COL_WIDTH +: BANK_WIDTH]
BANK_ROW_COLUMN
SDRAM app_addr Mapping
Rank (RANK == 1) ? 1'b0:
Row app_addr[COL_WIDTH +: ROW_WIDTH]
Column app_addr[0 +: COL_WIDTH]
Bank app_addr[COL_WIDTH + ROW_WIDTH +: BANK_WIDTH]

app_cmd[2:0]

Commands for app_cmd[2:0]
Operation app_cmd[2:0] Code
Write 000
Read 001

app_en

This input strobes in a request. Apply the desired values to app_addr[], app_cmd[2:0], and app_hi_pri, and then assert app_en to submit the request to the user interface. This initiates a handshake that the user interface acknowledges by asserting app_rdy.

app_hi_pri

This input indicates that the current request is a high priority

app_wdf_data[APP_DATA_WIDTH – 1:0]

This bus provides the data currently being written to the external memory.

app_wdf_end

This input indicates that the data on the app_wdf_data[] bus in the current cycle is the last data for the current request.

app_wdf_mask[APP_MASK_WIDTH – 1:0]

This bus indicates which bits of app_wdf_data[] are written to the external memory and which bits remain in their current state. The bytes are masked by setting a value of 1 to the corresponding bits in app_wdf_mask. For example, if the application data width is 256, the mask width takes a value of 32. The least significant byte [7:0] of app_wdf_data is masked using Bit[0] of app_wdf_mask and the most significant byte [255:248] of app_wdf_data is masked using Bit[31] of app_wdf_mask. Hence if you have to mask the last DWORD, that is, bytes 0, 1, 2, and 3 of app_wdf_data, the app_wdf_mask should be set to 32'h0000_000F.

app_wdf_wren

This input indicates that the data on the app_wdf_data[] bus is valid.

app_rdy

This output indicates whether the request currently being submitted to the user interface is accepted. If the user interface does not assert this signal after app_en is asserted, the current request must be retried. The app_rdy output is not asserted if:
° PHY/Memory initialization is not yet completed.
° All the bank machines are occupied (can be viewed as the command buffer being full).

  • A read is requested and the read buffer is full.
  • A write is requested and no write buffer pointers are available.
    ° A periodic read is being inserted.

app_rd_data[APP_DATA_WIDTH – 1:0]

This output contains the data read from the external memory.

app_rd_data_end

This output indicates that the data on the app_rd_data[] bus in the current cycle is the last data for the current request.

app_rd_data_valid

This output indicates that the data on the app_rd_data[] bus is valid.

app_wdf_rdy

This output indicates that the write data FIFO is ready to receive data. Write data is accepted when both app_wdf_rdy and app_wdf_wren are asserted.

ui_clk_sync_rst

This is the reset from the user interface which is in synchronous with ui_clk.

ui_clk

This is the output clock from the user interface. It must be a quarter the frequency of the clock going out to the external SDRAM, which depends on 2:1 or 4:1 mode selected in Vivado IDE.

init_calib_complete

PHY asserts init_calib_complete when calibration is finished. The application has no need to wait for init_calib_complete before sending commands to the Memory Controller.

Command Path


A non back-to-back write command can be issued as shown in Figure 11-5. This figure depicts three scenarios for the app_wdf_data, app_wdf_wren, and app_wdf_end signals as follows: 1. Write data is presented along with the corresponding write command. 2. Write data is presented before the corresponding write command. 3. Write data is presented after the corresponding write command, but should not exceed the limitation of two clock cycles. For write data that is output after the write command has been registered, as shown in Note 3 (Figure 11-5), the maximum delay is two clock cycles.

Write Path

Read Path


标签:intf,addr,wdf,app,mask,笔记,WIDTH,data
From: https://www.cnblogs.com/wudayemen/p/17675760.html

相关文章

  • 《Java编程思想第四版》学习笔记22
    注意下面这两句话:1、针对g()和main(),Throwable类必须在违例规格中出现,因为fillInStackTrace()会生成一个Throwable对象的句柄。由于Throwable是Exception的一个基础类,所以有可能获得一个能够“掷”出的对象(具有Throwable属性),但却并非一个Exception(违例)。因此,在main()......
  • uniapp项目实践总结(八)自定义加载组件
    有时候一个页面请求接口需要加载很长时间,这时候就需要一个加载页面来告知用户内容正在请求加载中,下面就写一个简单的自定义加载组件。目录准备工作逻辑思路实战演练效果预览准备工作在之前的全局组件目录components下新建一个组件文件夹,命名为q-loading,组件为q-loading......
  • 笔记2:vivado 的 ILA 创建
    ILA–IntegratedLogicAnalyzer 内部逻辑分析仪(是一种在线调试工具,用的非常多)先例化在生成IP核,好处:(1)、可以事先明确知道要看多少个信号(2)、信号的位宽(3)、可以一次性的配置好在线调试工具,避免先生成IP,在例化,因失误漏了信号,反复添加,编译耗时带来的苦恼问题。(4)、流程很清......
  • 斜率优化DP 学习笔记
    斜率优化DP适用情况适用于求解最优解(最大、最小)问题。上凸壳与下凸壳求解步骤对于任意状态转义方程,设$A_i$,$B_i$,使状态转移方程转化为$f_i=\min(f_j+(A_i-B_j)^2)$当$i$使从$j$转移来时,丢掉$\min$$f_i=f_j+{A_i}^2+{B_j}^2-2\timesA......
  • 【学习笔记】树套树
    所谓树套树,其本质是通过用树维护一组树的根,从而维护强悍的数据1线段树套平衡树线段树套#include<bits/stdc++.h>usingnamespacestd;#defineMAXN50005intseg[MAXN<<2];intamin=1000000,amax=0;structNode{ intval,rnd,siz; intch[2]; }t[MAXN*80];intt......
  • 手把手教你vue3-ts-uniapp-vite创建多端小程序-3 统一ui,uni-ui库
    uni-ui官网地址https://uniapp.dcloud.net.cn/component/uniui/quickstart.html1.安装sass、sass-loadernpminstallsass-Dnpminstallsass-loader-D2.安装uni-uinpminstall@dcloudio/uni-ui3.配置easycom。在pages.json中配置"easycom":{"autoscan&q......
  • vivado 教程笔记 -创建工程 - 编译 - 布局布线 - 生成bit - 下板验证
    1、创建工程工程就算创建完了。2、 创建源文件双击打开后,就可以敲入代码 3、语法编译、布局布线、IO配置约束输入完一个完整代码后,先对语法进行综合分析,可直接跳过RTLANALYSIS,直接点击SYNTHESIS(综合)进行布局布线布局布线完后,IO管脚配置约束有时......
  • 学习笔记-计算机病毒对抗技术-病毒概述
    本周我们学习下计算机病毒揭秘与对抗技术。主要分为6大模块计算机病毒概念定义计算机病毒(ComputerVirus)指编制者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机正常使用并且能够自我复制的一组计算机指令或程序代码。特点1、破坏性2、隐蔽性3、潜伏性4、传染性5、不可......
  • KdMapper扩展中遇到的相关问题
    1.背景  KdMapper是一个利用intel的驱动漏洞可以无痕的加载未经签名的驱动,本人在利用其它漏洞(参考《【转载】利用签名驱动漏洞加载未签名驱动》)做相应的修改以实现类似功能。在这其中遇到了两个重要的问题,记录下来以作参考。 2.CallKernelFunction问题及修改  2.1相关......
  • 网络流学习笔记
    开个坑,是个大工程,一篇可能放不下,所以后续存在形式未知。每周日写一个小时,大概会写很久,目前处于一个咕咕的状态。笔者是主要从Alex_wei的博客中学习网络流,因此本文有很多东西来自wls的博客,wlstql。1.一些有关概念网络是一张有向图\(G=(V,E)\),每条边\((u,v)\)具有流量......