首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Xilinx Vivado的使用详细介绍

Xilinx Vivado的使用详细介绍

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作为参数传入。
  • module demo(
  • );
  • reg clk =
    0;
  • always #10 clk = ~clk;
  • wire [3:0] a =
    7;
  • wire [3:0] b =
    8;
  • wire [7:0] p;
  • mult_gen_0 mul (

  • .CLK(clk),
    // input wire CLK

  • .A(a),
    // input wire [3 : 0] A

  • .B(b),
    // input wire [3 : 0] B

  • .P(p)
    // output wire [7 : 0] P
  • );
  • endmodule
继承事业,薪火相传
返回列表