静态时序分析:报告命令report_timing详解

相关阅读

静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html?spm=1001.2014.3001.5482


目录

        指定时序路径起点

        指定时序路径经过点

        指定时序路径终点

        指定不报告的路径

        指定路径类型

        指定延迟类型

        指定每个终点报告的最大时序路径数

        指定每个时序组的最大时序路径数

        指定在时序路径中显示输入引脚

        指定显示线网

        指定显示转换时间

        指定显示串扰导致的增量延迟

        指定显示电容

        指定显示有效电容

        指定显示属性值

        指定显示物理信息

        指定最小裕量 

        指定最大裕量

        指定最小延迟

        指定最大延迟

        指定报告时序闭环

        指定启动异步时序弧

        指定精度

        指定不换行

        指定排序顺序

        指定路径组

        指定追踪时序借用

        指定显示时序降额

        指定显示归一化裕量

        指定需要报告的场景

        指定显示温度

        指定显示电压

        指定对于同样的一组时序弧组成的时序路径仅报告最差路径

        指定对于起点和终点相同的时序路径仅报告最差路径

        指定显示差异

        指定忽略不可行路径

        报告中的线网延迟标志


        report_timing命令可以给出时序路径时序分析的详细报告,关于时序路径的定义,可见该文静态时序分析:典型与非典型时序路径的约束详解(一)。需要注意的是,对于该命令而言,时序路径的极性,例如对于两个由同样的一组时序弧组成的时序路径,起点为上升沿翻转和起点为下降沿翻转被认为是不同的时序路径。

        本文针对Design Compiler,但该命令同样存在于PrimeTime、IC Compiler等工具中,它们大致相同,略有差别。report_timing命令的BNF范式(有关BNF范式,可以参考以往文章)为:

report_timing
    [-from from_list | -rise_from rise_from_list | -fall_from fall_from_list]
    [-through through_list] [-rise_through rise_through_list] [-fall_through fall_through_list]
    [-to to_list | -rise_to rise_to_list | -fall_to fall_to_list]
    [-exclude exclude_list | -rise_exclude rise_exclude_list | -fall_exclude fall_exclude_list]
    [-path_type short | full | full_clock | full_clock_expanded | only | end]
    [-delay_type min | min_rise | min_fall | max | max_rise | max_fall]
    [-nworst paths_per_endpoint] [-max_paths max_path_count]
    [-input_pins]
    [-nets]
    [-transition_time]
    [-crosstalk_delta]
    [-capacitance]
    [-effective_capacitance]
    [-attributes]
    [-physical]
    [-slack_greater_than greater_slack_limit] [-slack_lesser_than lesser_slack_limit]
    [-lesser_path max_path_delay] [-greater_path min_path_delay]
    [-loops]
    [-enable_preset_clear_arcs]
    [-significant_digits digits]
    [-nosplit]
    [-sort_by group | slack]
    [-group group_name]
    [-trace_latch_borrow]
    [-derate]
    [-normalized_slack]
    [-scenarios scenario_list]
    [-temperature]
    [-voltage]
    [-unique_pins]
    [-start_end_pair]
    [-variation]
    [-ignore_infeasible_paths]
    //注:该命令的选项和参数顺序任意

指定时序路径起点

        -from选项、-rise_from选项、-fall_from选项指定了需要报告的时序路径的起点列表,每条命令中它们三者只能指定一个(因为这些指定路径的选项表示都要满足,而不是满足其一即可,所以不能即是上升沿也是下降沿)。

        -from选项指定了时序路径的起点,它的参数是一个对象列表,如果有多于一个对象,需要使用引号或大括号包围。对象可以是时钟,代表着时序路径的起点是以该时钟触发的触发器时钟引脚;对象可以是端口,代表着时序路径的起点是该端口;对象可以是引脚,代表着时序路径的起点是该引脚(例如触发器时钟引脚)。

        -rise_from选项指定了时序路径的上升沿起点,它的参数是一个对象列表,如果有多于一个对象,需要使用引号或大括号包围。对象可以是时钟,代表着时序路径的起点是所有以该时钟上升沿触发的触发器时钟引脚(这里要考虑时钟在时钟路径上传播时可能因为单元的单调性出现翻转,即以到达触发器时钟引脚的时钟信号上升沿为准);对象可以是端口,代表着时序路径的起点是该端口的上升沿;对象可以是引脚,代表着时序路径的起点是该引脚(例如触发器时钟引脚)的上升沿。

        -fall_from选项指定了时序路径的下降沿起点,它的参数是一个对象列表,如果有多于一个对象,需要使用引号或大括号包围。对象可以是时钟,代表着时序路径的起点是所有以该时钟下降沿触发的触发器时钟引脚(这里要考虑时钟在时钟路径上传播时可能因为单元的单调性出现翻转,即以到达触发器时钟引脚的时钟信号下降沿为准);对象可以是端口,代表着时序路径的起点是该端口的下降沿。

        默认情况下(不指定以上三类选项):如果设计没有时序约束,则report_timing命令优先报告到输出端口的最长路径;如果设计具有时序约束,且未指定-group选项,则优先报告每个路径组中裕量最差的路径;如果指定了-group选项,则优先报告该路径组中裕量最差的路径。

