Vivado ILA核实战:从配置到波形捕获的全流程解析

Integrated LogicAnalyzer v6.2 (Vivado ILA使用方法) 阅读详情

1. 初识ILA:你的FPGA“示波器”

刚接触FPGA开发的朋友,可能都有过这样的经历:代码在仿真里跑得飞起,波形图完美无缺,可一旦下载到板子上,LED就是不亮,串口就是没数据,整个人瞬间就懵了。这时候,你需要的不是一个劲地改代码、重新编译、再下载,而是需要一个能“看到”芯片内部正在发生什么的工具。Vivado自带的ILA核,就是干这个的。

你可以把它想象成一块焊在FPGA芯片内部的、专属于你的数字示波器或者逻辑分析仪。以前用ISE的朋友可能更熟悉它的前身——ChipScope。到了Vivado时代,它升级并更名为ILA(Integrated Logic Analyzer,集成逻辑分析仪)。它的核心功能就是实时捕获你设计的内部信号,并把波形图展示在你电脑屏幕上,让你能像做仿真一样,直观地观察硬件实际运行时的信号跳变、数据流和时序关系。这比单纯靠LED闪烁或者串口打印来猜问题,效率高了不止一个量级。

我刚开始用的时候,也觉得这玩意儿配置起来有点麻烦,不如仿真直接拖信号方便。但真正用熟之后才发现,在线调试是连接理想(仿真模型)与现实(物理硬件)的桥梁。很多问题,比如时钟域 crossing 没处理好产生的亚稳态、复位信号释放的时机不对、或者实际物理延迟导致的时序违例,在理想的仿真环境里可能被掩盖了,但在硬件上会暴露无遗。ILA就是帮你抓住这些“幽灵”问题的猎手。

那么,ILA适合谁用呢?如果你是FPGA初学者,正在做第一个流水灯实验,我强烈建议你从这一步就开始用ILA。不要觉得流水灯简单就不需要,用它来看计数器是怎么累加的、比较条件何时满足,能帮你建立最直接的硬件时序概念。对于正在开发复杂项目的工程师,ILA更是调试总线协议(如AXI、SPI)、验证算法模块(如滤波器、编码器)输出、排查间歇性故障的必备利器。说白了,只要你的设计需要下载到板子上运行,ILA就是你不可或缺的调试伙伴。

2. 手把手配置:从IP核到代码集成

光说概念没意思,咱们直接动手,用一个最经典的例子——流水灯,来走一遍完整的ILA配置流程。这个例子足够简单,但五脏俱全,能覆盖ILA使用的核心步骤。

2.1 准备你的设计源码

首先,我们得有个要观察的设计。下面是一个简单的LED闪烁模块,使用50MHz时钟,让4个LED每秒钟整体翻转一次(亮变灭,灭变亮)。

module pl_led(
    input sys_clk,     // 50MHz系统时钟
    input rst_n,       // 低电平有效复位
    output reg [3:0] led // 4位LED输出
);

parameter MAX_CNT = 32'd49_999_999; // 50MHz时钟下,计数50M次就是1秒
reg [31:0] timer_cnt;               // 32位计时计数器

// 计数器逻辑
always @(posedge sys_clk or negedge rst_n) begin
    if(!rst_n) begin
        timer_cnt <= 32'd0;
    end else begin
        if (timer_cnt < MAX_CNT)
            timer_cnt <= timer_cnt + 32'd1;
        else
            timer_cnt <= 32'd0;
    end
end

// LED控制逻辑
always @(posedge sys_clk or negedge rst_n) begin
    if(!rst_n) begin
        led <= 4'b0000;
    end else begin
        if(timer_cnt == MAX_CNT)
            led <= ~led; // 到达计数值时,LED取反
        else
            led <= led;
    end
end

endmodule

代码逻辑很清晰:timer_cnt 从0累加到49999999,然后归零,循环往复。每次归零的瞬间,led 信号取反,实现1秒翻转。我们现在想用ILA实时观察两个信号:一是32位的 timer_cnt 计数器值,看看它是不是真的在规律累加;二是4位的 led 信号,抓取它翻转的精确时刻。

