【VPR】 Command-line - vpr的命令行选项(一)

2023-11-17

目录

一、基本用法

二、命令行详解

2.1、阶段选项(Stage Options)

2.2、图形选项(Graphics Options )

2.3、常规选项(General Options)

2.4、文件名选项(Filename Options )

2.5、电路网表选项(Netlist Options)


一、基本用法

VPR至少需要两个命令行参数:

vpr architecture circuit

architecture 是一个 FPGA 架构描述文件。一个基于 XML 的架构描述语言,用于描述目标 FPGA 架构。

circuit  是一个以 BLIF 格式表示的技术映射电路网表,用于实现。

二、命令行详解

VPR有很多选项。运行 "vpr --help" 将显示所有可用选项及其用法信息。

-h, --help

显示帮助消息,然后退出。

2.1、阶段选项(Stage Options)

如果没有指定 --pack、--place、--route 或 --analysis 选项,则 VPR 将运行所有阶段(装箱、布局、布线和分析)。

--pack

运行装箱阶段

Default: off 默认值:关闭(off)

--place

运行布局阶段

Default: off 默认值:关闭(off)

--route

运行布线阶段。如果布线成功,则还会自动运行分析阶段(analysis)。

Default: off 默认值:关闭(off)

--analysis

运行最终的分析阶段(例如时序、功耗)。

Default: off 默认值:关闭(off)

2.2、图形选项(Graphics Options )

--disp {on | off}

控制是否启用 VPR 的交互式图形界面。图形界面对于检查和调试 FPGA 架构和/或电路实现非常有用。

Default: off 默认值:关闭(off)

--auto <int>

可以设置为 0、1 或 2。这会确定在查看图形后,您需要点击“Proceed”按钮以继续执行的频率。数字越大,程序暂停的频率就越低。

Default: 1 默认值:1

--save_graphics {on | off}

如果设置为开启(on),此选项将自动将 VPR 生成的最终布局和最终布线保存为 PDF 文件,无需任何用户交互。文件名分别为 vpr_placement.pdf 和 vpr_routing.pdf。

Default: off 默认值:关闭(off)

--graphics_commands <string>

一组用分号分隔的图形命令。图形命令必须用引号括起来(例如:--graphics_commands "save_graphics place.png;")。

                save_graphics <file>

                将图形保存到指定的文件(.png/.pdf/.svg)。如果 <file> 中包含 {i},它将被替换为一个整数,每次调用图形时会递增。

                set_macros <int>

                设置布局宏绘图状态。

                set_nets <int>

                设置网路绘图状态。

                set_cpd <int>

                设置关键路径延迟绘图状态。

                set_routing_util <int>

                设置布线利用率绘图状态。

                set_clip_routing_util <int>

               设置是否将布线利用率值裁剪到 [0, 1] 范围内。需要在图像之间保持一致比例时很有用。

                set_draw_block_outlines <int>

                设置是否绘制块周围的轮廓线。

                set_draw_block_text <int>

                设置是否在块上绘制标签文本。

                set_draw_block_internals <int>

                设置块内部绘制的级别。

                set_draw_net_max_fanout <int>

                设置要绘制的网络的最大扇出(如果扇出超过此值,则不会绘制该网络)。

                set_congestion <int>

                设置布线拥塞绘图状态。

                exit <int>

                使用指定的退出码退出 VPR。
实例:


"save_graphics place.png; \

set_nets 1; save_graphics nets1.png;\

set_nets 2; save_graphics nets2.png; set_nets 0;\

set_cpd 1; save_graphics cpd1.png; \

set_cpd 3; save_graphics cpd3.png; set_cpd 0; \

set_routing_util 5; save_graphics routing_util5.png; \

set_routing_util 0; \

set_congestion 1; save_graphics congestion1.png;"

上述命令切换了各种图形设置(例如绘制网络、绘制关键路径),然后将结果保存为 .png 文件。

请注意,在执行这些命令后,绘图状态会被重置为先前的状态。