指定时序路径经过点

        -through选项、-rise_through选项、-fall_through选项需要报告的时序路径的经过点列表,它们可以指定多个,表示依次经过每个列表中的一个对象的时序路径,它们可以以混合使用。

         -through选项指定了时序路径的经过点,它的参数是一个对象列表,如果有多于一个对象,需要使用引号或大括号包围。对象可以是端口,代表着时序路径经过该端口;对象可以是引脚,代表着时序路径经过该引脚。

        -rise_through选项指定了时序路径的上升沿经过点,它的参数是一个对象列表,如果有多于一个对象,需要使用引号或大括号包围。对象可以是端口,代表着时序路径的上升沿经过该端口;对象可以是引脚,代表着时序路径的上升沿经过该引脚。

        -fall_through选项指定了时序路径的下降沿经过点,它的参数是一个对象列表,如果有多于一个对象,需要使用引号或大括号包围。对象可以是端口,代表着时序路径的下降沿经过该端口;对象可以是引脚,代表着时序路径的下降沿经过该引脚。

        默认情况下(不指定以上三类选项):如果设计没有时序约束,则report_timing命令优先报告到输出端口的最长路径;如果设计具有时序约束,且未指定-group选项,则优先报告每个路径组中裕量最差的路径;如果指定了-group选项,则优先报告该路径组中裕量最差的路径。

指定时序路径终点

        -to选项、-rise_to选项、-fall_to选项指定了需要报告的时序路径的终点列表,每条命令中它们三者只能指定一个,并且不能与-fall选项和-rise选项的指定冲突(如已经指定了-fall选项,则只能指定-fall_to选项,因为没有时序路径的终点即是上升沿也是下降沿)。

        -to选项指定了时序路径的终点,它的参数是一个对象列表,如果有多于一个对象,需要使用引号或大括号包围。对象可以是时钟,代表着时序路径的终点是以该时钟触发的触发器数据输入引脚;对象可以是端口,代表着时序路径的终点是该端口;对象可以是引脚,代表着时序路径的终点是该引脚(例如触发器数据输入引脚)。

        -rise_to选项指定了时序路径的上升沿终点,它的参数是一个对象列表,如果有多于一个对象,需要使用引号或大括号包围。对象可以是时钟,代表着时序路径的终点是以该时钟上升沿触发的触发器数据输入引脚(这里要考虑时钟在时钟路径上传播时可能因为单元的单调性出现翻转,即以到达触发器时钟引脚的时钟信号上升沿为准);对象可以是端口,代表着时序路径的终点是该端口的上升沿;对象可以是引脚,代表着时序路径的终点是该引脚(例如触发器数据输入引脚)的上升沿。

        -fall_to选项指定了时序路径的下降沿终点,它的参数是一个对象列表,如果有多于一个对象,需要使用引号或大括号包围。对象可以是时钟,代表着时序路径的终点是以该时钟下降沿触发的触发器数据输入引脚(这里要考虑时钟在时钟路径上传播时可能因为单元的单调性出现翻转,即以到达触发器时钟引脚的时钟信号下降沿为准);对象可以是端口,代表着时序路径的终点是该端口的下降沿;对象可以是引脚,代表着时序路径的终点是该引脚(例如触发器数据输入引脚)的下降沿。

        默认情况下(不指定以上三类选项):如果设计没有时序约束,则report_timing命令优先报告到输出端口的最长路径;如果设计具有时序约束,且未指定-group选项,则优先报告每个路径组中裕量最差的路径;如果指定了-group选项,则优先报告该路径组中裕量最差的路径。