2.2 在IP Catalog中添加并配置ILA核

这是核心步骤,很多新手在这里容易搞懵。别怕,我们一步步来。

  1. 在Vivado左侧的 IP Catalog 窗口上方的搜索框里,直接输入 “ila”。你应该会看到一个叫 “ILA (Integrated Logic Analyzer)” 的IP核,双击它。

  2. 这时会弹出ILA的配置界面。第一个标签页 “General Options” 主要是全局设置:

    • Component Name:给你的ILA实例取个名字,默认ila_0就行,也可以改成ila_led_debug之类有意义的。
    • Number of Probes:这是关键!探针(Probe)数量。一个探针对应一个你想观察的信号(或一组总线)。我们想观察timer_cnt和led,所以这里填 2。
    • Sample Data Depth:采样深度。这个值决定了ILA能捕获多长时间的波形。深度越大,能看到的历史波形就越长,但消耗的FPGA块存储器(BRAM)资源也越多。对于我们这个慢速的流水灯,1024或2048就足够了。如果是抓高速突发数据,可能需要设置到8192甚至更高。
    • Trigger Port:触发端口。我们稍后再细说,先保持默认。
    • Input Pipe Stages:输入管道级数,用于改善时序,初学者保持0即可。
  3. 切换到 “Probe_Ports” 标签页。这里配置每一个探针的细节。

    • PROBE0:我们打算用它来观察32位的timer_cnt。所以,将 “Probe Width” 修改为 32。
    • PROBE1:用来观察4位的led信号。将 “Probe Width” 修改为 4。
    • 其他高级选项,比如是否标记为时钟、是否启用数据有效性等,暂时不用管。

配置完成后,界面大致如下表所示:

配置项PROBE0 (对应 timer_cnt)PROBE1 (对应 led)
探针宽度(Probe Width)324
初始触发条件(Initial Trigger)可保持默认可保持默认
数据端口类型(Data Same As Trigger)通常是(表示此信号既作为数据被采集,也可用于触发)通常是

注意:探针的顺序(PROBE0, PROBE1)在这里配置时就要想好,后续在代码里实例化时需要严格对应。一个常见的坑是这里配置了3个探针,代码里只连了2个,会导致综合错误。

  1. 点击 “OK”,Vivado会提示你生成输出产品。点击 “Generate”。稍等片刻,在 “Design Runs” 或 “Sources” 窗口的IP Sources下,你就能看到生成的ILA核了。

2.3 在代码中实例化ILA核

IP核配置好只是生成了一个“模块”,我们还需要把它像调用子模块一样,连接到我们的主设计里。

  1. 在“Sources”窗口,找到刚刚生成的ILA核(例如 ila_0),展开它,找到 “Instantiation Template” 下的 “ila.veo” 文件。双击打开,里面就是ILA模块的实例化模板代码。
  2. 把这部分模板代码拷贝到你的 pl_led 模块末尾,在 endmodule 之前。然后,将模板中的端口信号连接到我们实际想观察的信号上。
module pl_led(
    input sys_clk,
    input rst_n,
    output reg [3:0] led
);
// ... (之前的计数器逻辑和LED逻辑代码保持不变) ...

// ********** 添加ILA实例化代码 **********
ila_0 your_ila_instance_name (
    .clk(sys_clk),       // ILA的工作时钟,必须与被测信号同步
    .probe0(timer_cnt),  // 连接到32位计数器,对应配置中的PROBE0
    .probe1(led)         // 连接到4位LED,对应配置中的PROBE1
);
// **************************************

endmodule

