本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:XADC IP核是Xilinx FPGA平台的专用ADC,用于处理和转换模拟信号。本压缩包包含在Vivado环境下设计和仿真XADC IP核的详细指南。通过这些资料,用户可以学习如何配置XADC参数,编写交互代码,以及进行仿真验证和硬件测试。本指南还涵盖了XADC的高精度、多通道输入、温度与电源监控、灵活接口和配置选项等特点。
XADC IP核

1. Vivado环境介绍

1.1 Vivado的概述

Vivado是由赛灵思公司开发的一款针对其7系列及之后FPGA产品的集成设计环境,它集成了逻辑设计、FPGA编程、时序约束和物理实现等多种功能。Vivado被设计为适应复杂的片上系统(SoC)和超大规模集成电路(VLSI)设计,提供了高效的工程管理、直观的设计布局以及强大的优化引擎。

1.2 Vivado的主要功能

Vivado环境不仅仅是一个FPGA设计工具,它还包含了以下功能:
- 支持高级综合(HLS)、仿真和分析工具。
- 提供一个全面的IP(Intellectual Property)库,以支持设计复用。
- 提供了用于设计验证的仿真环境,如Vivado Simulator和集成逻辑分析仪工具。
- 支持系统级设计和集成,利用Vivado IP Integrator可以图形化地拖放IP核到设计中。

Vivado的优化和创新设计流程,能够大幅度提升设计效率和质量,缩短产品上市时间,这也是它广受设计师欢迎的原因之一。

2. XADC IP核功能与特点

2.1 XADC IP核概述

2.1.1 XADC IP核的应用背景与意义

Xilinx的XADC (Xilinx Analog-to-Digital Converter) 是一个集成到FPGA芯片中的多功能ADC,主要用于测量和监测FPGA内部和外部的模拟信号。它允许用户对FPGA内部的温度、电源电压等关键参数进行实时监控,从而实现对系统运行状态的全面了解。

XADC的引入,大大简化了以往由外部ADC实现的监测功能的设计复杂度,有效降低了电路板空间占用,并且提升了系统的稳定性和可靠性。同时,由于XADC的集成度高,因此它也利于节省整体系统的成本。

XADC IP核的应用场景广泛,包括但不限于:航空航天、高速通信设备、工业控制、医疗仪器等领域,它使得设计工程师能够更灵活地在设计中集成智能监测和控制系统。

2.1.2 XADC IP核的技术特点

XADC IP核的技术特点主要包括:

  • 高集成度 :XADC IP核是高度集成的模拟监控解决方案,减少了对外部组件的需求。
  • 双通道ADC :具有两个独立的ADC通道,可以同时对两个不同信号进行采样,适用于差分信号的测量。
  • 可编程采样率 :用户可以根据自己的应用需求,灵活配置ADC的采样速率。
  • 内部和外部传感器支持 :能够读取FPGA内部的温度传感器和电源电压监控器,同时支持外部传感器信号的输入。
  • 动态范围 :XADC具有12位分辨率和一个宽广的输入电压范围,能够提供高精度的数据采集。
  • 内部校准功能 :保证了在不同温度和电压条件下,测量结果的准确性。
  • 易用性 :Xilinx提供的IP核配置向导简化了XADC的集成和使用过程。

2.2 XADC IP核的内部架构

2.2.1 XADC IP核的模块组成

XADC IP核的内部架构由多个功能模块组成,主要包括:

  • 控制逻辑模块 :控制整个XADC IP核的运行,实现数据采集的启动、停止和转换模式的配置。
  • 模拟前端模块 :负责信号的采集,包括模拟多路复用器(AMUX)、可编程增益放大器(PGA)等。
  • 数字信号处理模块 :将采集到的模拟信号转换成数字信号,并进行必要的数字滤波等处理。
  • 内部传感器读取模块 :用于监测FPGA芯片内部的温度和电源电压。
  • 寄存器组 :存储用户配置的参数以及XADC的运行状态信息。

2.2.2 各模块功能与协同工作机制

