Xilinx Vivado的使用详细介绍(3):使用IP核
来源:互联网 发布:linux 服务器 反应慢 编辑:程序博客网 时间:2024/06/08 17:47
文章来源:http://www.paincker.com/vivado-basic-usage-3
IP核(IP Core)
Vivado中有很多IP核可以直接使用,例如数学运算(乘法器、除法器、浮点运算器等)、信号处理(FFT、DFT、DDS等)。IP核类似编程中的函数库(例如C语言中的printf()
函数),可以直接调用,非常方便,大大加快了开发速度。
使用Verilog调用IP核
这里简单举一个乘法器的IP核使用实例,使用Verilog调用。首先新建工程,新建demo.v
顶层模块。
添加IP核
点击Flow Navigator
中的IP Catalog
。
选择Math Functions
下的Multiplier
,即乘法器,并双击。
将弹出IP核的参数设置对话框。点击左上角的Documentation
,可以打开这个IP核的使用手册查阅。这里直接设置输入信号A和B均为4位无符号型数据,其他均为默认值,点击OK。
稍后弹出的窗口,点击Generate
。
调用IP核
选择IP Sources
,展开并选择mult_gen_0 - Instantiation Template - mult_gen_0.veo
,可以打开实例化模板文件。如图,这段代码就是使用Verilog调用这个IP核的示例代码。
将示例代码复制到demo.v
文件中,并进行修改,最终如下。代码中声明了无符号型的4位变量a和b,分别赋初值7、8,作为乘数使用;无符号型的8位变量p,用于保存计算结果。clk为Testbench编写的周期20ns的时钟信号;mult_gen_0 mul(...)
语句实例化了mult_gen_0
类型的模块对象mul
,并将clk、a、b、p作为参数传入。
行为仿真验证
以demo为顶层模块,启动行为仿真,即可输出波形。设置a、b、p显示为无符号十进制(右击选择Radix - Unsigned Decimal
)。如图,可以看到a=7, b=8
,第一个时钟上升沿后p = a * b = 56
。
框图(Block Design)中调用IP核
这里举一个简单的例子,通过调用乘法器IP核,产生一个能计算平方的新模块。
创建框图设计文件
选择Flow Navigator
中的Create Block Design
,创建一个框图设计文件。
输入文件名并点击OK
。
添加IP核
在框图空白处右击,选择Add IP
。
可以直接搜索需要的IP核,双击确认。
IP核即可被添加进来,可以用导线将其与其他器件连接。
双击这个IP核符号,可以打开参数设置对话框。点击左上方的Documentation
可以查看IP核的手册。这里将输入的A、B均设置为4为无符号型,其他为默认值,点击OK
确认。
绘制电路
右击Diagram
窗口空白处,选择Create Port
。
弹出窗口中,设置端口a
为4位输入信号,并点击OK
。
将a
与A
、B
都连接起来。
同样的方法,添加一个8位输出端口p
,与P
连接。
再添加一个clk
时钟输入端口,与CLK
连接。
最终结果如图。
仿真测试
右击框图设计文件design_1
,选择Create HDL Wrapper
。
选择第二项并点击OK
。
打开生成的design_1_wrapper.v
文件如图,红框中的代码用来调用前面画好的Block Design
模块。
在design_1_wrapper.v
文件中,添加Testbench代码即可进行行为仿真。修改代码如下,给输入信号a
赋初值为8
,clk
连接到Testbench生成的时钟信号c
上。
在Simulation Sources
文件夹下,设置design_1_wrapper.v
为行为仿真的顶层文件(右击,选择Set as Top
)。
启动行为仿真,最终输出的波形如下。可以看到,在clk
的第一个上升沿后,就有 p = a*a = 64
,即实现了平方运算。
- Xilinx Vivado的使用详细介绍(3):使用IP核
- Xilinx Vivado的使用详细介绍(3):使用IP核
- Xilinx Vivado的使用详细介绍(3):使用IP核
- Xilinx Vivado的使用详细介绍:使用IP核、例化IP
- Xilinx Vivado的使用详细介绍(1):创建工程、编写代码、行为仿真、Testbench
- Xilinx Vivado的使用详细介绍(2):综合、实现、管脚分配、时钟设置、烧写
- Xilinx Vivado的使用详细介绍(1):创建工程、编写代码、行为仿真、Testbench
- Xilinx Vivado的使用详细介绍(1):创建工程、编写代码、行为仿真、Testbench
- Xilinx Vivado的使用详细介绍(2):综合、实现、管脚分配、时钟设置、烧写
- Xilinx Vivado的使用详细介绍(1):创建工程、编写代码、行为仿真、Testbench
- xilinx cordic ip核的使用
- Xilinx FFT IP core V9.0的介绍和使用
- 双口RAM及Vivado RAM IP核的使用
- Xilinx FIR IP核的的使用及延时问题
- Vivado使用技巧(二):封装自己设计的IP核
- PCIE xilinx v5 IP核使用前的研究
- Xilinx IP核使用(一)--FIFO
- Xilinx IP核使用(一)--FIFO
- 我的Java设计模式-建造者模式
- Java实现自定义对象的排序
- [自然语言处理] (4) Word2Vec
- Calling python method from C++ (or C) callback
- Android 经典笔记七 全局弹窗Dialog
- Xilinx Vivado的使用详细介绍(3):使用IP核
- 51 nod 1107 斜率小于0的连线数量
- 域控问题汇总
- Java——生产者消费者中多线程安全问题
- BZOJ 1207 [HNOI2004]打鼹鼠 动态规划
- (DOM艺术) 一点Ajax知识
- Spring MVC框架搭建流程图
- 有关小程序的JAVA后台解密encryptedData获取openid及用户信息
- 最小生成树