最近两个月开始用Vivado做项目,之前一直用ISE开发,个人觉得ISE方便好用,而Vivado编译又慢,还占内存,打开一个工程就需要好半天,可视化界面感觉也没什么用处,不如模块化的代码来的简单,而且还有一些bug。无奈xilinx公司不再开发ISE,到14.7就结束了,以后的芯片只能用Vivado做设计了,只能用它了,现在已经更新到了2014.4版本,我现在用的是2013.4版本,开发板是zedboard。
用Vivado进行硬件调试,就是要插入ila核,即“集成逻辑分析仪”,然后将想要引出来观察的信号连到这个核的probe上。
首先第一步,需要把想要观测的信号标记出来,即mark_debug,有两种mark_debug的方法,我用verilog写了一个简单的流水灯程序,只有几行代码,如下:
- module main(
- input clk,
- input rst,
- output reg [7:0] led
- );
- (*mark_debug = "true"*)reg [23:0] counter;
- always @(posedge clk) begin
- if(rst) begin
- counter <= 0;
- led <= 8'b00000001;
- end
- else counter <= counter + 1;
- if (counter == 24'hffffff)
- led <= {led[6:0],led[7]};
- end
- endmodule