XADC IP核各模块的功能和它们之间的协同工作机制是复杂而精细的。以下是一次典型的数据采集过程:

  1. 启动与配置 :控制逻辑模块根据用户设定的参数,如采样率和通道选择,来初始化XADC并启动数据采集。
  2. 信号采集 :模拟前端模块根据控制逻辑模块的指令选择相应的通道,并对模拟信号进行适当的放大和多路复用处理。
  3. 数字转换 :数字信号处理模块将模拟前端模块传来的信号进行数字化转换,生成数字代码。
  4. 内部传感器监测 :内部传感器读取模块同步监测FPGA芯片的内部温度和电压。
  5. 数据处理与输出 :转换完成的数字数据将被发送至寄存器组,以便供后续的数字逻辑部分使用。

整个过程高度自动化,且模块间通信流畅,保证了数据采集的实时性和精确性。设计人员可以根据具体应用场景灵活配置每个模块的功能,以达到最佳的性能表现。

3. XADC IP核在Vivado中的配置与使用

XADC(Xilinx Analog-to-Digital Converter)是Xilinx FPGA内置的一个高性能模拟到数字转换器。本章节主要讲解如何在Vivado开发环境中配置和使用XADC IP核,包括通过配置向导进行参数设置,以及将XADC集成到FPGA项目中并解决集成过程中可能遇到的问题。

3.1 XADC IP核的配置方法

3.1.1 配置向导的使用步骤

在Vivado中,用户可以通过图形化的配置向导来设置XADC IP核的参数,这些参数决定了XADC的工作模式、采样率、报警阈值等关键功能。以下是配置向导的基本使用步骤:

  1. 打开Vivado项目,在项目概览中选择“IP Catalog”。
  2. 在IP Catalog中找到并双击“Analog-to-Digital Converters”下的“XADC”。
  3. 点击“Next”,进入XADC配置向导的第一步,可以选择IP核的版本和基本参数。
  4. 在接下来的页面中,可以配置更详细的参数,如模拟输入通道选择、温度和电压传感器的使用、报警限制值以及时钟源设置等。
  5. 继续点击“Next”,直到配置完成,此时可以根据需要选择是否生成一个顶层模块(top module)。
  6. 最后,点击“Generate”完成配置向导的设置,并将配置好的XADC IP核添加到项目中。

3.1.2 参数选择与配置实例

在XADC IP核的配置过程中,合理设置参数对于后续功能的实现至关重要。这里给出一个配置实例,假设我们需要一个XADC核心来监控FPGA板上的VCCINT和VCCAUX电源电压,并配置相应的报警阈值。

flowchart LR
A[开始配置] --> B[选择IP核版本]
B --> C[设置基本参数]
C --> D[配置通道和报警限制]
D --> E[选择时钟源]
E --> F[生成顶层模块]
F --> G[完成配置]

配置的参数主要包括:
- IP核版本 :通常选择当前项目所支持的最新版本。
- 基本参数 :如采样模式、连续或单次采样。
- 通道选择 :包括哪些模拟输入通道被激活,以及是否启用温度和电压传感器通道。
- 报警限制 :设置电压传感器的报警阈值,以确定当电压超出正常范围时的响应方式。
- 时钟源 :确定XADC的时钟源,可以是板载晶振或PL时钟。

在代码块中,显示了生成的XADC IP核实例化代码。在顶层模块中,XADC实例通过HDL代码被实例化,随后可以通过HDL代码读取转换结果或处理报警信号。

// XADC instantiation in the top module
(* dont_touch = "true" *) xadc_wiz_0 xadc_inst (
    .daddr_in(8’h00),
    .dclk_in(xclk),            // Xilinx specific clock input
    .den_in(1’b0),
    .di_in(16’h0000),
    .dwe_in(1’b0),
    .channel_in(8’h00),
    .vp_in(VP),
    .vn_in(VN),
    .alarm_out(alarm),         // Alarm output
    .drdy_out(drdy),           // Data ready for output
    .do_out(do),
    .eoc_out(eoc),
    .eos_out(eos),
    .vccaux_alarm_out(vccaux_alarm), // Auxiliary supply alarm
    .vccint_alarm_out(vccint_alarm), // Internal supply alarm
    .vccbram_alarm_out(vccbram_alarm) // BRAM supply alarm
);

