目录

  • 1. Accumulator 12.0
  • 2. Aurora 8B10B 11.1
  • 3. Clocking Wizard
    • 3.1. 时钟资源
  • 4. Divider Generator 5.1
  • 5. FIFO Generator 13.2
  • 6. ILA(Integrated Logic Analyzer) 6.2
  • 7. Multiplier 12.0
  • 8. Block Memory Generator 8.4
  • 9. Distributed Memory Generator 8.0
  • 10. CORDIC 6.0
  • 11. Serial RapidIO Gen2
  • 12. XADC Wizard 3.3
    • 二级目录
      • 三级目录

1. Accumulator 12.0

累加器,可不断将输入端的数据累加。

该IP核内部很多选项容易理解,下面仅说明几个不易理解的:

Basic - Implement using:此处Frabic表示仅使用LUT和FF实现累加器,DSP48表示只使用DSP实现累加器,可通过左侧的Information - Resource Estimates查看资源使用

Basic - Implement using表示在Basic选项卡中的Implement using项

Basic - Accumulation mode:工作模式,可以是Add累加器、Substract累减器,也可以添加一个端口表示工作模式Add Substract

Basic - Latency:指输出Q之后输入B几个时钟周期

Control - Bypass:指是否输出与输入相等Q==B,不实现累加功能

累加器位于Xilinx Document Navigator 的pg119

2. Aurora 8B10B 11.1

采用并行方式传输高速的数据流有很多设计难点,未来高速数据传输主要采用串行方式传输,Xilinx推出内嵌高速串行收发器Rocket I/O的FPGA产品,并在此基础上开发了Aurora协议

Aurora协议是由Xilinx 公司提出的开放、免费、轻量级的可配置数据链路层协议,主要用于在多个高速串行通道之间进行点对点的数据传输,由于具有高速数据传输和简单易用的特点而得到了系统设计者的关注。其设计目的是使其他高层协议可以很简单地运行在Aurora之上,其中Aurora IP核支持与光纤的无缝连接,传输过程中抗电磁干扰能力强,集成度高,灵活性强。目前光模块速率已经达到10Gbps以上。

位于Xilinx Document Navigator 的pg046
FPGA设计心得(3)Aurora IP core 的理论学习记录
基于FPGA实现Aurora高速串行接口 - 付费
Speedgoat FPGA板卡使用系列文章 | Aurora协议

3. Clocking Wizard

3.1. 时钟资源

7 系列的 FPGA 使用了专用的全局(Global)和区域(Regional)IO 和时钟资源来管理设计中各种
的时钟需求。

时钟管理模块(Clock Management Tiles, CMT)提供了时钟合成(Clock frequency synthesis),倾斜矫正(deskew),过滤抖动(jitter filtering)功能,每个CMT包括一个MMCM(Mixed-Mode Clock Manager)和一个锁相环PLL(Phase-Locked Loop)

● MMCM 用于在与给定输入时钟有设定的相位和频率关系的情况下,生成不同的时钟信号。

● PLL主要用于频率综合。使用一个 PLL 可以从一个输入时钟信号生成多个时钟
信号。

Clocking Options - Input clock information - Source:输入时钟

BUFG(Global ):全局时钟缓冲器

7 Series时钟资源可参考 ug472
Xilinx FPGA 学习笔记——时钟资源
FPGA 时钟设计 1 —— 时钟资源总结

位于Xilinx Document Navigator 的pg065, ug382,ug190
【FPGA】clocking wizard配置(PLL/MMC内核配置)
clocking wizard zynq
Nexys3学习手记6:ClockingWizard探秘

4. Divider Generator 5.1

除法器,Dividend被除数、Divisor除数,Quotient商,Remainder余数、Fractional小数

Channels Settings - Output Channel - Remainder Type:选择余数类型是余数表示还是商的小数形式,两种形式均是通过输出端m_axis_dout_tdata表达的,表示法如下:

Options - Latency Options:观察or设定输出所需的拍数

位于Xilinx Document Navigator 的 pg151
XILINX ISE14.7 除法器 IP Divider Generator的使用教程

5. FIFO Generator 13.2

6. ILA(Integrated Logic Analyzer) 6.2

在上板验证阶段,对于一些难以确定原因的bug,比如:RTL仿真时,测试pattern覆盖不够全面,实际信号时序跟RTL 仿真不一致。

