zynq-7000的FIFOIP核学习--仅供自己学习使用

NATIVE Core设计步骤

定制和生成本地核

       1 、基础选项卡(basic tap)

           1.1·组件名称(component name):只能使用字母、数字和下划线。

         1.2·接口类型(interface type):有 Native 、AXI MemoryMapped、AXI Stream。

                                                        Native:本地FIFO。

                                                        AXI MemoryMapped:内存映射:以first word - fall - through模                                                                                           式实现AXI4、AXI3和AXI4- lite fifo。

                                                        AXI Stream :实现了一个AXI4-Stream FIFO在First-Word-                                                                                       Fall- Through模式。

       1.3 ·FIFO实现(FIFO Implementation):

                Common Clock (clk), Block RAM:使用Block Ram 搭建FIFO,支持FWFT模式(第一个数据先出)

                Common Clock (clk), Distributed RAM: 使用分布式RAM搭建FIFO,支持FWFT模式(第一个数据先出)

                Common Clock (clk), Shift Register: 使用移位寄存器搭建FIFO

                Common Clock (clk), Built-in FIFO:使用内嵌的FIFO搭建你所要的FIFO,支持FWFT模式(第一个数据先出)

                Independent Clocks (rd_clk, wr_clk), Block RAM:支持异步读写,其他与同步相同。

                Independent Clocks (rd_clk, wr_clk), Distributed RAM:

                Independent Clocks (rd_clk, wr_clk), Built-in FIFO:

1.4·同步阶段(synchronization stages):定义跨时钟域逻辑的同步器阶段的数量。表给出了与操作频率相对应的同步阶段的例子。

                