提示:实例化模块名(ila_0)和端口名(.clk, .probe0)必须严格遵循模板。连接时最关键的是时钟:ILA的 .clk 必须连接到与被观测信号(timer_cnt, led)同步的时钟域,这里就是 sys_clk。如果接错了时钟,采样的数据全是乱码。

  1. 保存文件,然后重新运行 “Synthesis”(综合)和 “Implementation”(实现)。最后生成新的比特流文件(“Generate Bitstream”)。这一步会将ILA核的调试逻辑与你的用户设计一起,编译进同一个FPGA配置文件里。

3. 硬件连接与波形捕获实战

比特流生成成功后,我们就从“软件开发”进入了“硬件调试”环节。这部分操作是和你的实际开发板紧密互动的。

3.1 连接硬件并下载配置

  1. 用JTAG或USB线将你的FPGA开发板与电脑连接好,给板子上电。
  2. 在Vivado左侧流程管理器下方,找到 “Open Hardware Manager” 并点击。如果“Hardware Manager”窗口没有自动打开,可以在菜单栏选择 Window -> Hardware Manager。
  3. 在Hardware Manager中,点击 “Open Target”,然后选择 “Auto Connect”。Vivado会自动扫描连接的JTAG链,找到你的FPGA芯片。对于Zynq-7000系列,你可能会看到两个设备:一个ARM处理器(xc7z020)和一个FPGA(xc7z020_1)。我们的设计在FPGA部分,所以通常选择后者。
  4. 右键点击识别到的FPGA设备(例如 xc7z020_1),选择 “Program Device…”。在弹出的对话框中,确保比特流文件(.bit)路径正确,务必勾选“Debug probes files” 下的 .ltx 文件。这个 .ltx 文件包含了ILA探针与FPGA内部网络的映射关系,没有它,硬件管理器就不知道去哪里抓信号。点击 “Program”。

下载完成后,你会看到Vivado界面大变样,自动弹出了调试窗口。主区域会出现一个类似仿真波形的界面,但现在是空的。左侧是捕获到的信号列表(对应我们添加的timer_cnt和led),右侧是触发条件设置面板。

3.2 设置触发条件与捕获波形

如果直接点击运行(那个绿色的三角形“Run Trigger”按钮),ILA会立即开始采样,并在采样深度用完后停止,显示一段随机时刻的波形。这通常不是我们想要的。我们更需要的是捕获特定事件发生时的波形,这就需要设置触发条件。

触发,就是给ILA一个“开始记录”的命令。比如,我们想抓取LED翻转的那一瞬间,前后各一段时间内的波形。

  1. 在波形窗口的信号列表中找到 timer_cnt,点击它旁边的 “+” 号,可以展开其所有位,也可以直接对整体值进行操作。
  2. 在窗口下方的触发条件设置区域,你会看到 probe0(即timer_cnt)和 probe1(即led)。我们可以设置:当 timer_cnt 等于 最大值 49999999 时,触发捕获。
    • 在 probe0 的条件框里,选择比较运算符 “==” (等于)。
    • 在值(Value)的输入框里,选择进制(比如十进制),然后输入 49999999。
  3. 设置好后,点击工具栏上绿色的 “Run Trigger” 按钮(或者三角形图标)。此时,ILA核心进入预触发状态,它会持续监视FPGA内部的信号,但并不立即存储。一旦 timer_cnt 满足等于49999999的条件,触发器立刻启动,ILA会将触发点前后(取决于采样深度和触发位置设置)的波形数据保存下来,并上传到电脑显示。

你会在波形窗口中看到,timer_cnt 的波形从0逐步增长到最大值,在最大值处有一条红色的垂直虚线,这就是触发点(Trigger Point),标记着条件满足的时刻。同时,你可以清晰地看到,就在这条红线处,led 信号的4位同时发生了翻转(例如从4‘b0000变为4’b1111)。这完美验证了我们的设计逻辑。

注意:触发条件可以设置得非常复杂,比如多个信号组合(与、或)、边沿检测、计数器(在某个条件满足N次后才触发)等。这对于捕获那些难以复现的偶发bug极其有用。例如,你可以设置当“FIFO满信号为高”且“写使能有效”时触发,来抓取溢出的瞬间。