可以通过ILA模块,来实时抓取FPGA内部数字信号的波形,分析错误原因。

其内部原理是在上板验证时,通过时钟检测某个信号是否符合trigger条件,若满足则抓取。

参考Xilinx Document Navigator 的 pg172
FPGA开发要懂得使用硬件分析仪调试——ILA
数字IC/FPGA设计基础_ILA原理与使用

7. Multiplier 12.0

乘法器,可实现两个向量相乘,也可实现常系数相乘

Output and Control - Pipelining and Control Signals:输出端的延迟拍数

参考Xilinx Document Navigator 的 pg108
FPGA系列7——Xilinx复数乘法器(Complex Multiplier v6.0)使用小结

8. Block Memory Generator 8.4

用于产生RAM或ROM,RAM的读写深度可以不同

Basic - Memory Type:表示存储器类型,有多个类型可供选择:

• Single-port RAM 单口 RAM:只有一组地址总线,可以读or写

当使能端ENA有效时。

若WEA== 0则将ADDRA的地址数据读出至DOUTA

若WEA == 1则将DINA的数据写入至ADDRA地址中。

• Simple Dual-port RAM伪双口 RAM:有两组地址总线,一端只可读,一端只可写

PortA时钟为CLKA,提供了DINA和ADDRA,但没有DOUTA,因此只能写。

PortB时钟为CLKB,提供了ADDRB和DOUTB,因此只能读

• True Dual-port RAM真双口 RAM:有两组地址总线,两端均可读or写

PortA和PortB均提供了DIN、ADDR和DOUT,因此可读也可写。

• Single-port ROM 单口 ROM

• Dual-port ROM双口 ROM

Basic - Byte Write Enable:表示DINA位宽必须为8 bits或9 bits的倍数,并且WEA位宽变成了倍数值,WEA的二进制取值决定DINA的第几个8bits或9bits被写入至ADDRA中。

例如 Basic - Byte Write Enable - Byte Size选择8,Port A Options - Write Width选择32,则WEA就变成了4位的即[3:0]。
若某一时刻DINA==32’haabbccdd,WEA == 0101,则clka有效时在ADDRA实际写入的数据为00bb00dd

Port A Options - Operating Mode:Write First写优先,表示先将DINA写在ADDRA上再读ADDRA的新值到DOUTA。Read First读优先,表示先读出ADDRA的旧值到DOUTA,再将DINA写入ADDRA。No Change表示仅将DINA写在ADDRA上,DOUTA保持不变。

Other Options - Memory Initialization:可用于内存初始化,需要加载*.coe

参考Xilinx Document Navigator 的 pg058
XILINX BMG (Block Memory Generator)
Vivado中Block Memory Generator v8.3的使用

9. Distributed Memory Generator 8.0

使用LUT拼接组成的分布式存储器。

对于存储空间小且时序要求不高的存储器可选择该ip

参考Xilinx Document Navigator 的 pg063
Block RAM 和Distributed RAM

10. CORDIC 6.0

一种坐标旋转计算(Coordinate Rotational Digital Computer, CORDIC)的ip。

Configuration Options - Configuration Parameters - Functional Selection:选择函数类型,包括矢量旋转Rotate,矢量变换Translate,正弦,余弦,双曲正弦,双曲余弦,反正切,反双曲正切和平方根的计算。

IP Symbol:输入为坐标值和相角,输出则是包含了相角和坐标。

● s_axis_cartesian_tdata:笛卡尔坐标,用补码表示,格式为

关于PAD的含义,例如,若Configuration Options - Input/Output Options - Input Width为10表示Y_IN与X_IN均为10bits,此时s_axis_cartesian_tdata为32bits,说明s_axis_cartesian_tdata的格式为:PAD(6’b0) + Y_IN(10bits) + PAD(6’b0) + X_IN(10bits)

● s_axis_phase_tdata:同样头几位会是PAD

● s_axis_dout_tdata:不同的函数有不同的格式

参考Xilinx Document Navigator 的 pg015
VIVADO cordic IP核
Xilinx VIVADO CORDIC核的使用
xilinx cordic IP核的用法- arctan的算法

11. Serial RapidIO Gen2

参考Xilinx Document Navigator 的 pg007
Xilinx平台SRIO介绍(汇总篇)

12. XADC Wizard 3.3

二级目录

三级目录