与交互式图形界面的选项 `<--disp>` 类似,`--auto` 选项控制了指定此选项的命令被调用的频率。

2.3、常规选项(General Options)

--version

显示版本信息,然后退出。

--device <string>

指定要使用架构文件中的哪个设备布局/平面图。

默认值:auto

"auto" 使用满足电路资源需求的最小设备。其他值被认为是架构文件中定义的 FPGA 网格布局部分的设备布局名称。

注意:如果架构中同时包含 <auto_layout> 和 <fixed_layout> 规范,指定一个 auto 设备将使用 <auto_layout>。

-j, --num_workers <int>

控制 VPR 可以使用的并行工作器数量:

1:表示 VPR 将串行执行,即不使用并行工作器。

>1表示 VPR 可以并行执行,最多使用指定的并发数。

0 :表示 VPR 可以与主机机器支持的最大并发数一起执行。

如果没有指定此选项,可以从 VPR_NUM_WORKERS 环境变量中设置;否则将使用默认值。

注意:为了编译 VPR 以允许使用并行工作器,必须在系统中安装 libtbb-dev。

默认值:1

--timing_analysis {on | off}

关闭 VPR 的时序分析。如果关闭时序分析,则无需在架构文件中指定各种时序分析参数。

Default: on 

--echo_file {on | off}

生成关键内部数据结构的回显文件。这些文件通常用于调试 vpr,并且通常以 .echo 结尾。

Default: off 

--target_utilization <float>

设置目标设备利用率。这对应于要使用的设备网格单元的最大目标比例。值为1.0表示将使用适合电路的最小设备。

Default: 1.0 

--constant_net_method {global | route}

指定如何处理常量网络(即驱动到常量值的网络):

global: 将常量网络视为全局网络(不进行布线)。

route: 将常量网络视为普通网络(进行布线)。

Default: global 

--clock_modeling {ideal | route | dedicated_network}

ideal: 将时钟引脚视为理想引脚(即时钟没有布线延迟)。

route: 将时钟网络视为普通网络(即使用区块间布线进行布线)。

dedicated_network: 使用架构的专用时钟网络(实验性功能)。

Default: ideal

--two_stage_clock_routing {on | off}

使用专用时钟网络对时钟网络进行两阶段布线。

第一阶段:从网络源(例如,I/O 引脚)到专用时钟网络的根节点(例如,芯片中心)。

第二阶段:从时钟网络根节点到网络的接收器。

请注意,此选项仅在指定时钟架构时生效,请参考时钟架构格式;在读取路由资源图时(即--read_rr_graph),此选项无效。

Default: off 

--exit_before_pack {on | off}

在开始进行打包之前导致 VPR 退出(用于收集统计信息)。

Default: off 默认值:off 关闭

--strict_checks {on, off}

控制 VPR 是否以严格模式(作为错误)执行某些一致性检查,还是将其视为警告。

通常,这些检查指示目标架构存在问题,或者与 VPR 的内部数据结构/算法一致性存在问题(可能会影响优化质量)。在特定的情况和特定的架构上,这些检查可能过于严格,可以将其关闭。

警告:在关闭此选项时要非常谨慎 - 确保您完全理解为什么出现了问题,以及为什么将其视为警告而不是错误是可以接受的。

Default: on 

--terminate_if_timing_fails {on, off}

控制VPR在布线后是否应终止执行,如果未满足时序要求。

Default: off 默认值:off 关闭

2.4、文件名选项(Filename Options )

默认情况下,VPR会在用户提供的电路名称后附加`.blif`、`.net`、`.place`和`.route`作为文件名,并在工作目录中查找与电路名称相同的SDC文件。使用以下选项可以覆盖此默认的命名行为。

--circuit_file <file>

以BLIF格式表示的技术映射用户电路的路径。

Note:注意:如果指定了`circuit`位置参数,则会将其视为电路名称。

--circuit_format {auto | blif | eblif}

