Vivado将.v文件作为模块加入Block Design

  用Vivado开发ZYNQ时,常用到Block Design。Block Design中不仅仅可以添加IP核,还可以将未封装成IP的.v或.vhd文件作为模块加入其中。我们以往Block Design中加一个闪灯的模块为例,说明如何向Block Design添加.v文件模块。
1、启动Vivado,创建一个工程,并创建一个Block Design和一个led.v文件。下面贴出led.v和约束文件的代码。

//led.v
`timescale 1ns / 1ps 
module led 
#(
    parameter FREQ = 32'd49_999_999//这个参数可以在Block Design中修改
)
(
    input sys_clk,
    output reg [1:0] led
    );
reg[31:0] timer_cnt;
always@(posedge sys_clk)
begin
    if(timer_cnt >= FREQ)
    begin
        led <= ~led;
        timer_cnt <= 32'd0;
    end
    else
    begin
        led <= led;
        timer_cnt <= timer_cnt + 32'd1;
    end
    
end
endmodule
set_property IOSTANDARD LVCMOS33 [get_ports {led[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports sys_clk]
set_property PACKAGE_PIN G14 [get_ports {led[1]}]
set_property PACKAGE_PIN M15 [get_ports {led[0]}]
set_property PACKAGE_PIN K17 [get_ports sys_clk]
create_clock -period 20.000 -name sys_clk -waveform {0.000 10.000} [get_ports sys_clk]

led.v还没添加入Block Design,这两个模块是平级的,如下图所示。
在这里插入图片描述2、右键点击led.v,点击"Add Module to Block Design",将led.v作为模块加入到Block Design中。这时可以看到led.v和Block Design的层次关系。
在这里插入图片描述在这里插入图片描述3、引出led_0模块的sys_clk和led[1:0]的引脚,方法是右击引脚点击“Make External”。然后给引出的引脚改名字,和约束文件中的引脚名称相同。
在这里插入图片描述led.v的模块中有一个参数,这个参数的值可以双击led_0模块,然后修改,如下图所示。
在这里插入图片描述
4、执行Wrapper、Generate、分析、综合、实现、生成bitstream等操作。最后将bitstream下载进开发板看一下现象,两个灯以0.5Hz的频率闪烁。可以在Block Design中改一下FREQ参数的值,再看看LED闪烁的情况。
  我这里的例子比较简单,复杂点儿的工程,比如有一个PS模块,也是可以这样向Block Design添加.v文件的。这种不封装IP,直接添加.v文件作为模块的方法可以比较灵活的修改还没有调试好的模块,等到所有bug都解决后再将.v文件封装成IP核。

  • 23
    点赞
  • 93
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值