指定不报告的路径

        -exclude选项、-rise_exclude选项、-fall_exclude选项指定了阻止报告的时序路径的起点、经过、终点列表,每条命令中它们三者只能指定一个(因为这些指定路径的选项表示都要满足,而不是满足其一即可,所以不能即是上升沿也是下降沿)。

        -exclude选项指定了时序路径的起点、经过、终点,它的参数是一个对象列表,如果有多于一个对象,需要使用引号或大括号包围。对象可以是端口,代表着时序路径的起点、经过、终点是该端口;对象可以是引脚,代表着时序路径的起点、经过、终点是该引脚;对象可以是线网,代表着时序路径的起点、经过、终点是该线网;对象可以是单元,代表着时序路径的起点、经过、终点在该单元上。 

        -rise_exclude选项指定了时序路径的上升沿起点、经过、终点,它的参数是一个对象列表,如果有多于一个对象,需要使用引号或大括号包围。对象可以是端口,代表着时序路径的起点、经过、终点是该端口的上升沿;对象可以是引脚,代表着时序路径的起点、经过、终点是该引脚的上升沿;对象可以是线网,代表着时序路径的起点、经过、终点是该线网的上升沿;对象可以是单元,代表着时序路径的起点、经过、终点在该单元上的上升沿。 

        -fall_exclude选项指定了时序路径的下降沿起点、经过、终点,它的参数是一个对象列表,如果有多于一个对象,需要使用引号或大括号包围。对象可以是端口,代表着时序路径的起点、经过、终点是该端口的下降沿;对象可以是引脚,代表着时序路径的起点、经过、终点是该引脚的下降沿;对象可以是线网,代表着时序路径的起点、经过、终点是该线网的下降沿;对象可以是单元,代表着时序路径的起点、经过、终点在该单元上的下降沿。 

        此类选项的优先级高于指定时序路径起点、经过点、终点类的选项。此排除规则不适用于时钟路径,不适用于-trace_latch_borrow选项中的借用路径,不适用于时钟引脚。

指定路径类型

        -path_type选项指定报告路径的类型,它的参数可以是short、full、full_clock、full_clock_expanded、only和end中的一个。

        short参数表示仅显示时序路径的起点和终点。

        full参数表示显示完整时序路径(默认情况)。

        full_clock参数表示显示时钟路径,一般用于时钟类型为传播时钟,此时如果不使用该参数,时钟路径上的延迟之和会统计为clock network delay一项。

        full_clock_expanded参数表示显示时钟路径上的主时钟路径,一般用于时钟类型为生成传播时钟,此时如果不使用该参数,时钟路径上的延迟之和会统计为clock network delay一项;即使使用使用full_clock参数,主时钟到传播时钟的延迟会与主时钟源延迟一起统计为clock source latency。关于理想时钟、传播时钟、生成时钟的相关内容,可见该文静态时序分析:ideal_clock、propagated_clock以及generated_clock的关系及其延迟计算规则(一)

        only参数表示仅显示时序路径,不包含数据时间要求和裕量计算。

        end参数表示报告将采用列格式,每条路径占据一行,仅显示路径的终点、总延迟、所需时间和裕量。

指定延迟类型

        -delay_type选项指定报告路径延迟的类型,它的参数可以是min、min_rise、min_fall、max、max_rise、max_fall之中的一个。

        min参数表示报告最小延迟时序路径(一般情况下指的是保持时间检查)。

        min_rise参数表示报告最小延迟时序路径,且时序路径终点为上升沿。

        min_fall参数表示报告最小延迟时序路径,且时序路径终点为下降沿。

        max参数表示最大延迟时序路径(一般情况下指的是建立时间检查)(默认情况)。

        max_rise参数表示报告最大延迟时序路径,且时序路径终点为上升沿。

        max_fall参数表示报告最大延迟时序路径,且时序路径终点为下降沿。

指定每个终点报告的最大时序路径数

        -nworst选项指定每个时序组中的每个终点报告的最大时序路径数,默认为1。

