vivado2017.4开发vc707(virtex7)(一)上电调试

开学之初老师扔给作者一块开发板vc707 让作者把上面的资源都用一用 准备开始下一步工作。原本想在网上找这块板子的一些中文开发资料,实在是有点少,所以就决定记录下自己的开发过程,与各位相互印证。

安装和license在网上down一下就好了,这里就不写了。

先给vc707上个电,用数据线将板子连上电脑,一般来说是需要下载驱动的,弄一个驱动精灵,扫描一下,然后直接安装就可以了。去网上找这个驱动也是可以的。vc707的手册是UG885,去xilinx官网下一个就行。

然后打开vivado。


该软件以前没有使用过。先跑一个流水灯看看再说。

1.创建工程

2.next

3.名字和目录

4.

在这里作者讲一下这几个选项的区别。

(1)RTL project

    做FPGA的肯定都知道RTL级,简单的就说verilog代码, 行为级就是不一定可以综合的,什么都可以写。RTL级就是行为级里面可以用综合器综合的,综合之后就是门级。这里的RTL project就是可以用来综合的工程,咱们一般就用这个就可以了。

(2)Post-Synthesis Projects

     翻译过来是 综合后的工程。这种工程,就是直接添加综合后的网表,然后和前面的RTL工程没什么区别,也是实现布局布线。例如 .ngc.edif.edn.ncd.dcp这样的文件。可能是本人电脑不够强大,用vivado跑综合实在是有点慢,之后可能会考虑用其他综合工具。

(3)I/O Planning Projects

    设置I/O口等等,感觉这个选项没有太大的作用,就看一下I/O布局之类的。

(4)Imported Project

     导入其他工具写好的工程。

(5)Example Project

       按照预定义的模板建立一个工程。

我们选择第一个,VC707的型号如下


创建之后,  add sourse 

第一个是约束 第二个是普通的文件 第三个是 仿真文件 先选第二个。创建之后开始写代码。



由于板子上只有差分时钟,所以我们需要用上差分转单端的原语。

对于差分时钟信号 ,我们使用IBUFGDS来替代IBUFDS。注意:vc707的reset按钮 按下去的时候 电平是1 ;

这里使用了一个clock ip 把200MHZ转换为5MHZ了。

module top_led(
        input   sys_clk_p, // 开发板上差分输入时钟 200Mhz
        input   sys_clk_n, 
        input       rst,
        output reg [7:0] led
    );
    wire sys_clk_ibufg;
    wire clk;
    IBUFGDS #
    (
    .DIFF_TERM ("FALSE"),
    .IBUF_LOW_PWR ("FALSE")
    )
    u_ibufg_sys_clk
    (
    .I (sys_clk_p), //差分时钟正端输入
    .IB (sys_clk_n), // 差分时钟负端输入
    .O (sys_clk_ibufg) //时钟缓冲输出
    );
    reg [26:0]count;
    clk_wiz_0 instance_name
       (
        // Clock out ports
        .clk_out1(clk),     // output clk_out1  5MHZ  
        // Status and control signals
        .reset(rst), // input reset
        .locked(),       // output locked
       // Clock in ports
        .clk_in1(sys_clk_ibufg));   
    always@(posedge clk or posedge rst)begin
        if(rst)begin
            count <= 0;
            led   <= 8'b10101010;
        end
        else begin 
        if(count ==26'd2499999)begin
                    count<= 0;
                    led<={led[6:0],led[7]};
         end
         else count <=count+1;
        end
    end
    
    
    
endmodule

再添加约束文件

set_property PACKAGE_PIN E19 [get_ports sys_clk_p]
set_property IOSTANDARD LVDS [get_ports sys_clk_p]
set_property PACKAGE_PIN E18 [get_ports sys_clk_n]
set_property IOSTANDARD LVDS [get_ports sys_clk_n]
set_property PACKAGE_PIN AV40 [get_ports rst]
set_property IOSTANDARD LVCMOS18 [get_ports rst]
set_property PACKAGE_PIN AM39 [get_ports {led[0]}]
set_property IOSTANDARD LVCMOS18 [get_ports {led[0]}]
set_property PACKAGE_PIN AN39 [get_ports {led[1]}]
set_property IOSTANDARD LVCMOS18 [get_ports {led[1]}]
set_property PACKAGE_PIN AR37 [get_ports {led[2]}]
set_property IOSTANDARD LVCMOS18 [get_ports {led[2]}]
set_property PACKAGE_PIN AT37 [get_ports {led[3]}]
set_property IOSTANDARD LVCMOS18 [get_ports {led[3]}]
set_property PACKAGE_PIN AR35 [get_ports {led[4]}]
set_property IOSTANDARD LVCMOS18 [get_ports {led[4]}]
set_property PACKAGE_PIN AP41 [get_ports {led[5]}]
set_property IOSTANDARD LVCMOS18 [get_ports {led[5]}]
set_property PACKAGE_PIN AP42 [get_ports {led[6]}]
set_property IOSTANDARD LVCMOS18 [get_ports {led[6]}]
set_property PACKAGE_PIN AU39 [get_ports {led[7]}]
set_property IOSTANDARD LVCMOS18 [get_ports {led[7]}]

然后就跑一个bit文件出来 。打开hardware mannager,给板子上电,


这里自动寻找一下。如果找不到,看看是不是没上电 ,JTAG线是不是插错位置了,驱动是不是下好了。


点 program Device,编程完成之后就可以看到现象了。




  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值