4. 进阶技巧与避坑指南

掌握了基本流程,你就算入门了。但要成为调试高手,还得知道下面这些实战技巧和常见坑点,这都是我踩过雷、吃过亏才总结出来的经验。

4.1 优化ILA配置以节省资源

ILA消耗的主要是BRAM和触发器(FF)资源。在资源紧张的设计中,需要精打细算:

  • 按需设置采样深度:不要无脑设最大。抓慢速控制信号,256或512可能就够了。抓高速数据流,才需要8192甚至更深。你可以先设小一点,如果抓不到想要的数据段,再逐步调大。
  • 控制探针数量和宽度:只添加你真正需要观察的信号。对于宽总线,可以考虑只连接其中关键的几位作为触发条件,或者使用**数据端口(Data Port)与触发端口(Trigger Port)**分离的高级模式。在ILA IP配置中,你可以设置某些探针仅用于触发(不存储数据),这能节省大量BRAM。
  • 使用标记时钟(Mark as Clock):如果某个探针信号本身是时钟,可以将其标记为时钟。ILA会对其进行特殊的同步处理,有时能优化资源。
  • 共享时钟:确保ILA的时钟与被测时钟同步,但不必为每个时钟域都例化一个ILA。有时可以通过适当的时钟域转换后,再用一个主时钟域的ILA来观察。

4.2 复杂触发条件的设置

简单的等于、不等于条件已经很强大了,但ILA的能力远不止于此。在触发设置窗口,点击“+”号可以添加多个条件,并通过逻辑组合(AND, OR, NOT)将它们关联起来。

场景举例:调试一个UART接收模块。你想抓取“当接收到的字节是0x55(同步头),并且奇偶校验错误标志拉高”的异常情况。

  1. 添加探针:rx_byte (8位),parity_error (1位)。
  2. 设置触发条件:(rx_byte == 8‘h55) AND (parity_error == 1’b1)。
  3. 点击运行。这样,只有当这两个条件同时满足时,ILA才会捕获波形,帮你精准定位问题。

你还可以使用触发序列(Trigger Sequencer),设置多级触发状态机。比如“状态1:等待帧开始信号;状态2:在帧开始后,等待第5个数据时钟;状态3:在第5个时钟检查数据是否为特定值”。这对于调试复杂的通信协议帧非常有效。

4.3 调试中的常见问题与解决思路

  • 问题一:下载后,Hardware Manager里没有出现调试窗口,或者信号列表是空的。

    • 检查:下载时是否勾选并正确加载了 .ltx 文件?这个文件必须和 .bit 文件来自同一次实现(Implementation)过程。如果你修改了ILA配置或探针连接,必须重新综合、实现、生成比特流和新的 .ltx 文件。
    • 检查:代码中ILA实例化的时钟(.clk)是否连接正确?这是最高频的错误。时钟必须稳定且与被测信号同源同步。
  • 问题二:能抓到波形,但数据看起来是乱码或静止不变。

    • 检查:探针位宽是否匹配?如果你在IP配置里将某个探针设为8位,但代码里连接了一个32位信号,那么ILA只会采集该信号的低8位,高位数据你看不到,可能会误以为数据没变化。
    • 检查:触发条件是否永远无法满足?比如你设置 timer_cnt == 50000000,但这个计数器最大值是49999999,条件永远为假,ILA就会一直等待,你看到的波形可能是上次捕获的旧数据或者全零。可以尝试先将触发条件设为“无条件(Always)”,看是否能抓到连续变化的波形,以确认ILA基础功能正常。
  • 问题三:想观察的信号在综合后被优化掉了。

    • 这是最经典的坑! Vivado的综合器非常智能,如果它认为某个中间信号或寄存器对输出没有影响(比如只是内部临时计算值),可能会将其优化(抹除)以节省资源。但ILA需要连接这些网络来采样。
    • 解决:在Verilog代码中,对你需要调试的寄存器或线网类型信号,使用 (* mark_debug = "true" *) 综合属性。例如:
      (* mark_debug = "true" *) reg [31:0] timer_cnt;
      (* mark_debug = "true" *) wire [7:0] internal_data;
      
      这样,综合工具就不会优化这些信号。在之后打开“Synthesized Design”时,你可以通过“Set Up Debug”向导,直接勾选这些标记了的信号来添加ILA探针,这是一种比手动例化ILA IP更灵活的方法,尤其适用于在项目后期临时添加调试信号。
  • 问题四:采样深度不够,看不到完整的感兴趣的事件。

    • 事件持续时间太长,超过了采样深度能覆盖的时间窗口。要么增加采样深度(如果资源允许),要么调整触发点位置。ILA允许你设置触发点在存储窗口中的位置(例如,设置为25%)。这意味着触发点发生后,ILA还会记录之后75%深度的数据。你可以将触发点设在你关注的事件序列的起始位置,这样就能看到更多触发后的波形。