指定每个时序组的最大时序路径数

        -max_paths选项指定默认情况下每个路径组报告的最大时序路径数量,默认与-nworst选项大小相同(当未指定-nworst选项,默认为1)。当 timing_report_fast_mode变量设置为true时,指的是要报告的整个设计中的最大时序路径数量。

指定在时序路径中显示输入引脚

        -input_pins选项指定在时序路径报告中显示输入引脚,默认情况下仅显示输出引脚,使用该选项能显示引脚的线网延迟(通过输出引脚到输入引脚的延迟推断出)。

指定显示线网

        -nets选项指定在时序路径报告中显示线网及其扇出数,默认情况下不显示线网,但该选项无法显示线网延迟,如果要显示线网延迟,需要使用-input_pins选项。

指定显示转换时间

        -transition_time选项指定在时序路径报告中显示引脚的转换时间,默认情况下不显示转换时间。

指定显示串扰导致的增量延迟

        -crosstalk_delta选项指定在时序路径报告中显示输入引脚由串扰导致的增量延迟,默认情况下不显示由串扰导致的增量延迟。

指定显示电容

        -capacitance选项指定在时序路径报告中显示输出引脚的总(集总)电容,默认情况下不显示输出引脚的总电容,如果同时使用了-nets选项,电容值将显示在线网所在的行,而不是输出引脚所在的行。

        总电容为线网的线网电容和引脚电容之和(如果使用线负载模式,则线网电容由线负载模型得到;如果使用拓扑模式,线网电容由DC通过虚拟布线(Virtual Routing)的曼哈顿距离得到),使用report_net命令也可以得到总电容。

        关于线网电容和引脚电容的相关信息,可见该文静态时序分析:SDC约束命令set_load详解,关于拓扑模式的相关信息,可见该文Design Compiler:什么是拓扑技术(Topographical)?。

指定显示有效电容

        -effective_capacitance选项指定在时序路径报告中显示通过Arnoldi方法计算的网络有效电容,默认情况下不显示有效电容,对于每个输出引脚,在所有驱动弧中选择最差情况显示最大的有效电容,如果同时使用了-nets选项,有效电容将显示在线网所在的行,而不是输出引脚的行中。需要注意的是,只有通过Arnoldi方法计算的电容值才会显示。

指定显示属性值

        -attributes选项指定在时序路径报告中显示timing_report_attributes变量中设置的属性值,默认情况下不显示这些属性值,该变量的默认值为{dont_touch dont_use map_only size_only ideal_net infeasible_paths},不支持这些属性外的其他属性,同时要注意这些属性不是所有对象都有,比如只有线网才能拥有ideal_net属性。

指定显示物理信息

        -physical选项指定在时序路径报告中显示引脚的位置以及线网的电容(需要同时使用-nets选项),默认情况下不显示这些物理信息。电容以中括号包围一对数值的形式显示,第一个值表示线网电容,第二个值表示总电容,如果无法确定引脚位置,则引脚所属单元的位置,并以微米为单位提供坐标信息。

指定最小裕量 

        -slack_greater_than选项指定仅报告那些时序裕量大于greater_slack_limit参数的时序路径。需要注意的是,这是一个过滤器选项,是在根据其他选项(例如-nworst选项和-max_paths选项)搜索时序路径后再根据该选项进行筛选。

指定最大裕量

        -slack_lesser_than选项指定仅报告那些时序裕量小于lesser_slack_limit参数的时序路径。需要注意的是,这是一个过滤器选项,是在根据其他选项(例如-nworst选项和-max_paths选项)搜索时序路径后再根据该选项进行筛选。

指定最小延迟

        -greater_path选项指定仅报告那些延迟大于min_path_delay参数的时序路径。需要注意的是,这是一个过滤器选项,是在根据其他选项(例如-nworst选项和-max_paths选项)搜索时序路径后再根据该选项进行筛选。

指定最大延迟

        -lesser_path选项指定仅报告那些延迟小于max_path_delay参数的时序路径。需要注意的是,这是一个过滤器选项,是在根据其他选项(例如-nworst选项和-max_paths选项)搜索时序路径后再根据该选项进行筛选。

指定报告时序闭环

        -loops选项指定仅报告时序闭环的时序路径。

