XILINX Ultrascale+ FPGA学习(4)——Vivado

Vivado 软件使用流程

这里用一个分频的例子,完成Vivado工程的全部流程。按照本文流程走完,你对vivodo建立工程有一个基本的认识。

第一步:建立vivodo工程

该步骤很有很多教程就不详细描述了,主要是选择FPGA的型号。

第二步:添加verilog文件

在这里插入图片描述
左键点击添加文件,vivodo中能够添加的文件有3种,依次是添加约束文件(时钟约束和引脚定义),源文件(verilog 代码)以及仿真文件
在这里插入图片描述
这里先添加verilog文件,取名为:divide_frequency,分频的代码如下:


module divide_frequency#(
    DIVIDE=10
)(
    input rst,
    input sys_clk,
    input sen,
    output divide_clk
    );
reg[31:0] cnt;
reg clk;
assign divide_clk=clk;
always@(posedge sys_clk or posedge rst)
begin
    if(rst | ~sen)
    begin
        cnt<=32'd0;
        clk<=1'd0;
    end
    else
        begin 
            if(cnt>=DIVIDE-1'd1)
            begin
                cnt<=32'd0;
                clk<=~clk;
            end 
            else
               cnt<=cnt+1'd1;
        end            
end
endmodule

使用同样的办法添加仿真文件,如下:


module sim_top(
    );
reg rst;
reg sys_clk;
reg sen;
wire divide_clk;
initial
begin
    rst=0;
    sys_clk=0;
    sen=0;
    #20
    rst=1;
    #20
    rst=0;
    #50
    sen=1;  
end    
always #1 sys_clk=~sys_clk;
divide_frequency #(
    .DIVIDE(10)
)di(
     .rst(rst),
     .sys_clk(sys_clk),
     .sen(sen),
    .divide_clk(divide_clk)
    );    
endmodule

第三步:行为级仿真

仿真代码和verilog代码写完了,就可以进行仿真了,左键点击流程导航里的Run Simulation
在这里插入图片描述
然后点击Run Behavioral Simulation,进行行为仿真。
在这里插入图片描述

第四步、综合与实现

在运行综合与实现之前可以RTL分析一下。
在这里插入图片描述
先运行综合,
在这里插入图片描述
这里有一个Number of jobs 与自己电脑性能有关。
运行完成后如下,可以设置ILA逻辑分析和时钟约束,这里就不扩展开说了。
在这里插入图片描述
运行完综合后就可以进行引脚约束,可以使用xdc文件直接编写约束,也可以如下图在I/O Planning里手动进行约束。

在这里插入图片描述

在这里插入图片描述
当然,这里就不设置约束了。

第五步,自定义IP

当你运行完成综合和实现后发现没啥大问题。可以将整个工程打包成一个IP核。
在这里插入图片描述
在这里插入图片描述
你也可以创建带有AXI4接口的IP核,也很方便。具体流程可以搜一下。
IP核创建完成后,添加IP核到工程里面。这样我们就可以在工程里直接使用IP。
在这里插入图片描述

第六步,Block Design的创建

在vivodo中可以使用IP核块,进行图形话的操作,
在这里插入图片描述
点击添加IP,然后搜索找到自定义的IP核,添加进来。
在这里插入图片描述
在这里插入图片描述
xilinx官方提供很多IP核,比如原语BUFFER的IP核 Utility Buffer,与或非逻辑IP核 Utility Vector Logic。还有生成MMCM和PLL时钟的clocking wizard,生成FIFO的IP核,等等。

在这里插入图片描述
这里不做复杂的设计。

我们使用常数IP核, Constant生成一个高信号给信号sen,然后将其他引脚都接出来。
在这里插入图片描述
选中引脚,右键选择make external可以将引脚引出。
在这里插入图片描述
在source窗口,可以看到我们创建的BD文件,点击create HDL Wrapper 对其进行verilog代码包裹。实际上就是将其引脚用verilog代码引出方便我们使用。
在这里插入图片描述
在这里插入图片描述
这里可以看出BD文件实际使用就是和IP核使用的方法一下,我们稍微修改一下仿真文件,就能对它进行仿真。
修改的仿真文件如下:


module sim_top(

    );
reg rst;
reg sys_clk;
reg sen;
wire divide_clk;
initial
begin
    rst=0;
    sys_clk=0;
    sen=0;
    #20
    rst=1;
    #20
    rst=0;
    #50
    sen=1;
    
end    
always #1 sys_clk=~sys_clk;
//divide_frequency #(
//    .DIVIDE(10)
//)di(
//     .rst(rst),
//     .sys_clk(sys_clk),
//     .sen(sen),
//    .divide_clk(divide_clk)
//    );    

 design_1_wrapper d1
   (.divide_clk_0(divide_clk),
    .rst_0(rst),
    .sys_clk_0(sys_clk));    

endmodule

在这里插入图片描述
vivado确实是十分强大,这样就大大简化了开发流程。

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

棘。。背凉

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

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

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

打赏作者

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

抵扣说明:

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

余额充值