调试本身就是一个“假设-验证-修正”的循环。ILA给了你验证假设的眼睛。刚开始可能觉得步骤繁琐,但形成肌肉记忆后,整个流程——从标记信号、设置触发到分析波形——会变得非常顺畅。遇到硬件行为不符合预期时,别再盲目猜测了,打开ILA,让数据告诉你真相。我自己的习惯是,在任何一个模块的集成测试阶段,都会预先留出调试信号的接口和少量的逻辑资源,因为我知道,在真实的硬件世界里,能看见,远比能想象更重要。

Vivado ILA核实战:从配置到波形捕获的完整指南 本文提供了一份Vivado ILA核从配置到波形捕获的完整实战指南。通过一个LED闪烁案例,详细讲解了ILA IP核的配置、代码例化、硬件连接以及触发设置等关键步骤,帮助FPGA工程师掌握这一强大的在线调试工具,从而高效定位硬件问题。 阅读详情

相关推荐

Vivado IP核实战:5分钟搞定ILA逻辑分析仪配置(附波形调试技巧)

本文详细介绍了Vivado中ILA逻辑分析仪核的高效配置与波形调试技巧,包括快速配置流程、探针信号选择策略、高级触发设置及与FIFO、RAM等IP核的联合调试方法,帮助FPGA开发者提升至少50%的调试效率。

weixin_29196891的博客 423

Vivado-ILA_IP核的配置及使用

首先介绍了什么是逻辑分析仪,以及vivado中的在线逻辑分析仪,包括在Vivado中插入IP核的方法。然后通过呼吸灯的例子,讲解了ILA IP核的配置、综合、例化等几个步骤。

Dorr1996的博客 9536

Vivado ILA调试实战:为什么我的波形死活不出来?从时钟不匹配说起

本文深入解析Vivado ILA调试中时钟不匹配导致波形捕获失败的常见问题。通过分析ILA工作原理、提供系统排查步骤和预防措施,帮助工程师解决'幽灵波形'问题,特别强调JTAG时钟配置与采样时钟的协调关系,提升FPGA调试效率。

weixin_30785593的博客 607

Vivado中ILA(集成逻辑分析仪)的使用

在FPGA设计上板过程中,如果出现问题难以定位具体问题的位置和原因,要观察一些信号的波形,可以使用ILA来捕获关键信号,以便分析问题并快速定位其原因。ILA(Integrated Logic Analyzer),集成逻辑分析仪,与Quqartus 中的 SignalTap II 作用类似。

qq_42224089的博客 2万+

用FPGA的DDS IP核做个信号发生器:从Vivado配置到ILA抓波形实战

本文详细介绍了如何使用FPGA的DDS IP核实现信号发生器,从Vivado开发环境中的IP Catalog配置DDS Compiler IP核,到通过ILA实时捕获和分析波形数据的完整流程。重点讲解了硬件在环调试的工程实践,帮助开发者掌握动态频率调节和波形生成的实用技巧,适用于数字信号处理领域的各种应用场景。

weixin_30572613的博客 472