指定启动异步时序弧

        -enable_preset_clear_arcs选项指定启动异步复位/置位时序弧,默认情况下,只有同步时序弧会被考虑。

指定精度

        -significant_digits选项指定时序路径报告中的数值小数点右侧位置,允许的值范围是0到13,默认值为2,使用此选项将覆盖由report_default_significant_digits变量设置的值。

指定不换行

        -nosplit选项指定时序路径报告不会自动换行,即使某个字段的信息超出了列的固定宽度。设计中的大部分信息都被组织成定宽的列(即每一列的宽度是固定的),如果某个字段的内容过长超出当前列的宽度,默认情况下,后面的字段会在下一行显示,并对齐到相应的列位置。如果使用了-nosplit选项,则后面的字段无法对齐,这样做的目的是方便软件从报告中提取信息。

指定排序顺序

        -sort_by选项指定时序路径报告的排序顺序,它的参数可以是group和slack之中的一个。

        group参数(默认情况)表示首先在时序组之间以组名排序,在时序组内以裕量从小到大排序。

        slack参数表示仅按裕量排序。

指定路径组

        -group选项指定需要报告的时序组,该选项不能与-loops选项一起使用。

指定追踪时序借用

        -trace_latch_borrow选项指定起点为透明锁存器的时序路径的报告类型。如果时序路径的起点借用了前一个阶段,使用此选项将导致时序报告显示到达借用锁存器的整个借用路径集,起始于非借用路径或非反转时序环。默认情况下,报告仅显示所有借用阶段中的最后一条路径。

        每个阶段会单独报告,显示借用和借出时间以及阶段的端点。报告中不包括沿着阶段序列借用时间的累计值。-input_pins、-nets、-transition_time、-capacitance和-significant_digits选项适用于所有借用路径的每个阶段,但其余选项(例如-from)仅适用于最后的阶段。

指定显示时序降额

        -derate选项指定在时序路径报告中显示时序降额,默认情况下,不显示降额值。当使用此选项时,-input_pins和-nets选项会自动开启,需要注意的是,输入延迟和理想时钟的网络延迟不会进行降额处理。

        时序降额可以通过set_timing_derate命令设置,这是为了模拟片上变化(OCV)。

指定显示归一化裕量

        -normalized_slack选项指定使用归一化裕量进行收集和排序,归一化裕量通过裕量除以理想化的允许传播延迟得到,使用此选项前需要将timing_enable_normalized_slack变量设置为true。

normalized_slack = path_slack / idealized_allowed_propagation_delay_for_path

        使用理想的时钟边缘来计算时序路径的允许传播延迟,忽略了建立时间、时钟不确定度和时钟延迟。归一化裕量分析可用于确定限制时钟频率的路径,归一化裕量报告会优先列出违反时序余量且允许的时钟周期较少的路径,首先修复这些路径,将对时钟周期的改善效果最大。

        需要注意的是,只要将timing_enable_normalized_slack变量设置为true,即使没有-normalized_slack选项,时序报告中也会有归一化裕量,只是不会按照它进行收集和排序。

指定需要报告的场景

        -scenarios选项指定需要报告的场景,用于Multicorner-Multimode模式,默认情况下,仅报告当前场景。

指定显示温度

        -temperature选项指定在时序路径报告中显示操作环境温度,用于UPF Mode模式(多电压域),默认情况下,不显示温度。

指定显示电压

        -voltage选项指定在时序路径报告中显示操作环境电压,用于UPF Mode模式(多电压域),默认情况下,不显示电压。当宏单元、开关单元或PAD单元的操作环境是从其他库单元推断出来时,报告中的电压值旁会显示波浪号(~)。

指定对于同样的一组时序弧组成的时序路径仅报告最差路径

        -unique_pins选项指定仅报告通过同样的一组时序弧组成的时序路径的最差时序路径。例如,如果最差路径从上升沿开始,则以下降沿开始的时序路径将不会被报告。对于像XOR门这样的非单调性逻辑,这将大大减少了报告路径的数量。使用此选项可能会增加运行时间,尤其是与-nworst n选项一起使用时,因为需要分析许多路径以找出同样的一组时序弧组成的时序路径中的最差路径。