2、本地端口选项卡(Native Ports Tab)

        这个列表提供了性能选项(read mode),数据口参数,ECC与核的初始化选项。

        2.1·读模式(Read Mode) :只有用Bram和分布式ram时,才有效。

                       标准FIFO(Standard FIFO):生成一个标准延迟FIFO。不是有输出寄存器。

                        FWFT模式(First-Word-Fall-Through)FIFO:生成一个有输出寄存器的FIFO。

        这个模式的意思就是提前将第一个数据放置在数据线dout上,利用一个输出寄存器实现。好处就是,读使能信号拉高后可以立即读到数据,无需延迟一个周期。

 

      2.2 ·数据端口参数(Data Port Parameters)

                `非对称端口宽度:只适用于使用Bram和内嵌FIFO搭建的FIFO

                ·写宽度:有效范围1~1024

                ·写深度:有效深度16~131072,深度只允许是2的幂次

                ·读宽度:只适用于使用Bram和内嵌FIFO搭建的FIFO,有效范围必须遵守异步端口的规则。

         非对称纵横比允许FIFO的输入和输出深度不同。支持写读宽比:1:8、1:4、1:2、1:1、2:1、4:1、8:1。当使用Vivado IP Catalog自定义FIFO时,通过选择唯一的写和读宽度来启用该特性。默认情况下,写和读宽度设置为相同的值(提供1:1的宽高比);但是支持1:8到8:1之间的任何比例,FIFO的输出深度是自动从输入深度和读写宽度计算出来的。

                ·读深度:基于上述的写深度,读宽度等自动计算。

                ·低延迟(low Latency):使用内部嵌入的FIFO来搭建的FIFO才能使用。

                ·低延迟输出寄存器:当低延迟选项有效时候可选。

2.3·ECC,输出寄存器和功率控制选项(ECC, Output Register and Power Gating Options)

        ·ECC (Error Correction Checking):当Hard ECC使能时,将块RAM或内置FIFO设置为全ECC模式,同时使能编码器和解码器

        ·单比特错误注入:可用于公共和独立的时钟块RAM或内置的fifo,并启用ECC选项。软ECC选项与ECC逻辑使用通用互连是可用的块RAM基于FIFO构建。生成一个输入端口,在写入时注入一个单比特错误,并生成一个输出端口,表示发生了一个单比特错误。

        ·双位错误注入:可用于公共和独立时钟块RAM或内置FIFOs,并启用ECC选项。生成一个输入端口,在写入时注入一个双位错误,并生成一个输出端口,表示发生了一个双位错误。

        ·ECC管道寄存器:内置FIFO宏在ECC解码器和编码器路径上有一个可选的管道寄存器。当ECC流水线寄存器被选择时,它改善了FIFO宏计时,并在DOUT上增加了一个时钟额外延迟。当复位应用于FIFO时,ECC流水线寄存器保存之前在流水线中读取的数据。有关ECC管道寄存器的更多信息,请参阅UltraScale架构内存资源

        ·动态功率门控:动态节能能力(由睡眠管脚控制)保持内置FIFO宏在睡眠模式,同时保留数据内容。唤醒时间要求之前的任何FIFO访问都不能保证,可能会导致内存内容损坏。当sleep激活(High)时,wr_en和rd_en引脚必须保持Low。在此模式下,内存中的数据内容将被保存。

        ·输出寄存器:块RAM宏有内置的嵌入式或互连寄存器,可以用来管道数据和改善宏计时。这个选项允许用户添加一个流水阶段在FIFO的输出时候并且得到内嵌的寄存器的优点。对于内置的FIFO,这个特性只支持同步FIFO配置,只有一个深度的FIFO宏。

2.4初始化

        ·复位引脚(reset pin):对于Bram FIFO和 分布式ram FIFO,复位引脚不做要求,输入引脚可选择。

        ·同步复位使能(Enable Reset Synchronization):只有独立的时钟BRAM或分布式RAM FIFO时才可选用。未选中时,wr_rst/rd_rst可用。

        ·安全电路使能(Enable safety circuit):只有基于BRAM的fifo具有异步复位(默认开启)时才可选。对于AXI接口,安全电路在核心内部自动启用,因为AXI接口的复位总是异步的。当您选择启用安全电路选项时,附加的逻辑被启用,以确保同步触发器驱动FIFO发生器的输出和控制信号进入BRAM原语。

        ·复位类型:

                      异步复位:使用分布式或BRAM实现的公共时钟FIFO的可选选择。

                      同步复位:使用分布式或BRAM实现的公共时钟FIFO的可选选择。

        ·full Flag重置值:对于BRAM、分布式RAM和移位寄存器配置,可以选择full Flag的重置值

        ·Dout 重置值:复位后,Dout上的值。

                                可用于所有实现使用块RAM,分布式RAM,移位寄存器或公共时钟7系列设备内置的嵌入式寄存器选项。只有在选择复位引脚选项时才可用。如果选中该选项,当复位被断言时,FIFO的dout输出将复位到定义的dout reset Value。如果没有被选中,FIFO的dout输出将不会受到复位断言的影响,并且dout将保留其先前的值,对于使用内置FIFO的UltraScale架构设备来说有一定的限制。

3、状态标志选项卡(status flags tab)

        该选项卡允许您选择可选的状态标志,设置握手选项和可编程标志选项。

        ·Almost full flag:在所有FIFO实现中可用,除了那些使用内置FIFO的实现。生成一个输出端口,表示FIFO几乎已满(只能再写一个字)。

        ·Almost enpty flag :在所有FIFO实现中可用,除了那些使用内置的FIFO。生成一个输出端口,表示FIFO几乎为空(只能再读一个字)。

        ·握手选项(handshaking option):

                ·写端口握手:

                        ---写确认:生成写确认标志,报告写操作成功。该信号可以配置为active-High或Low(默认为active-High)。

                        --Overflow (Write Error):溢出标志,表示上次写操作不成功。该信号可以配置为active-High或Low(默认为active-High)。

                ·读端口握手:

                        --Valid (Read Acknowledge):生成Valid标志,表示输出总线上的数据何时有效。该信号可以配置为active-High或Low(默认为active-High)。注:低有源选项仅适用于7系列设备。

                        --Underflow (Read Error):生成Underflow标志,表示前一次读请求不成功。该信号可以配置为active-High或Low(默认为active-High)。

        ·可编程标志位(programmable Flags):

°可编程full 类型:在下拉菜单中选择可编程full类型。将显示每个阈值的有效范围,并根据IDE中其他地方选择的选项而变化。

°全阈值断言值:当选择单阈值或多阈值常量可编程全阈值时可用。请输入用户自定义值。此阈值的有效范围在IDE中提供。当使用单个阈值常量时,只使用assert阈值。

°全阈值负值:可选时,可编程全与多个阈值常数。请输入用户自定义值。此阈值的有效范围在IDE中提供。

°可编程empty类型:在下拉菜单中选择可编程空值类型。每个阈值的有效范围将显示出来,并且将根据IDE中其他地方选择的选项而变化。

°空阈值断言值:选择“可编程空,单阈值或多阈值常量”时可选。请输入用户自定义值。

在仿真过程中,发现empty信号在写入数据时,并不会立即跳变。猜测是需要经过几个周期才允许读(即empty才会拉低,允许读)。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Zynq-7000系列之linux开发学习笔记是一系列关于在Zynq7030数据采集板上进行Linux开发的文章。在这些文章中,作者提供了关于编译Linux内核、制作设备树、安装NFS等方面的指导和经验。在其中一篇文章中,作者遇到了在挂载NFS时出现的问题,提示"wrong fs type, bad option, bad superblock"等错误信息。作者还提供了Linux内核源码的下载链接以及开发环境的相关信息。整个学习笔记的目标是让开发板能够连接外网,并通过NFS挂载到虚拟机上运行一个helloworld程序。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [Zynq-7000系列之linux开发学习笔记:NFS配置与开发板联网(七)](https://blog.csdn.net/Claudedy/article/details/94591622)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Zynq-7000系列之linux开发学习笔记:编译Linux内核和制作设备树(六)](https://blog.csdn.net/Claudedy/article/details/90760085)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值