Xilinx vivado 常用IP核使用相关推荐

  1. Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析

    加入定制的乘法IP核,必须在sources右键,用Add Directories加入才完整 加入文件夹后如下图: 测试代码与主程序模块连接端口初学者容易出现错误 输入端口:从模块内部来讲,输入端口必须 ...

  2. FPGA数字信号处理(九)Vivado FFT IP核实现

    该篇是FPGA数字信号处理的第9篇,选题为DSP系统中极其常用的FFT运算.上篇介绍了Quartus环境下FFT IP核的使用"FPGA数字信号处理(八)Quartus FFT IP核实现h ...

  3. Vivado 下 IP核 之ROM 读写

    目录 Vivado 下 IP核 之ROM 读写 1.实验简介 2.ROM IP 核简介 3.ROM IP 核配置 3.1.创建 ROM 初始化文件 3.2.单端口 ROM 的配置 加载数据文件,将 . ...

  4. modelsim 独立仿真vivado fifo IP核

    1.前言 vivado内自带仿真器,或者可以通过vivado启动第三方仿真工具,联合仿真.但是很多时候,我们希望脱离vivado,利用modelsim或者vcs等第三方仿真工具,高效地仿真.本文介绍如 ...

  5. 基于vivado DDS ip核的DDS信号发生器(可调频调相)

    基于Vivado DDS ip核的DDS信号发生器: 在Vivado软件中调出DDS ip核进行设置,很多参数可以参考xilinx官方手册,比较重要的是System Clock系统时钟和Phase W ...

  6. 基于Vivado MIG IP核的DDR3读写实验(top_rom_ddr/ddr_top)

    一.前言 关于Vivado MIG IP核详细配置可以参考我之前的文章:基于Vivado MIG IP核的DDR3控制器(DDR3_CONTROL) 关于MIG IP核的用户端的接口时序可以参考这篇文 ...

  7. vivado CORDIC ip核计算arctan记录

    文章目录 前言 一.CORDIC ip核配置 二.CORDIC ip核接口 三.仿真波形 四.工程文件 前言 本文主要记录自己使用vivado CORDIC ip 核计算arctan的过程. 一.CO ...

  8. FPGA数字信号处理(十九)Vivado CIC IP核实现

    该篇是FPGA数字信号处理的第19篇,题接上篇,本文详细介绍使用Vivado自带的CIC IP核进行设计的方法.关于单级CIC滤波器.多级CIC滤波器的Verilog HDL设计以及Quartus中C ...

  9. Vivado FIFO IP核接口信号介绍

    1.1 Vivado FIFO IP核接口信号介绍 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)Vivado FIFO IP核接口信号介绍: 5)结束语. 1.1.2 ...

最新文章

  1. javascript的Array对象
  2. django手机访问_Django从入门到大作业:2-见网页
  3. LINUX2.4.x网络安全框架
  4. Maven Tomcat 部署
  5. header.vue 调用变量,别的组件导入引用,组件方法事例实例
  6. 贺利坚老师汇编课程66笔记:自定义除法中断学习如何编制中断程序
  7. 枚举很好用啊,为啥阿里不建议返回值用枚举?看看作者孤尽的回答
  8. java指定一个具体日期
  9. LDA线性判别原理解析<数学推导>
  10. golang map转json的顺序问题
  11. 10分钟免费邮箱:10minutemail
  12. 基于TI Davinci架构的多核/双核开发快速扫盲(以OMAP L138为例),dm8168多核开发参考以及达芬奇系列资料user guide整理...
  13. 2020-21《全球软件质量报告》解读
  14. 网站木马修复网站漏洞修复方案
  15. 人物回眸效果怎么用Vegas设置
  16. [小物分享] “Cap-less”——烂笔头3088
  17. 一个屌丝程序猿的人生(九十六)
  18. 关于使用媒体查询@meda失效原因的总结
  19. python 拼音识别_python识别一段由字母组成的字符串是否是拼音
  20. 使用python画k均值分类图

热门文章

  1. 辗转相除法 原理 Java实现
  2. 图像处理:直方图规定化
  3. fflush函数作用浅析
  4. C# 调用DXGI采集屏幕
  5. 2020农行研发笔试
  6. 如何混淆JavaWeb代码
  7. linux的pacemaker集群
  8. 火狐打不开12306购票网站解决办法
  9. FleaPHP 的 Ajax 支持和 WebControls
  10. UE4源码阅读_骨骼模型与动画系统_动画流程