Xilinx vivado 常用IP核使用

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

二级目录

三级目录

### 解决 Vivado 中 ILA 无法定位生成的 Debug 文件 在处理 Vivado 中 ILA (Integrated Logic Analyzer) 无法找到生成的 debug 文件这一问题时,有几个关键点需要注意。此问题可能由多种因素引起,包括但不限于项目配置不当、路径设置不正确以及工具版本兼容性等问题。 #### 配置检查与修正 确保所有必要的 IP 已正确定义并连接至设计中。对于 XADC 和 DDR3 这样的复杂模块,在同时调用它们的过程中容易引发冲突或错误消息[^1]。然而针对ILA的具体情况,则需特别关注以下几个方面: - **确认 ILA 实例化**:保证已经在顶层设计文件里实例化了ILA,并且其端口已经适当地与其他信号相连。 - **验证约束文件**:检查 `.xdc` 约束文件中的定义是否准确无误,特别是关于时钟和复位信号的部分,因为这些会影响调试功能的工作状态。 - **指定正确的 LTX 路径**:当创建 `.ltx` 文件用于加载逻辑分析仪数据时,务必指明确切的位置以便后续能够顺利读取该文件。如果默认位置不对,则可以通过命令行参数手动设定输出目录。 ```tcl set_property DEBUG_PROBE_FILE {path_to_your_ltx_file.ltx} [current_fileset] ``` #### 复位工程项目 有时简单的操作也能解决问题——尝试通过TCL控制台执行 `reset_project` 命令来重置整个工程环境回到初始就绪状态,这有助于清除潜在的历史残留影响当前工作的正常流程[^3]。 #### 更新软件补丁 考虑到不同版本之间可能存在差异甚至Bug,建议保持开发套件处于最新稳定版;官方发布的更新往往包含了性能改进及修复以往发现的各种缺陷的内容。 #### 完整解决方案示例 以下是基于上述要点的一个综合性的解决策略: 1. 执行 `reset_project` 来清理工作区; 2. 参照文档重新添加所需IP(如ILA),注意遵循最佳实践指南完成相应配置; 3. 修改顶层源码以包含新加入的ILA组件及其接口声明; 4. 编辑`.xdc`文件调整任何必要的时间参数或其他属性; 5. 构建完整的比特流之前先运行一次合成/实现过程单独测试新增部分的功能性; 6. 成功完成后导出带有完整调试信息的目标LTX档案; 7. 尝试再次启动在线监控会话看能否成功载入先前准备好的波形记录。 以上措施应该能有效应对大多数情况下遇到的“找不到debug文件”的难题。当然具体情况还需具体分析,若有其他特殊条件则另作考虑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Starry丶

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值