输入技术映射用户电路的文件格式。

auto: 根据文件扩展名推断文件格式(例如,.blif或.eblif)。

blif: 严格的结构化BLIF格式。

eblif:带扩展的结构化BLIF格式。

Default: auto 

--net_file <file>

用户电路打包后的net格式文件的路径。

Default: circuit.net

--place_file <file>

最终布局文件的路径。

Default: circuit.place

--route_file <file>

最终布线文件的路径。

Default: circuit.route

--sdc_file <file>

SDC时序约束文件的路径。

Default: circuit.sdc

--write_rr_graph <file>

将VPR在最后阶段生成的路由资源图以RR Graph文件格式写出。可以使用`--read_rr_graph`选项将输出文件读入VPR中。

`<file>`描述生成的路由资源图的文件名。接受的扩展名为`.xml`和`.bin`,用于以XML或二进制(Cap'n Proto)格式写入图形。

--read_rr_graph <file>

读取名为`<file>`的路由资源图文件,并在布局和布线阶段加载该图形以供使用。文件扩展名应为`.xml`或`.bin`。

路由资源图覆盖了关于开关、节点和边的所有架构定义。其他信息,如网格信息、块类型和段信息,将与架构文件匹配以确保准确性。

可以通过使用`--write_rr_graph`选项获取该文件。

--read_vpr_constraints <file>

从指定的XML文件中读取布局约束,要求打包和布局必须遵守这些约束。

--write_vpr_constraints <file>

根据当前布局将新的布局约束写入指定的XML文件。

--read_router_lookahead <file>

从指定的文件中读取前瞻数据,而不是计算它。

--write_router_lookahead <file>

将前瞻数据写入指定的文件。

--read_placement_delay_lookup <file>

从指定的文件中读取布局延迟查找表,而不是计算它。

--write_placement_delay_lookup <file>

将布局延迟查找表写入指定的文件。

--outfile_prefix <string>

输出文件的前缀。

2.5、电路网表选项(Netlist Options)

默认情况下,VPR会移除缓冲器LUT,并迭代地扫描电路网表以移除未使用的主输入/输出、网络和模块,直到无法再移除为止。

这意味着VPR会对电路网表进行优化,删除不必要的部分以减少资源使用和提高性能。它会首先移除缓冲器LUT,因为它们可能不是必需的,并且可能引入额外的延迟。然后,它会迭代地扫描网表,检查哪些主输入/输出、网络和模块没有被使用,然后将其移除。这可以减少电路的规模和复杂度,从而提高布局和布线的效率。最终,VPR将达到一种状态,无法再移除任何未使用的部分,这时候优化过程结束。

--absorb_buffer_luts {on | off}

控制是否将以线路方式编程的LUT(即实现逻辑恒等的LUT)吸收到下游逻辑中。

这个选项控制是否将作为线路(实现逻辑恒等性)编程的LUT合并到下游逻辑中。当一个LUT被编程为实现逻辑恒等性时,它的输出始终与输入相同。如果这个选项被启用,VPR会尝试将这样的LUT与其下游逻辑合并,从而减少LUT的数量和延迟。这种优化可以提高电路的效率和性能。

通常情况下,上游工具会在BLIF电路中引入缓冲LUT,以便对信号进行重命名(类似Verilog中的assign语句)。吸收这些缓冲器可以减少实现电路所需的LUT数量。

偶尔会出于其他目的插入缓冲LUT,此选项可用于保留它们。禁用缓冲吸收也可以改善输入和后综合网表/SDF之间的匹配。

这意味着禁用缓冲吸收功能可以保留原始电路中插入的缓冲器,而不会将其合并到后续的逻辑中。这在某些情况下可能是有意义的,例如当需要与原始的综合后网表或时序约束进行精确匹配时。禁用缓冲吸收功能可以确保原始电路的结构和逻辑不被改变,以满足特定的需求。

Defaulton 

--const_gen_inference {none | comb | comb_seq}

控制输入电路中常量生成器的推断/检测方式。在时序分析过程中,不会考虑常量生成器及其驱动的信号。

none: 不进行常量生成器的推断。实际上为常量的信号将被视为非常量。

comb: VPR将从没有非常量输入的组合逻辑块中推断常量生成器(始终是安全的)。

comb_seq: VPR将从仅具有常量输入的组合逻辑块和时序逻辑块中推断常量生成器(通常是安全的)。

注意:在罕见情况下,`comb_seq` 可能会错误地将某些块识别为常量生成器。这只会发生在时序电路原语具有完全独立于任何数据输入的内部状态演化的情况下(例如,硬化的 LFSR 块、嵌入式热传感器)。

Defaultcomb_seq

--sweep_dangling_primary_ios {on | off}

控制是否对电路中的孤立主输入和主输出(即不驱动任何信号,也不被任何信号驱动)进行清理和从电路中移除。

这个选项控制是否对那些在电路中没有连接到其他信号的主输入和主输出进行清理和移除操作。通常,这些孤立的主输入和主输出是无效的,因此将它们从电路中移除可以减少电路的复杂性和冗余。

禁用对主输入/输出的清理可以改善输入和后合成网表之间的匹配。这在进行形式验证时通常很有用。通过保留未连接的主输入/输出,可以更好地比较原始电路和后综合电路之间的结构和逻辑。

Defaulton 

--sweep_dangling_nets {on | off}

控制是否清理悬空网络(即不驱动或不被其他信号驱动的网络)并将其从电路网表中移除。

Defaulton

--sweep_dangling_blocks {on | off}

控制是否清理悬空的逻辑块(即不驱动任何其他信号的块)并将其从电路网表中移除。

Defaulton

--sweep_constant_primary_outputs {on | off}

控制是否清理由常量值驱动的主输出,并将其从电路网表中移除。

当设置为启用时,该选项将删除由常量值驱动的主输出。这些主输出可能是不必要的,因为它们始终具有固定的值,不会对电路的功能产生影响。这样做可以减少电路的规模和复杂性,提高布局和布线的效率。但需要注意,如果在后续的分析或验证中需要使用这些主输出,可能需要禁用该选项以保留它们。

Defaultoff

--netlist_verbosity <int>

控制网表处理的详细程度(常量生成器检测、被删除的网表组件)。较高的值会产生更详细的输出。

Default1

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【VPR】 Command-line - vpr的命令行选项(一) 的相关文章

  • 数字IC手撕代码-兆易创新笔试真题

    前言 本专栏旨在记录高频笔面试手撕代码题 以备数字前端秋招 本专栏所有文章提供原理分析 代码及波形 所有代码均经过本人验证 目录如下 1 数字IC手撕代码 分频器 任意偶数分频 2 数字IC手撕代码 分频器 任意奇数分频 3 数字IC手撕代
  • Verilog的奇技淫巧[更新中]

    1 Verilog常用的数据选择语句vect a b 或vect a b 转载自 MDY常用的数据选择语句Verilog明德扬论坛 Powered by Discuz vect为变量名字 a为起始位置 加号或者减号代表着升序或者降序 b是进
  • DDR的VTT有源端接和无源端接(slua886a笔记)

    DDR的VTT有源端接和无源端接 slua886a笔记 背景 对于DDR的VTT端接 一直有说法是有源端接可降低功耗 之前一直没仔细理解其中原因 现在找了些相关的资料来介绍和对比有源和无源端接 理解有源端接的优点和降低功耗的原理 主要基于读
  • MIPI D-PHY介绍(二) FPGA

    MIPI D PHY介绍 二 FPGA 随着移动设备的广泛普及 MIPI D PHY作为其最主要的物理层标准之一 被越来越多地使用在各种嵌入式系统中 本文将详细介绍MIPI D PHY的工作原理和在FPGA设计中的实现方法 MIPI D P
  • PLL时钟约束

    方法 1 自动创建基时钟和 PLL 输出时钟 例 derive pll clocks 这一方法使您能够自动地约束 PLL 的输入和输出时钟 ALTPLL megafunction 中指定的 所有 PLL 参数都用于约束 PLL 的输入和输出
  • J-Link仿真器与JTAG和SWD下载与接线

    目录 1 JTAG 1 1JTAG今天被用来主要的三大功能 1 2JTAG引脚 1 3可选引脚 2 SWD 2 1 SWD引脚 2 2 可选择引脚 2 3 JTag和SWD模式引脚定义 3 J Link仿真器 4 IAR与MDK配置两种下载
  • 用Vscode编辑verilog代码配置

    这篇教程感觉很详细了 我这里分享一下vscode和插件的安装包链接 都是官网下载的 放心食用 用VSCode编辑verilog代码 iverilog编译 自动例化 自动补全 自动格式化等常用插件 链接 https pan baidu com
  • 最详细的Vivado安装教程

    V i v a d o 安 装
  • 跨时钟域处理方法(一)——打拍

    一 说明 处理跨时钟域的数据可以分为单bit数据和多bit数据 而打拍的方法主要常见于处理单bit数据的跨时钟域问题 打拍的本质是通过添加寄存器 对输入的数据进行延拍 其主要目标是消除亚稳态的影响 常见的是打2拍 也就是添加2级寄存器 二
  • 上拉电阻和下拉电阻

    一 定义 上拉电阻 将一个不确定的信号 通过一个电阻与电源VCC相连 固定在高电平 下拉电阻 将一个不确定的信号 通过一个电阻与地GND相连 固定在低电平 二 作用 提高输出信号驱动能力 确定输入信号电平 防干扰 限流 阻抗匹配 抗回波干扰
  • 握手2倍速率进,一倍速率出[verilog]

    module two to one parameter WORD LEN 33 input clk input arst input 2 WORD LEN 1 0 i din input i din valid output o din r
  • FPGA硬件工程师Verilog面试题(基础篇二)

    作者简介 大家好我是 嵌入式基地 是一名嵌入式工程师 希望一起努力 一起进步 个人主页 嵌入式基地 系列专栏 FPGA Verilog 习题专栏 微信公众号 嵌入式基地 FPGA硬件工程师Verilog面试题 二 习题一 多功能数据处理器
  • 关于xilinx BRAM IP的延迟以及流程

    关于RAM IP的延迟 1 选择了output registers 可以在RAM输出端口添加register 也可以在core的输出添加 在primitives添加 降低clock to out到primitive的延迟 在core添加re
  • 【FPGA】面试问题及答案整理合集

    面试问题及答案整理合集 1 硬件描述语言和软件编程语言的区别 2 FPGA选型问题 3 建立时间和保持时间问题 3 亚稳态问题 4 竞争和冒险问题 5 乒乓操作问题 6 同步和异步逻辑电路 7 同步复位和异步复位 8 MOORE 与 MEE
  • ALLEGRO等长时如何将PIN DELAY和VIA长度计算在内

    在PCB设计中 对于时序要求严格的线路 Via和IC pin delay的长度必须得到重视 通过下面的操作 可将Via和Pin delay加入到线路长度的计算中 1st 计算Pin delay 打开Constraint Manager 选择
  • 【FPGA多周期时序约束详解】- 解读FPGA多周期时序约束的全过程

    FPGA多周期时序约束详解 解读FPGA多周期时序约束的全过程 FPGA作为数字电路设计的常见工具 其设计中必然会遇到时序约束的问题 而多周期时序约束更是FPGA设计中不可避免的难点之一 本文将详细介绍FPGA多周期时序约束的全过程 并结合
  • 时序约束理解

    异步配置信息 跨时钟域 配置信息一般set max delay按照3delay来约束 2 异步回读 rst clear信号 设置set false path 放松时序约束要求 不应分析设计中的逻辑路径 因为不关心点到点时序要求
  • 无线网络管理系统与无线路由器的区别

    第5章 波形发生器软件设计 本章我们将介绍系统的软件设计 系统中控制软件占有很重要的地位 它不仅要产生波形数据 控制波形的发生 还要控制显示电路和键盘电路 因此系统软件的好坏直接决定着系统的功能和稳定 5 1软件的总体结构 在本系统中 由于
  • [Verilog] Verilog 基本格式和语法

    主页 元存储博客 全文 3000 字 文章目录 1 声明格式 1 1 模块声明 1 2 输入输出声明 1 3 内部信号声明 1 4 内部逻辑声明
  • Matlab图像处理系列——图像复原之噪声模型仿真

    微信公众号上线 搜索公众号 小灰灰的FPGA 关注可获取相关源码 定期更新有关FPGA的项目以及开源项目源码 包括但不限于各类检测芯片驱动 低速接口驱动 高速接口驱动 数据信号处理 图像处理以及AXI总线等 本节目录 一 图像复原的模型 二

随机推荐

  • C#中await Task.Run 返回值

    using System using System Text using System Collections Generic using System Threading using System Threading Tasks name
  • Cadence Allegro PCB设计88问解析(十一) 之 Allegro中文件自动保存时间设置

    一个学习信号完整性的layout工程师 大家在设计图纸或者编辑文档时 最常点击的应该就是保存图标了 谁也不想因为软件闪退 电脑断电等情况 我们的劳动成果就白白的消失了 在我们用Allegro进行PCB设计 就会有一个自动保存的功能 每隔一段
  • 一文看懂L1、L2正则化的区别

    正则化是一种为了减小测试误差的行为 有时候会增加训练误差 我们在构造机器学习模型时 最终目的是让模型在面对新数据的时候 可以有很好的表现 当你用比较复杂的模型比如神经网络 去拟合数据时 很容易出现过拟合现象 训练集表现很好 测试集表现较差
  • 牛顿迭代法求解二元非线性方程组,C++代码实现

    整体迭代公式就是 上式中 为的雅克比矩阵 为雅克比矩阵的逆矩阵 实例 求解的x和y的解 上面求根问题可转化为的问题 即可用牛顿迭代法求解此二元非线性方程 具体求解过程代码如下所示 线性方程组中方程个数 未知量个数 include
  • 推荐书目

    深入理解计算机系统 原书第2版 作 者 美 Randal E Bryant David R O Hallaron 著 出 版 社 机械工业出版社 图书定价 99 00 准备看看 C C 从入门到高手所有必备PDF书籍收藏 喜欢的朋友支持下吧
  • 经典的python基础练习

    假设市面上有4种面值 硬币 20元 10元 5元 1元 输入一个钱数 能够使用最少的硬币凑成这个钱数 def mon money ss 0 0 0 0 coinKinds 20 10 5 1 for i in range len coinK
  • 代码覆盖率与测试覆盖率你选哪个?

    目录 一 概念 二 代码覆盖率 三 为什么要执行代码覆盖率 四 如何执行代码覆盖率 五 代码覆盖率工具 六 测试覆盖率 七 如何执行测试覆盖率 八 测试覆盖率工具 九 代码覆盖率与测试覆盖率 哪一个 十 测试覆盖范围的优势 十一 测试覆盖范
  • 2017年全国数学建模国赛B题题目、解题思路、matlab代码(三)

    题目 移动互联网的迅速发展使得任务完成新模式 众包 的实现成为可能 这种自助式服务模式以移动互联网为劳务众包平台 通过线上 APP 建立起需要商业检查和信息搜集的企业与可以完成规定任务的大众之间的联系 从而大大节省企业调查成本 有效地保证调
  • 设计模式读书笔记

    希望通过记录一些关键点做到实际开发中能够得心应手 目录 状态模式 策略模式 观察者模式 装饰者模式 适配器模式 外观模式 抽象工厂模式 工厂方法模式 单例模式 命令模式 模板方法模式 迭代器模式 组合模式 代理模式 建造者模式 桥接 Bri
  • c语言,通讯录

    目录 test c contact h contact c 我们先创建三个不同的文件 分别是主体函数test c 函数实现contact c 和头文件contact h test c 制作一个简单的目录即可 记得包含头文件 include
  • tensorflow人脸识别_「深度学习」用TensorFlow实现人脸识别(附源码,快速get技能)...

    本文将会带你使用python码一个卷积神经网络模型 实现人脸识别 操作难度比较低 动手跟着做吧 让你的电脑认出你那帅气的脸 由于代码篇幅较长 而且最重要的缩进都没了 建议直接打开源码或者点击分享 gt 复制链接 然后到浏览器里观看 执行顺序
  • qt之CheckBox选中与未选中的使用

    引言 给大家推荐一个超好用的软件 此软件也是优秀博主开发 主要是针对在我们开发过程中会不断的收集资料 而经过时间的洗礼 这些资料慢慢变得庞大起来 但是就出现了个问题 你2年前收集的资料 你在某天打开发现只有一个文件名 根本不知道具体里面干了
  • Ubuntu 16.04切换Intel集显为Nvidia独显教程

    在安装完Ubuntu后 会出现屏幕显示不正常 这时候可能是没有用到NVIDIA的独显 而是用的intel的集成显卡 一 检查 由于之前集成显卡的时候没有截图 大致下图上图形为llvmpipe LLVM 6 0 256 bits 的信息 没有
  • 17个面向Web 开发人员的杀手级网站,值得你收藏

    保持网站方便可能是最终的生产力技巧 以下是我用来让我的生活更轻松的一些最好的网站 让我们一起来看看它们 1 图片API 地址 https source unsplash com 世界上最强大的照片引擎 Unsplash API 是一种现代
  • 解题思路-LeetCode第55题:跳跃游戏

    解题思路 LeetCode第55题 跳跃游戏 题目描述 给定一个非负整数数组 你最初位于数组的第一个位置 数组中的每个元素代表你在该位置可以跳跃的最大长度 判断你是否能够到达最后一个位置 示例 1 输入 2 3 1 1 4 输出 true
  • 数值类型转换Number()、parseInt()、parseFloat()

    在开发中踩了一个坑 在进行两个字符串类型的值比较时 忘记转换成数值类型导致错误 所以借此正好整理下数值类型转换的几种方式的比较与区分 Number parseInt parseFloat 的比较区分 Number 1 如果传入的是数值类型
  • 毕业五年,从月薪3K到年薪50W+,需要掌握哪些核心技能?(c/c++研发岗)

    作为一个程序员 随着工作年限的不断增长 感觉自己的技术水平与自己的工作年限严重不符 想跳槽出去换个新环境吧 又感觉自己的能力达不到心仪公司的标准 即使投了简历也没人来通知自己面试 就这样在原来的公司一天天的混日子 时间久了 感觉自己废了 就
  • 微信小程序怎么改变默认的打开页面?

    刚开始接触微信小程序 本来想要打开一个新页面而不是用原来的 这个页面 每次编译之后怎么才能让默认打开的页面不是这个页面而是我指定的页面呢 就去找到app json 把想指定的页面放到第一个 那么默认打开的首页就是你指定的页面了 这是来源于官
  • 两行Python代码调整视频的亮度

    老猿Python博文目录 一 引言 最近看到好几篇类似 n行Python代码 的博文 看起来还挺不错 简洁 实用 传播了知识 带来了阅读量 撩动了老猿的心 决定跟风一把 推一个 n行Python代码系列 文章 对于视频中的画面 有时出于特定
  • 【VPR】 Command-line - vpr的命令行选项(一)

    目录 一 基本用法 二 命令行详解 2 1 阶段选项 Stage Options 2 2 图形选项 Graphics Options 2 3 常规选项 General Options 2 4 文件名选项 Filename Options 2