指定对于起点和终点相同的时序路径仅报告最差路径

        -start_end_pair选项指定仅报告起点和终点相同的时序路径的最差时序路径。例如,如果最差路径从寄存器时钟引脚ff1/CK开始,并在寄存器输入引脚ff5/D结束,则报告将省略所有从ff1/CK到ff5/D的不那么关键的路径。使用此选项可能会增加运行时间,尤其是与-nworst n选项一起使用时,因为需要分析许多路径以找出同样的一组时序弧组成的时序路径中的最差路径。

指定显示差异

        -variation选项指定在时序路径报告中显示统计时间增量的均值和标准偏差,默认情况下,统计参数不会报告。此选项仅在通过将timing_pocvm_enable_analysis变量设置为true,启用了参数化片上变化(POCV)分析时有效。

指定忽略不可行路径

        -ignore_infeasible_paths选项忽略在最新编译过程中标记为不可行的所有时序路径。

报告中的线网延迟标志

        在时序路径报告中,线网延迟通过Incr列中的字符符号表示,如表1所示。

表1 互联延迟的计算方法

^理想网络延迟
*通过SDF文件进行的延迟反标注
&使用Elmore模型通过RC网络反标计算延迟
#由于高扇出网络而估计的延迟
z由于使用set_zero_interconnect_delay_mode命令而没有延迟
使用线负载模型计算延迟或没有延迟

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/982516.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DeepSeek 助力 Vue3 开发:打造丝滑的弹性布局(Flexbox)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…

qt 播放pcm音频