Vivado ILA调试中时钟配置与波形捕获的关键技巧

本文深入探讨了Vivado ILA调试中时钟配置与波形捕获的关键技巧。针对ILA无法捕获波形的常见问题,核心在于确保调试核心(dbg_hub)获得一个自由运行且信号完整性好的时钟源。文章详细讲解了如何诊断时钟问题、正确配置ILA时钟域,并分析了JTAG时钟频率、.bit/.ltx文件匹配及信号优化等导致波形“失踪”的其他原因,提供了从源头解决问题的系统性方法。

l1k9j8h7g6的博客 217

Vivado:使用 ILA 进行在线调试

Vivado中的ILA(Integrated Logic Analyzer)即集成逻辑分析仪,是一种在线调试工具。ILA允许用户在FPGA上执行系统内的调试,通过实时抓取内部数字信号的波形,帮助我们分析逻辑错误的原因,从而更有效地进行debug。

2303_76814451的博客 2万+

告别仿真卡顿!用Vivado的ILA核做“硬件断点”实时抓波形,调试效率翻倍

本文深入探讨了Vivado ILA核在FPGA硬件调试中的革命性应用,通过实时波形捕获技术显著提升调试效率。文章详细解析了ILA核相比传统仿真方法的优势,包括真实环境监测、纳秒级响应和深度存储能力,并提供了高级配置策略与多工具联合作战的实用技巧,帮助开发者快速定位硬件问题。

weixin_42554408的博客 420

Vivado使用IP核创建ILA调试环境

1.在IP核中找到ILA2.General Options(常规选项)主要有如下三部分:1.Monitor Type:ILA 探针接口类型设置,ILA 探针接口有两种类型,Native 与 AXI。Native 是普通接口模式;AXI 是 AXI 接口模式,用于调试 AXI 接口信号。Native 通常是用来测量电平或一定位宽信号,AXI 就比较明显了直接测量 AXI 总线的信号。这里主要测试 led 信号,所以只需要用 Native 模式。

qq_47215080的博客 8320

FPGA调试实战:从ILA核配置到波形捕获的完整流程解析

本文详细解析了FPGA开发中集成逻辑分析仪(ILA)的完整调试流程。从ILA IP核的创建与关键参数配置,到在Vivado设计中的例化连接、比特流生成与硬件部署,最后深入讲解了波形捕获、触发设置及高级调试技巧。掌握这一流程能极大提升硬件调试效率,是FPGA开发者必备的核心技能。

weixin_29205061的博客 206

手把手教你用Vivado ILA抓取LED闪烁计数器的波形(附触发设置技巧)

本文详细介绍了如何使用Vivado ILA(集成逻辑分析仪)捕获LED闪烁计数器的波形,包括工程准备、ILA核配置、硬件连接及高级触发技巧。通过实战案例,帮助FPGA开发者高效调试硬件信号,提升开发效率。特别适合需要实时波形分析的工程师。

weixin_30425949的博客 1007

FPGA series # 关于ChipScope的ICON核、ILA核和VIO核

刚入门接触vivado其实是陌生的,陌生之处在于不了解历史。即使是日益更新的技术也是从最初那个0和1一点点垒起来的,每当看到类似于这就是可以这么做,你不用去知道它底层怎么跑的,只要知道怎么使用就行这种话,就想到使用工具会越来越强大,虽然给我们省了很多事,但如果能知道现在的一键里包含以前那么多的过程,也是很有意思的事啊。 说起来也是昨儿调试的结果还可观,今早来了再跑一遍的时候萌生了个好奇,翻书查阅了...

优快云de_的博客 3988

Vivado调试实战:用ILA抓取FIFO IP核的波形,教你一眼看懂full/empty信号时序

本文详细介绍了在Vivado中使用ILA抓取FIFO IP核波形的实战技巧,重点解析full/empty信号的时序关系。通过配置ILA探针、设置触发条件以及分析典型波形,帮助开发者快速定位FIFO读写异常问题,提升FPGA调试效率。特别适用于Xilinx平台的FIFO调试与性能优化。