在此实例中, xadc_wiz_0 为XADC IP核的实例名, xclk 是连接到XADC的时钟信号。 alarm , drdy , do 等信号用于处理报警、数据准备和输出结果。这些信号在后续HDL代码中将被进一步使用。

3.2 XADC IP核的集成应用

3.2.1 XADC IP核与FPGA的集成流程

将XADC IP核集成到FPGA项目中需要遵循一定的流程,这里以Vivado环境为例,介绍集成的主要步骤:

  1. 生成XADC IP核实例 :在Vivado中生成XADC IP核实例,并按照设计需求配置其参数。
  2. 创建顶层模块 :编写顶层HDL代码,将XADC IP核和其它设计组件(如处理器接口、逻辑控制单元等)实例化。
  3. 分配管脚 :在Vivado中为XADC的模拟输入(VP/VN)和数字输出信号分配FPGA的管脚。
  4. 综合和实现 :综合设计,然后进行实现,生成比特流文件。
  5. 配置FPGA :将比特流文件下载到FPGA,进行测试。
3.2.2 集成中的常见问题及解决方案

在XADC与FPGA的集成过程中,可能会遇到多种问题。这里列举并给出解决方案:

  • 问题一 :XADC实例化时发生错误。
    解决方案 :检查XADC IP核版本是否与项目目标设备兼容。如果必要,更新XADC IP核版本或更换目标FPGA设备。

  • 问题二 :模拟输入信号无法正确读取。
    解决方案 :确保外部电路设计正确,并检查XADC配置中的模拟通道是否设置正确。同时,检查FPGA的管脚分配,确保模拟输入信号的管脚没有被错误使用。

  • 问题三 :数字输出信号不稳定或错误。
    解决方案 :验证时钟信号的稳定性,确保在XADC配置向导中选择了正确的时钟源。在HDL代码中,检查XADC的输出信号是否被正确处理。

  • 问题四 :温度和电压报警不触发。
    解决方案 :检查XADC配置中的报警限制值是否设置合理,并确认报警触发逻辑在HDL代码中是否正确实现。

以上介绍了解决问题的思路,但在实际操作中,可能需要根据具体情况进行详细的调试和测试。在后续章节中,我们将进一步探讨如何使用Verilog/VHDL代码与XADC IP核进行交互,并讨论高级应用技巧。

本章节的内容涵盖了XADC IP核在Vivado中的配置方法和集成应用,包括了配置向导的使用步骤、参数选择与配置实例、XADC IP核与FPGA的集成流程及常见问题与解决方案。下一章节,我们将继续深入探讨Verilog/VHDL代码编写与交互的内容,以及如何在实际项目中运用XADC IP核。

4. Verilog/VHDL代码编写与交互

4.1 Verilog/VHDL与XADC IP核的交互基础

在现代FPGA设计中,与Xilinx的XADC IP核进行交互是一个重要的步骤,无论是使用Verilog还是VHDL进行编码。了解与XADC IP核交互的基础知识,对于任何希望充分利用其性能的开发者都是至关重要的。

4.1.1 代码编写基础与接口规范

首先,代码编写需要遵循FPGA的时序约束和同步原则,以确保与XADC IP核的交互可以正确无误地进行。在接口规范方面,XADC IP核提供了一组固定的接口信号,用于数据的读取和配置。例如,在Verilog中,我们需要定义一系列的输入输出端口,以匹配XADC IP核提供的信号列表。

下面是一段简单的Verilog代码示例,展示了一个基本的接口定义:

module xadc_interface(
    input wire          clk,          // 时钟信号
    input wire          reset,        // 复位信号
    input wire          start_conv,   // 开始转换信号
    output reg          eoc,          // 转换结束信号
    output reg          alarm,        // 报警信号
    output reg [15:0]   data_out,     // 数据输出
    // 连接到XADC IP核的其他信号...
);
    // 实现与XADC IP核交互的逻辑...
endmodule
4.1.2 交互协议与数据流控制

交互协议涉及如何启动转换过程以及如何从XADC IP核获取数据。通常,开发者需要先向IP核发送一个开始转换信号,然后在适当的时候读取转换完成的信号。一旦转换完成,就可以从数据输出端口读取测量值。

数据流控制方面,通常需要实现一定的状态机逻辑,以便在不同的转换阶段之间进行切换,并正确地处理各种信号和数据。下面是一个简单的状态机逻辑代码示例:

localparam IDLE  = 2'b00;
localparam START = 2'b01;
localparam READ  = 2'b10;

reg [1:0] state = IDLE;

always @(posedge clk or posedge reset) begin
    if (reset) begin
        state <= IDLE;
        // 其他信号复位...
    end else begin
        case (state)
            IDLE: begin
                if (start_conv) begin
                    state <= START;
                end
            end
            START: begin
                // 启动XADC转换过程...
                state <= READ;
            end
            READ: begin
                if (eoc) begin
                    // 读取数据...
                    state <= IDLE;
                end
            end
        endcase
    end
end

4.2 实际项目中的应用实例

4.2.1 代码实现与调试过程

在实际项目中,与XADC IP核的交互可能会涉及到更多的配置选项和复杂的逻辑。例如,可能需要同时读取多个模拟通道的数据,或者处理实时报警信号。在实现这些功能时,代码将包含更多的逻辑和状态控制。

调试过程是不可或缺的,特别是在与硬件交互的代码中。通常,开发者会使用逻辑分析仪或信号追踪工具来监控时序,并验证代码与XADC IP核之间的交互是否按照预期进行。

4.2.2 与XADC IP核交互的高级技巧

高级技巧可能包括动态地根据运行时条件改变XADC IP核的配置、使用DMA(直接内存访问)来提高数据传输效率,或者采用流水线技术来提升性能。这些技巧需要开发者有深入的理解,以及对FPGA硬件和XADC IP核特性的熟练掌握。

在本小节中,我们深入探讨了Verilog/VHDL与XADC IP核交互的基础知识,并提供了实际应用实例,包括代码实现和调试过程,以及与XADC IP核交互的高级技巧。接下来的章节将详细讨论XADC IP核的参数定制,这对于优化XADC IP核的性能至关重要。

5. XADC IP核参数定制

5.1 参数定制的基本流程

5.1.1 参数定制的必要性与优势

为了适应不同的应用场景和硬件需求,Xilinx的XADC IP核提供了一定程度的参数定制能力。这种定制对于优化系统的性能、减少资源占用、满足特定的精度要求以及集成第三方算法等方面至关重要。例如,通过定制采样率参数,可以确保在高速数据采集场景下满足性能指标。在低功耗设计中,合理调整时钟频率和分辨率则可以显著降低功耗。

定制化也意味着更精细的控制,使得设计者能够根据应用的特定需求选择合适的测量范围、精度以及报警阈值。因此,掌握参数定制的流程和技巧,不仅能够提升设计的灵活性,还能够确保设计满足一系列性能和资源限制条件。

5.1.2 参数定制的步骤与注意事项

要成功地定制XADC IP核的参数,首先需要进入Vivado的设计环境,并确保已经正确地添加了XADC IP核。接下来的步骤通常包括:

  1. 打开IP核定制向导。
  2. 进入参数设置界面。
  3. 根据设计需求选择或输入相应的参数值。
  4. 检查并确认参数设置的合理性。
  5. 生成定制的XADC IP核并集成到设计中。

在参数定制过程中,需注意以下事项:

  • 参数相关性 :理解不同参数之间的相互作用关系,例如分辨率和采样率的改变可能会导致其它参数的调整需求。
  • 资源限制 :关注IP核的资源消耗,特别是FPGA内部资源,如查找表(LUTs)和寄存器的数量。
  • 性能评估 :在参数调整前后,评估对性能的影响,包括数据的准确性和稳定性。
  • 文档记录 :参数定制的每一步都应该详细记录,以便日后的维护和复现。

5.2 定制参数的高级应用

5.2.1 特殊参数定制案例分析

让我们通过一个案例来探讨XADC IP核的参数定制。假设我们正在设计一个需要高精度和高速采样的系统。以下是一些关键参数的定制过程。

首先,提高 DATA_RATE 参数可增加采样频率,但同时也会增加对FPGA资源的需求。例如,将 DATA_RATE 从默认的 250KS/S 调整到 500KS/S ,以满足更高的采样需求。

其次,为了提升测量精度,我们可以调整 AVERAGING 参数,以实现数据的平滑处理。通过增加平均次数,我们能够降低随机噪声,从而获取更准确的测量结果。

