004---FPGA在线调试(一)---内嵌的逻辑分析仪(ILA)


摘要

文章主要介绍fpga内嵌的逻辑分析仪(ILA)的使用方法。以led工程为例,介绍几种方法,观察内部信号timer_cnt 和 led的变化。

一、ILA ip核

(1)点击 IP Catalog,在搜索框中搜索 ila,双击 ILA 的 IP。
在这里插入图片描述

(2)由于要采样两个信号,Probes 的数量设置为 2。
Sample Data Depth 指的是采样深度,设置的越高,采集的信号越多,同样消耗的资源也会越多。
在这里插入图片描述
(3)设置 Probe 的宽度,设置 PROBE0 位宽为 32,用于采样 timer_cnt。
设置 PROBE1 位宽为 4,用于采样 led。
在这里插入图片描述
(4)在 led.v 中例化 ila。

module led(
    input            sys_clk,
    input            rst_n,
                           
    output reg [3:0] led
    );
    
reg  [31:0] timer_cnt;

always@(posedge sys_clk or negedge rst_n)
begin
    if (!rst_n)
        timer_cnt <= 32'd0 ;
    else if(timer_cnt >= 32'd49_999_999)
        timer_cnt <= 32'd0;
    else
        timer_cnt <= timer_cnt + 32'd1;
end

always@(posedge sys_clk or negedge rst_n)
begin
    if (!rst_n)  
        led <= 4'd0 ;
    else if(timer_cnt >= 32'd49_999_999)
        led <= ~led;  
    else
        led <= led;   
end

ila ila_inst1 
(
	.clk(sys_clk), // input wire clk


	.probe0(timer_cnt), // input wire [31:0]  probe0  
	.probe1(led) // input wire [3:0]  probe1
);
endmodule

(5)重新生成 Bitstream、连接硬件、下载程序。
在这里插入图片描述

(6)弹出在线调试窗口,出现了添加的信号。
在这里插入图片描述

二、MARK DEBUG

在代码中添加综合属性,实现在线调试。

(1) 在 led 和 timer_cnt 的定义前面添加(* MARK_DEBUG=”true” *),保存led.v文件。
在这里插入图片描述

(2) 点击综合,综合结束后,点击 Set Up Debug。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

(3)在 xdc 文件中即可看到添加的 ila 核约束。
在这里插入图片描述
(4)重新生成 Bitstream、连接硬件、下载程序。
在这里插入图片描述

(5)弹出在线调试窗口,出现了添加的信号。
在这里插入图片描述

### 如何在 IntelliJ IDEA 中配置和使用 Swagger #### 添加 Maven 依赖 为了使 Swagger 能够工作,在 `pom.xml` 文件中需加入特定的依赖项。这可以通过编辑项目的构建文件来完成: ```xml <dependencies> <!-- swagger2 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.8.0</version> </dependency> <!-- swagger ui --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.8.0</version> </dependency> </dependencies> ``` 这些依赖会引入必要的库用于生成 API 文档以及提供交互式的 UI 页面[^4]。 #### 创建 Swagger 配置类 接着创建一个新的 Java 类用来初始化并配置 Swagger 实例。通常命名为类似于 `SwaggerConfig.java` 的名称,并放置于合适的位置,比如 `config` 包内: ```java import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; @Configuration public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .build(); } private ApiInfo apiInfo(){ return new ApiInfoBuilder().title("API文档").description("").termsOfServiceUrl("") .contact(new Contact("", "", "")) .license("").licenseUrl("").version("1.0") .build(); } } ``` 这段代码定义了一个 Spring Bean 来设置 Swagger 的基本信息和其他选项。 #### 启动应用测试 当上述步骤完成后,启动应用程序即可访问默认路径 `/swagger-ui.html` 查看自动生成的 RESTful 接口文档界面。通过浏览器打开该链接可以浏览到所有已暴露出来的 HTTP 请求方法及其参数说明等信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值