一、获取PCM音频 ffmpeg -i input.mp3 -acodec pcm_s16le -ar 44100 -ac 2 -f s16le output.pcm -acodec pcm_s16le:指定16位小端PCM编码格式(兼容性最佳)-ar 44100:设置采样率为CD标准44.1kHz(可替换为16000/8000等&a…

OpenCV计算摄影学(15)无缝克隆(Seamless Cloning)调整图像颜色的函数colorChange()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::colorChange 是 OpenCV 中用于调整图像颜色的函数。它允许你通过乘以不同的系数来独立地改变输入图像中红色、绿色和蓝色通道的强度&#xf…

WPS AI+office-ai的安装、使用

** 说明:WPS AI和OfficeAI是两个独立的AI助手,下面分别简单讲下如何使用 ** WPS AI WPS AI是WPS自带AI工具 打开新版WPS,新建文档后就可以看到菜单栏多了一个“WPS AI”菜单,点击该菜单,发现下方出现很多菜单&#xf…

绝美焦糖暖色调复古风景画面Lr调色教程,手机滤镜PS+Lightroom预设下载!

调色教程 通过 Lr 软件丰富的工具和功能,对风景照片在色彩、影调等方面进行调整。例如利用基本参数调整选项,精准控制照片亮度、对比度、色温、色调等基础要素;运用 HSL 面板可对不同色彩的色相、饱和度以及明亮度进行单独调节;利…

【Manus资料合集】激活码内测渠道+《Manus Al:Agent应用的ChatGPT时刻》(附资源)

DeepSeek 之后,又一个AI沸腾,冲击的不仅仅是通用大模型。 ——全球首款通用AI Agent的破圈启示录 2025年3月6日凌晨,全球AI圈被一款名为Manus的产品彻底点燃。由Monica团队(隶属中国夜莺科技)推出的“全球首款通用AI…

团队学习—系统思考

3月的团队学习将继续深入,与海外顾问共同探讨系统思考和心智模式的核心内容。回顾过去,这些每月一次的学习不仅成为我们审视思维框架的常规途径,更成为揭示潜在问题与盲点的高效工具。尤其是那些“我不知道我不知道”的领域,外部顾…

使用LVGL驱动三色墨水屏,Arduino

一、基本情况 本文代码基于以下软件版本: Arduino2.X LVGL8.3.11 GXEPD1.6.2 epdpaint---微雪EPD驱动的一部分,你可以在微雪的官网下载到 硬件: MCU:ESP32-S3-N16R8 屏幕:GDEY042Z98黑白红三色墨水屏,某…

DeepSeek未来发展趋势:开创智能时代的新风口

DeepSeek未来发展趋势:开创智能时代的新风口 随着人工智能(AI)、深度学习(DL)和大数据的飞速发展,众多创新型技术已经逐渐走向成熟,而DeepSeek作为这一领域的新兴力量,正逐步吸引越…

Go红队开发—编解码工具

文章目录 开启一个项目编解码工具开发Dongle包Base64编解码摩斯密码URL加解密AES加解密 MD5碰撞工具开发 开启一个项目 这作为补充内容,可忽略直接看下面的编解码: 一开始用就按照下面的步骤即可 1.创建一个文件夹,你自己定义名字(建议只用…

算法·搜索

搜索问题 搜索问题本质也是暴力枚举,一般想到暴力也要想到利用回溯枚举。 排序和组合问题 回溯法 去重问题:定义全局变量visited还是局部变量visited实现去重? 回溯问题 图论中的搜索问题 与一般的搜索问题一致,只不过要多…

常见的限流算法有哪些?

好的,关于这个问题,我会从几个方面来回答。 首先,限流算法是一种系统保护策略,主要是避免在流量高峰导致系统被压垮,造成系统不可用的问题。 常见的限流算法有 5 种。 1. (如图)计数器限流&a…

BetaFlight源码解读01

1.打开main.c init();run(); void systemInit(void) {int ret;clock_gettime(CLOCK_MONOTONIC, &start_time);printf("[system]Init...\n");SystemCoreClock 500 * 1e6; // virtual 500MHzif (pthread_mutex_init(&updateLock, NULL) ! 0) {printf("Cr…

FPGA-按键消抖

按键消抖 1. 原理 2. 关键程序实现 always (posedge clk or negedge rst) beginif(!rst)begincnt_wait < 26d0;end else if(flag_nege || flag_pose)begincnt_wait < 26d1;end else if(cnt_wait MAX_CNT) begincnt_wait < 26d0;end else if(cnt_wait > 26d0 &am…

Qt 进度条与多线程应用、基于 Qt 的文件复制工具开发

练习1&#xff1a;Qt 进度条与多线程应用 题目描述 开发一个基于 Qt 的应用程序&#xff0c;该应用程序包含一个水平进度条&#xff08;QSlider&#xff09;&#xff0c;并且需要通过多线程来更新进度条的值。请根据以下要求完成代码&#xff1a; 界面设计&#xff1a; 使用 QS…

C语言100天练习题【记录本】

C语言经典100题&#xff08;手把手 编程&#xff09; 可以在哔哩哔哩找到 已解决的天数&#xff1a;一&#xff0c;二&#xff0c;五&#xff0c;六 下面的都是模模糊糊的 可以学学这些算法&#xff0c;我是算法白痴&#xff0c;但是我不是白痴&#xff0c;可以学&#xff…

L1G5000XTuner 微调个人小助手认知

环境配置与数据准备 本节中&#xff0c;我们将演示如何安装 XTuner。 推荐使用 Python-3.10 的 conda 虚拟环境安装 XTuner。 步骤 0. 使用 conda 先构建一个 Python-3.10 的虚拟环境 cd ~ #git clone 本repo git clone https://github.com/InternLM/Tutorial.git -b camp4 mk…

【JavaEE】阻塞队列

【JavaEE】阻塞队列 一、什么是阻塞队列&#xff1f;二、阻塞队列的特点三、阻塞队列的常用方法3.1 抛出异常3.2 有返回结果&#xff0c;不会抛出异常3.3 阻塞 四、常见的阻塞队列4.1 ArrayBlockingQueue4.2 LinkedBlockingQueue4.3 SynchronousQueue4.4 PriorityBlockingQueue…

【Python项目】基于深度学习的车辆特征分析系统

【Python项目】基于深度学习的车辆特征分析系统 技术简介&#xff1a;采用Python技术、MySQL数据库、卷积神经网络&#xff08;CNN&#xff09;等实现。 系统简介&#xff1a;该系统基于深度学习技术&#xff0c;特别是卷积神经网络&#xff08;CNN&#xff09;&#xff0c;用…

蓝桥杯备赛:每日一题

只学习不思考不记笔记假把式 这道题目的难度很难&#xff0c;当然主要的原因在于模型的转化&#xff0c;刚看的这道题也是一脸懵&#xff0c;但是转换成覆盖模型后就好了很多&#xff0c;归跟接地就是每块区域的中取最大的最少的牛覆盖天数&#xff0c;然后根据这个天数求每一块…