在定制过程中,还应考虑 CALIBRATION_MODE 参数。通过设置为 INTERNAL USER ,可以控制校准过程,确保测量结果的准确性。

5.2.2 性能优化与故障排除技巧

在高级定制过程中,性能优化和故障排除是不可或缺的环节。若发现输出数据的准确度不够,可以通过调整 GAIN_SELECT 参数来优化。若发现IP核运行不稳定,可能需要降低采样率或者优化时序参数。

优化过程中,性能分析工具如Vivado的分析仪是十分有用的。这些工具可以帮助我们识别瓶颈和优化潜力。而在故障排除方面,XADC IP核提供了丰富的状态寄存器,可以用来监测内部状态,诊断可能出现的问题。

在进行定制优化时,务必记录下每一步的改变和结果,这对后续的调试工作至关重要。此外,测试是优化过程中的关键环节,应该设置详尽的测试用例来验证性能指标是否达到了预期。通过这些高级技巧,可以确保XADC IP核在满足特定要求的同时,还能达到最优的性能。

6. XADC IP核的设计步骤

6.1 设计前的准备工作

6.1.1 设计需求分析

在开始设计任何系统之前,准确地了解需求至关重要。对于XADC IP核的设计,需求分析涉及多个方面,比如需要监控的模拟信号种类、精度、速度等。设计人员需要与项目团队紧密合作,确保所有的技术要求和功能预期都已被充分理解。

以一个简单的温度监控系统为例,需求分析可能包含以下内容:
- 必须监测的温度范围。
- 监测信号的精度和分辨率要求。
- 是否需要进行实时监控或周期性采样。
- 信号是否需要过滤、放大或转换等预处理。
- 在特定温度阈值下是否需要进行报警或自动控制。

分析这些需求后,设计人员能够确定必要的XADC参数配置,如输入通道、采样速率、报警阈值等。

6.1.2 设计方案的确定

基于需求分析,设计方案将包括所选XADC IP核的配置参数,以及如何在Vivado中集成该IP核的详细步骤。设计方案的确定还应考虑系统的整体架构,包括FPGA的其他功能模块,以确保XADC IP核能够无缝集成。

举个例子,如果设计一个基于FPGA的温湿度监控系统,设计方案可能包括:
- 使用双通道XADC IP核以分别监测温度和湿度传感器输出。
- 根据传感器输出特性配置相应的ADC参数。
- 设计数据处理逻辑以实现实时数据采集和处理。
- 规划数据传输接口,如AXI或SPI,以将数据发送到FPGA上的其他模块或外部设备。

6.2 设计实施与验证

6.2.1 设计实施的步骤与方法

设计实施步骤通常包括在Vivado中集成XADC IP核,并开发相应的Verilog/VHDL代码来与之交互。以下是具体的步骤:

  1. 打开Vivado项目 :载入或创建一个新的FPGA项目。
  2. 添加XADC IP核 :通过IP Catalog添加XADC IP核到设计中。
  3. 配置XADC IP核 :根据设计方案输入参数,如通道选择、报警设置等。
  4. 集成与实现 :编写必要的逻辑代码来集成XADC IP核,并实现设计要求的功能。
  5. 约束文件的编写 :添加约束,如管脚分配,确保硬件连接正确。
  6. 综合与实现 :运行综合和实现流程,生成比特流文件用于FPGA配置。
// 例代码:XADC IP核与FPGA核心逻辑的集成
reg [15:0] temp_value; // 假设温度值存储在16位寄存器中

// XADC IP核配置参数
wire [15:0] xadc_value; // XADC输出值
wire xadc_overrange;    // 超范围指示

