Xilinx Vivado的使用详细介绍三:使用IP核_第1页
Xilinx Vivado的使用详细介绍三:使用IP核_第2页
Xilinx Vivado的使用详细介绍三:使用IP核_第3页
Xilinx Vivado的使用详细介绍三:使用IP核_第4页
Xilinx Vivado的使用详细介绍三:使用IP核_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

XilinxVivado的使用详细介绍(3):使用IP核

IP核(IPCore)

Vivado中有很多TP核可以直接使用,例如数学运算(乘法器、除法器、浮点

运算器等)、信号处理(FFT、DFT、DDS等)。IP核类似编程中的函数库(例

如C语言中的printfO函数),可以直接调用,非常方便,大大加快了开发速

度。

使用Verilog调用IP核

这里简单举一个乘法器的IP核使用实例,使用Verilog调用。首先新建工程,

新建demo,v顶层模块。

添加IP核

点击FlowNavigator中的IPCatalogo

ProjectMui&ger

®ProjectSettings

AddSources

选择MathFunctions下的Multiplier,即乘法器,并双击。

22ProjectSummaryX您demo,vXIPCatalogX

aSearch:

▲1

NameAXI4StatusLicenseVUTV

S&MathFunctions

eAdders&Subtracters

田“。Conversions

CORDIC

申・©Dividers

S,©FloatingPoint

自0Multipliers

ComplexMultiplierAll4-StrearnProductionIncludedxilinx.c...

■MultiplierjliProductionIncludedIxilinx.c...

E"E?SquareRoot

0,&TrigFunctions

®口Memories&StorageElements

®-uStandardBusInterfaces

田心Video&ImageProcessing

Details

ITame:lultiplier

Version:12.0Glev.5)

Description:MultiplicationisafundamentalDSPoperation.Thiscoreallowsparallelandconstavt-coe£f:

multiplierstobegenerated.TheusercanspecifyifDSP48Slices,LUTsoracorr/i>•*:

resourcesshouldbeutilized.7

将弹出IP核的参数设置对话框。点击左上角的Documentation,可以打开这个

IP核的使用手册查阅。这里直接设置输入信号A和B均为4位无符号型数据,

其他均为默认值,点击0K。

稍后弹出的窗口,点击Generate。

将示例代码复制到demo,v文件中,并进行修改,最终如下。代码中声明了无符

号型的4位变量a和b,分别赋初值7、8,作为乘数使用;无符号型的8位变

量P,用于保存计算结果。elk为Testbench编写的周期20ns的时钟信号;

mult_gen_0mul(...)语句实例化了mult_gen_0类型的模块对象mul,并将

clk^a、b、p作为参数传入。

moduledcmo(

);

regelk=10;

always#101elk="elk;

wire[3:0]a=7;

wire[3:0]b=8;

wire[7:0]P;

multgen0mul

.CLK(elk),//inputwireCLK

.A(a),//inputwire[3:0]A

.B(b),//inputwire[3:0]B

.P(p)//outputwire[7:0]P

);

endmodule

行为仿真验证

以demo为顶层模块,启动行为仿真,即可输出波形。设置a、b、p显示为无符

号十进制(右击选择Radix-UnsignedDecimal)0如图,可以看到a=7,

b=8,第一个时钟上升沿后p=a*b=56o

框图(BlockDesign)中调用IP核

这里举一个简单的例子,通过调用乘法器IP核,产生一个能计算平方的新模

块。

创建框图设计文件

选择FlowNavigator中的CreateBlockDesign,创建一个框图设计文件。

输入文件名并点击0K。

添加IP核

在框图空白处右击,选择AddIP。

BlockDesiKUdesien.1

Sources一□L?XDiagramXtest.xdcX

5匿含10曲・圈

J,1design」

E)^DesignSources(2)Thisdesignisempty.Togetstarted.

Adesign」(design」.bd)

test'test,v)

E)©Constraints(I)SourceITodeProperties.

D&constrs_l(1)

Delete

Hltest,xdc(target)

±SimulationSources(2)Copy

Paste

HierarchyIPSourcesLibrariesCompileOrderSearch...

工Sources曰DesignHierarchySignalsSelectAll

SourceFileProperties-□L?X£?AddIP...

/4IflRlKITP+

可以直接搜索需要的IP核,双击确认。

………

Search:Q、multi(3matches)

ITaneVLIW

JtComplexMultiplierxilinx.c...

Multiplier[xilinx.c.,.

◎MultiplyAdderxilinx.c...

SelectandpressE1TIERoraraganddrop,ESC...

IP核即可被添加进来,可以用导线将其与其他器件连接。

3

生.DiagruX

3Adesignl

出multgen0

中-CLK

白-A[17:0]P[35:O]

-B[17:0]

双击这个IP核符号,可以打开参数设置对话框。点击左上方的Documentation

可以查看IP核的手册。这里将输入的A、B均设置为4为无符号型,其他为默

认值,点击0K确认。

绘制电路

右击Diagram窗口空白处,选择CreatePort。

x

■Properties...Ctrl+E

XDeleteDelete

.CopyCtrl+C

■PasteCtrl+V

■Search...Ctrl+F

SelectAllCtrl+A

*AddIP...Ctrl+I

IPSettings...

ValidateDesignF6

CreateHierarchy...

CreatePort...z/-fCt.rii:K

弹出窗口中,设置端口a为4位输入信号,并点击0K。

将a与A、B都连接起来。

multgenO

CLK

a[3:0]A[3:0]P[7:0]■

B[3:0]

F;方靠M

同样的方法,添加一个8位输出端口p,与P连接。

社CreatePort

再添加一个elk时钟输入端口,与CLK连接。

次CreatePort

Createportandconnectittoselectedpinsandports

Portname:elk

Direction:Input▼

Type:Clock▼

Createvector::rom31囹|(。0图|

Frequency(MHz):

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论