weixin_33714884的博客 446

Vivado ILA核实战:从配置到精准测量的全流程解析

本文详细解析了Vivado ILA核从配置到精准测量的全流程,包括调试场景搭建、ILA核添加与配置技巧、探针文件生成与管理、硬件部署与设备刷新、触发条件高级配置、波形捕获与分析技巧、性能优化与资源管理以及常见问题排查指南。通过实战案例和实用技巧,帮助FPGA开发者高效利用ILA核进行复杂信号调试,提升开发效率。

weixin_30614109的博客 467

别再手动加信号了!Vivado ILA IP核的保姆级配置与调试全流程(附LED呼吸灯实战)

本文详细解析了Vivado ILA IP核在FPGA调试中的高效应用,从基础配置到高级触发技巧,特别以LED呼吸灯为例展示了非侵入式信号观测的全流程。通过对比传统调试方法,突出ILA IP核在实时性、灵活性和资源优化方面的优势,帮助开发者快速掌握这一革命性调试工具。

weixin_28839601的博客 313

Vivado下ILA使用指南.docx

Vivado下ILA使用指南,

vivado仿真中使用ILA核进行功能调试详解

在Vivado仿真环境下,ILA核是定位逻辑错误、实时观测信号的关键工具。通过本文,你将掌握ILA核的添加、触发条件配置、波形抓取与分析全流程,真正实现对FPGA设计的精准动态调试。结合vivado仿真环境实操,快速定位时序异常与状态机跳变问题。

weixin_35886636的博客 654

Anaconda离线创建python环境

既然是离线创建python环境,就需要有一个已经创建好的python环境。所以我们有两台win10的机器,分别是A和B。两台机器都安装了anaconda。其中A可以连网,因此我们在A上创建好一个python2.7的环境py27,然后将py27移植(安装)到B上。B连不连网都无所谓。 一、机器上A上创建python2.7的环境py27 有两种方法: 方法1:使用Anaconda的图形界面。首先,点击Environments->Create,然后输入要创建的环境名称"py27",然后选择2.7,如图

FY_2018的博客 6787

Vivado ILA调试核实战:如何高效抓取UART缓变信号(附配置截图)

本文详细介绍了如何使用Vivado ILA调试核高效抓取UART缓变信号,重点讲解了窗口模式配置、触发策略优化及波形分析技巧。通过实战案例和配置截图,帮助工程师解决FPGA开发中UART通信调试的常见问题,提升调试效率与存储资源利用率。

weixin_28340315的博客 376

GlobalPlatform Technology Secure Channel Protocol ‘03‘ 标准 - 安全通道协议简介

按照GlobalPlatform Technology Secure Channel Protocol '03' (SCP03)标准,描述了如何利用S-MAC,S-RMAC,S-ENC进行安全通信的过程。

mmmx777的专栏 6093

中小型微服务系统 硬件设备如何部署,QPS大概多少

作为一名合格的开发工程师,不仅仅要在前期开发阶段对业务和技术有深入了解,知道选用哪种合适的技术,业务如何拆分,还要思考后期线上环境,资源,延迟,性能等如何优化维护以及分布式系统一些线上生产的一些问题。 本篇主要针对之前了解的情况对硬件设备资源做一个简单的介绍: 首先分布式系统线上实践问题,我们应该对公司的流量,各个服务,网管,注册中心应该如何部署,部署多少台机器才合适,每台机器的配置如何,每天整体流量有多少,高峰期的请求量有多少,你的整体系统是否扛得住(注:很多公司现在直接使用K8S docker 实现

wangxuelei036的博客 1万+
上一篇: 遥感影像数据集对比:Massachusetts Roads vs DeepGlobe,哪个更适合你的项目?
下一篇: Windows平台下通过Nginx与VLC实现大疆无人机RTMP直播推流全攻略
gitlab7runner
博客等级 码龄4年 78粉丝 1747原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值