// 实例化XADC模块
XADC u0 (
    .VDADO(xadc_value),     // 16位数据输出
    .alarm(),               // 不使用报警输出
    .channel_out(),         // 不使用通道输出
    .channel_value(),       // 不使用通道值输出
    .eoc(),                 // 数据就绪指示
    .eos(),                 // 扫描结束指示
    .channel_addr(),        // 不使用通道地址
    .channel_seq_addr(),    // 不使用通道序列地址
    .converse(),            // 不使用转换控制
    .alarm_out(xadc_overrange), // 超范围输出指示
    .convst(),              // 不使用转换启动
    .daddr(),               // 不使用设备地址
    .den(),                 // 不使用使能
    .di(),                  // 不使用数据输入
    .dwe(),                 // 不使用写使能
    .channel_in(16'b0),     // 不使用通道输入
    .channel_seq_in(4'b0),  // 不使用通道序列输入
    .m_addr(),              // 不使用存储器地址
    .m_din(),               // 不使用存储器数据输入
    .m_dout(),              // 不使用存储器数据输出
    .m_en(),                // 不使用存储器使能
    .m_we(),                // 不使用存储器写使能
    .vp(),                  // 不使用正参考电压输入
    .vn(),                  // 不使用负参考电压输入
    .vauxp(),               // 不使用辅助模拟输入正
    .vauxn(),               // 不使用辅助模拟输入负
    .vref(),                // 不使用参考电压输入
    .user_temp(),           // 用户温度监测输入
    .temp_out(),            // 温度输出
    .vccint(),              // 内部电源输入
    .vccaux(),              // 辅助电源输入
    .vccbram(),             // BRAM电源输入
    .vccpINT(),             // 内部编程电源输入
    .vccpACC(),             // 辅助编程电源输入
    .vccpaux(),             // PAUX电源输入
    .vccdrizzo(),           // DRIzzo电源输入
    .vccdrizz(),            // DRIzz电源输入
    .vpp(),                 // 编程电源输入
    .vpslp(),               // 低功耗电源输入
    .acq '/../'z(1'b0),     // 不使用模拟采集控制
    .ref_en(),              // 不使用参考使能
    .temp_in(),             // 外部温度输入
    .vbat(),                // 不使用电池电源输入
    .bus_struct_in(),       // 不使用总线结构输入
    .bus_struct_out(),      // 不使用总线结构输出
    .reset(),               // 复位信号
    .drp_clk(),             // DRP时钟输入
    .drp_addr(),            // DRP地址输入
    .drp_di(),              // DRP数据输入
    .drp_en(),              // DRP使能输入
    .drp_we(),              // DRP写使能输入
    .drp_do(),              // DRP数据输出
    .drp_rdy(),             // DRP就绪输出
    .drp_clk_out(),         // DRP时钟输出
    .dci_in(),              // 不使用DCI输入
    .dci_out(),             // 不使用DCI输出
    .dci_couple(),          // 不使用DCI耦合控制
    .aux_ref(),             // 辅助参考电压输入
    .temp_p()               // 外部温度监测正输入
);

// 其他逻辑代码以处理XADC数据...

endmodule

6.2.2 设计验证的流程与标准

验证阶段是确保设计按照预期工作的关键阶段。对于XADC IP核的设计,验证流程可能包括以下几个步骤:

  1. 功能仿真 :在不依赖硬件的情况下,使用Vivado提供的仿真工具对整个系统进行测试,确保逻辑正确执行。
  2. 综合后的仿真 :在综合后检查布局布线(Place & Route)的结果,并验证功能的一致性。
  3. 硬件原型验证 :将设计下载到FPGA硬件上,通过实际的硬件测试验证XADC IP核的功能,如使用实际传感器信号。
  4. 持续验证 :在开发过程中不断进行验证,确保每次代码更改或IP核更新后,系统仍然按预期工作。

验证过程中的标准可能包括但不限于:
- 检查XADC输出数据是否在预期的模拟信号范围内。
- 确认信号采样频率是否满足设计规范。
- 验证报警机制是否能够正确响应阈值事件。
- 检查数据流和处理逻辑是否能够正确处理XADC数据。

通过这些步骤和标准,可以确保XADC IP核的设计是准确和可靠的。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:XADC IP核是Xilinx FPGA平台的专用ADC,用于处理和转换模拟信号。本压缩包包含在Vivado环境下设计和仿真XADC IP核的详细指南。通过这些资料,用户可以学习如何配置XADC参数,编写交互代码,以及进行仿真验证和硬件测试。本指南还涵盖了XADC的高精度、多通道输入、温度与电源监控、灵活接口和配置选项等特点。


本文还有配套的精品资源,点击获取
menu-r.4af5f7ec.gif

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