UPF与低功耗设计实现实例 -- 附UPF与DC综合脚本

2023-11-18

原文链接:https://www.eefocus.com/industrial-electronics/473034

本文摘自《数字集成电路低功耗物理实现技术与 UPF》 孙轶群 sun.yiqun@nationz.com.cn 国民技术股份有限公司 Nationz Technologies Inc

4.0 低功耗设计实现实例
这里提供一个 DEMO(pl8051_extend_chip),可以使读者更快的理解低功耗设计的基础。下图所示,是该设计的功能结构图:
图 4.1 pl8051_extend_chip 功能结构图在这里插入图片描述

由图 41 可以看出,整个设计主要是由一个 8051 控制器,通过 SFR 总线对其他模块进行控制,U_Des 是一个算法模块,U_Pcu 是功耗控制单元(Power Control Unit)。整个设计都在 Clk 的控制下进行工作,只有 U_Des 工作在 ClkF 下。

这里假设 Clk(28ns)是 ClkF(7ns)的 4 分频时钟,且与 ClkF 同源同向,这样才可以保证 U_Des 控制的正确性。

由于 U_Des 需要在较快的频率下工作,因此需要对 U_Des 进行一些特殊的设计,也就是对整个设计进行低功耗设计,如下所示:
图 4.2 低功耗设计方案示例在这里插入图片描述
上图主要描述以下信息:

  1. 2 个电压域,TOP 以及 DES_DOMAIN。
  2. 电源设计外部提供,分 1.2V 的 VDD12 和 1.0V 的 VDD10
  3. 设计中除 DES 电路几乎所有电路工作在 1.0V 的 VDD 电压域。
  4. U_Des 由于工作速度要求较高,工作在 1.2V 的VDD12 电压域

DES_DOMAIN,但由于不使用的时候需要关断,以降低静态功耗,因此,通过一组 PowerSwitch 进行控制,控制信号来源为 U_Pcu 的 PcuSfrDatOut[0]输出。该电压域与 TOP 电压域共用 VSS 地信号。

由于 U_Des 电路处于 VDD12 电压域,而 U_Pcu 处于 VDD 电压域,因此需要添加 Level Shifter 进行电平转换。

U_Des 电路输出信号,需要通过一个 Isolation Cell,在关断电源时提供稳定电平,而该电平为 1.2V,因此还需要利用 Level Shifter 转换成 1.0V 电压域信号,Isolation Cell 的 Enable 信号来自于 U_Pcu 模块的 PcuSfrDatOut[1]信号。

U_Des 电路中的寄存器需要使用 Retention Register,save 和 restore 控制信号分别来自于 U_Pcu 输出 PcuSfrDatOut[2]和 PcuSfrDatOut[3]经过 Level Shifter 产生的信号。

Synopsys 公司为低功耗设计提供了一整套的解决方案,即 UPF 设计流程。UPF(Unify Power Format)是一种描述功耗设计思想的文件,Synopsys Galaxy Implementation Platform 只需要读取 UPF 文件,就可以将低功耗设计思路实现,而 Synopsys Discovery Verification Platform 读取 UPF 后,可以对低功耗思路以及最终实现的电路进行验证。

接下来,我们利用 UPF 描述该 DEMO 的功耗设计思路。

4.1 申明电压域以及虚拟电压接口
首先申明电压域,并申明 VDD、VDD12 以及 VSS 等电压端口:
create_power_domain TOP
create_power_domain DES_DOMAIN_domain –elements U_Des
create_supply_port VDD
create_supply_port VDD12
create_supply_port VSS
根据上述指令,工具会识别出如下图所示中画圈的信息,电压域及虚拟电压端口开始出现:
图 4.3 电压域及虚拟电压端口信息在这里插入图片描述
需要注意的是电压端口只不过是虚拟存在的,并不是一定在顶层连接。

4.2 申明电源网络
接着申明每个电压域中的电源网络,建议从顶层往底层进行申明,如首先申明 TOP 的 VSS、VDD:
create_supply_net VDD
create_supply_net VSS
以上语句添加下图中画圈部分:
图 4.4 产生顶层电源网络在这里插入图片描述
接着申明 DES_DOMAIN 的电源网络,但需要注意的是,如果需要插入 Level Shifter,最好是在与其有连接关系的电源域(TOP)同时申请电源线,并连接起来:
create_supply_net VDD12
create_supply_net VDD12 –domain DES_DOMAIN –reuse #DES_DOMAIN 的 VDD12 与 TOP 的 VSS 共用一个网络,因此需要 -reuse
create_supply_net VDD12G
create_supply_net VDD12G –domain DES_DOMAIN -reuse
create_supply_net VSS –domain DES_DOMAIN –reuse
create_supply_net VDD –domain DES_DOMAIN –reuse
以上语句添加下图中画圈部分:
图 4.5 子电路的电源网路申明在这里插入图片描述
然后将电源网络和电源端口连接起来:
connect_supply_net VDD12 –port {VDD12}
connect_supply_net VDD –port {VDD}
connect_supply_net VSS–port {VSS}
以上语句添加下图中画圈部分:
图 4.6 连接电源网络和电源端口在这里插入图片描述
最后为每个电源域申明主电源网络来源,主电源就是该电压域普通逻辑工作使用的电源:
set_domain_supply_net TOP –primary_power_net VDD –primary_ground_net VSS
set_domain_supply_net DES_DOMAIN –primary_power_net VDD12G –primary_ground_net VSS
做完这一步,电源网络申明基本完成。

4.3 添加 Power Switch
这添加 Power Switch 主要是 2 步,第一步创建 Power Switch,第二步 map Power Switch。可以参看以下脚本进行:

Power Switch

create_power_switch des_sw
-domain DES_DOMAIN
-input_supply_port {in VDD12}
-output_supply_port {out VDD12G}
-control_port {des_po U_Pcu/PcuSfrDatOut[0]}
-on_state {state_on in {!des_po}}
-off_state {OFF {des_po}}
map_power_switch des_sw
-domain DES_DOMAIN
-lib_cell HDRSIHVTD0
create_power_switch 和 map_power_switch 在综合时只会检查语法,不会有实际效果,但在综合时将该 UPF 指令读入系统,可以由 DC 输出相应的 UPF 给 Synopsys 的 PR 工具,PR 工具可以自动识别这些指令,到时才会真正添加 Power Switch。2 句命令的结果示意在下图画圈中:

图 4.7 添加 Power Switch Cell在这里插入图片描述
4.4 建立电源状态表格(Power State Table, PST)
在 Power Switch 插入以后,需要对电压域的有效电压,以及不同电压域之间的关系进行设置,同时建立电压分布及关断的情景(scenarios),可以用于静态电压分析、仿真等。

建立电源状态表格,可以参看以下脚本:
add_port_state VDD –state {LV 1.0} #VDD 是 1.0V,属于低电压域(LV)状态
add_port_state VDD12 –state {HV 1.2} #VDD12 是 1.2V,属于高电压域(HV)状态
add_port_state des_sw/out –state {HV 1.2} #Power Switch 输出是 1.2V,属于高电压域(HV)状态
-state {OFF off}#关闭状态(OFF),无电压(off)
add_port_state VSS –state {ON 0.0} #VSS 处于常开状态(ON),电压 0V
create_pst design_pst –supplies {VDD VDD12 VDD12G} #建立一个 PST,由 3 个电源状态不同组成
add_pst_state design_work –pst design_pst –state {LV HV HV} #design_work 状态下,三组电源都开
add_pst_state stand_by –pst top_pst –state {LV HV OFF} #stand_by 状态下,des_sw/out 输出电源为关闭状态
需要注意 add_pst_state 的 -state 括号里的描述顺序,必须与 create_pst 的 -supplies 里一致,选择的状态必须与 add_port_state 的 -state 里描述的一致才可以。

这样就建立了下表所示的 PST,design_pst:
在这里插入图片描述
由此建立了 PST,分析工具或仿真工具就知道需要对哪些状态进行分析了。

4.5 插入 Isolation Cell
下面需要为 DES_DOMAIN 输出给 TOP 的输出信号添加 Isolation Cell。脚本如下所示:

Isolation Cell

set_isolation des_iso_out
-domain DES_DOMAIN
-isolation_power_net VDD12 -isolation_ground_net VSS #隔离后只有 VDD12 供电
-clamp_value 1 #关电后输出逻辑 1
-applies_to outputs #对于所有输出添加
set_isolation_control des_iso_out
-domain DES_DOMAIN
-isolation_signal U_Pcu/PcuSfrDatOut[1]
-isolation_sense high #控制信号为高时 ISO 有效
-location self # Isolation Cell 添加在 DES_DOMAIN 里面

这样就可以产生如下图所示画圈部分电路:
图 4.8 插入 Isolation Cell在这里插入图片描述
4.6 替换 Retention Register Cell
接着需要使用 Retention Register Cell 将 DES_DOMAIN 中在关断电源后需要保留数据的寄存器替换为 Retention Register Cell,可以使用如下脚本:

Retention Register

set_retention des_ret -domain DES_DOMAIN
-retention_power_net VDD12G -retention_ground_net VSS #retention_power_net 是关电的 Power,表示需要保持 VDD12G 电源域的数据
set_retention_control des_ret -domain DES_DOMAIN
-save_signal {U_Pcu/PcuSfrDatOut[2] high}
-restore_signal {U_Pcu/PcuSfrDatOut[3] low}
map_retention_cell des_ret
-domain DES_DOMAIN
-lib_cell_type RSDFCSD1
#RSDFCSD1 是带有异步置位的 Retention Register Type,可以从 lib 文件中 retention_cell 属性中看到。
根据以上描述,会按照下图画圈示意图描述电路:
图 4.9 替换 Retention Register Cell在这里插入图片描述
4.7 插入 Level Shifters
插入 Level Shifters 是根据 PST 的定义进行,根据 PST 定义看来,DES_DOMAIN 和 TOP 之间需要插入 Level Shifters,其中 DES_DOMAIN 输出的 pin(Isolation Cell 的输出)需要插入 H->L 的 Level Shifter,而其输入则需要插入 L->H 的 Level Shifter。
插入 Level Shifter 在 Compile 过程中自动进行,也可以利用 UPF 命令 set_level_shifter 定义插入的规则。
插入 Level Shifter 后产生的电路变化示意图如下图画圈处所示:
图 4.10 插入 Level Shifters在这里插入图片描述
4.8 UPF Demo
######################

CREATE POWER DOMAIS

######################
create_power_domain TOP
create_power_domain DES_DOMAIN -elements U_Des
#######################

TOPLEVEL CONNECTIONS

#######################
#VDD
create_supply_port VDD
create_supply_net VDD -domain TOP
create_supply_net VDD -domain DES_DOMAIN -reuse
connect_supply_net VDD -port VDD
#VSS
create_supply_port VSS
create_supply_net VSS -domain TOP
create_supply_net VSS -domain DES_DOMAIN -reuse
connect_supply_net VSS -port VSS
#VDD12
create_supply_port VDD12
create_supply_net VDD12 -domain TOP
create_supply_net VDD12 -domain DES_DOMAIN -reuse
connect_supply_net VDD12 -port VDD12
#VDD12G
create_supply_net VDD12G -domain DES_DOMAIN
create_supply_net VDD12G -domain TOP -reuse
#####################

PRIMARY POWER NETS

#####################
set_domain_supply_net TOP -primary_power_net VDD -primary_ground_net VSS
set_domain_supply_net DES_DOMAIN -primary_power_net VDD12G -primary_ground_net VSS
###################

DES_DOMAIN SETUP

###################

Power Switch

create_power_switch des_sw
-domain DES_DOMAIN
-input_supply_port {in VDD12}
-output_supply_port {out VDD12G}
-control_port {des_po U_Pcu/PcuSfrDatOut[0]}
-on_state {state_on in {!des_po}}
-off_state {OFF {des_po}}
map_power_switch des_sw
-domain DES_DOMAIN
-lib_cell HDRSIHVTD0

Isolation Cell

set_isolation des_iso_out
-domain DES_DOMAIN
-isolation_power_net VDD12 -isolation_ground_net VSS
-clamp_value 1
-applies_to outputs
set_isolation_control des_iso_out
-domain DES_DOMAIN
-isolation_signal U_Pcu/PcuSfrDatOut[1]
-isolation_sense high
-location self

Retention Register

set_retention des_ret -domain DES_DOMAIN
-retention_power_net VDD12G -retention_ground_net VSS
set_retention_control des_ret -domain DES_DOMAIN
-save_signal {U_Pcu/PcuSfrDatOut[2] high}
-restore_signal {U_Pcu/PcuSfrDatOut[3] low}
map_retention_cell des_ret
-domain DES_DOMAIN
-lib_cell_type RSDFCRD1

Level Shifter

set_level_shifter des_ls_lh
-domain DES_DOMAIN
-applies_to inputs
-threshold 0.1
-rule low_to_high
-location parent
set_level_shifter des_ls_hl
-domain DES_DOMAIN
-applies_to outputs
-threshold 0.1
-rule high_to_low
-location parent
#####################

ADD PORT STATE INFO

#####################
add_port_state VDD -state {LV 0.84}
add_port_state VDD12 -state {HV 1.08}
add_port_state VSS -state {ON 0.0}
add_port_state des_sw/out -state {HV 1.08}
-state {OFF off}
#############

CREATE PST

#############
create_pst design_pst -supplies {VDD VDD12 VDD12G VSS}
add_pst_state design_work -pst design_pst -state {LV HV HV ON}
add_pst_state stand_by -pst design_pst -state {LV HV OFF ON}

4.9 DC UPF Flow Script Demo
source -e …/scr/synopsys_dc.setup
source -e …/scr/ variable.tcl
set_clock_gating_style -min ${CG_MIN_BITWIDTH} -max_fanout ${CG_MAX_FANOUT}
-sequential_cell ${CG_SEQ_CELL}
-positive_edge_logic ${CG_POS_CELL_LIST}
-negative_edge_logic ${CG_NEG_CELL_LIST}
-control_point ${CG_CONTROL_POINT}
-control_signal ${CG_CONTROL_SIGNAL}
-setup ${CG_SETUP_VALUE} -hold ${CG_HOLD_VALUE}
set_operand_isolation_style -logic adaptive
set_operand_isolation_slack 0.1
set_svf N E T L I S T P A T H {NETLIST_PATH} NETLISTPATH{top}${VER}.svf
read_verilog ${RTL_INCLUDE}
current_design $top
uniquify
link
load_upf ${SCRIPT_PATH}power.upf
set auto_insert_level_shifters_on_clocks all ;#can be added in backend flow
set_voltage 1.08 -object_list {VDD12 VDD12G}
set_voltage 0.84 -object_list VDD
set_voltage 0.0 -object_list VSS
source -e -v ${SCRIPT_PATH}timing.tcl
#M1~M9 are avaliable, M1 will be used by STD
#set_ignored_layers -min_routing_layer M4
set_ignored_layers -max_routing_layer M7
report_ignored_layers > R E P O R T P A T H {REPORT_PATH} REPORTPATH{top}_ignored_layers.rpt
set_clock_gating_check -setup ${CG_SETUP_CHECK} -hold ${CG_HOLD_CHECK} [all_clocks]
set_fix_multiple_port_nets -feedthroughs -outputs -buffer_constant
set_attr -type string tcbn90lphpwc0d70d9_pg.db:tcbn90lphpwc0d70d9 default_threshold_voltage_group SVT_LS_LH
set_attr -type string tcbn90lphphvtwc0d70d9_pg.db:tcbn90lphphvtwc0d70d9 default_threshold_voltage_group HVT_LP_LH
set_attr -type string tcbn90lphpwc0d7_pg.db:tcbn90lphpwc0d7 default_threshold_voltage_group SVT_LV
set_attr -type string tcbn90lphphvtwc0d7_pg.db:tcbn90lphphvtwc0d7 default_threshold_voltage_group HVT_LV
set_attr -type string tcbn90lphpwc_pg.db:tcbn90lphpwc default_threshold_voltage_group SVT
set_attr -type string tcbn90lphphvtwc_pg.db:tcbn90lphphvtwc default_threshold_voltage_group HVT
set_attr -type string tcbn90lphphvtcgwc_pg.db:tcbn90lphphvtcgwc default_threshold_voltage_group HVT_CG
set_attr -type string tcbn90lphphvtwc0d90d9_pg.db:tcbn90lphphvtwc0d90d9 default_threshold_voltage_group HVT_ISO
set_attr -type string tcbn90lphphvtwc0d90d7_pg.db:tcbn90lphphvtwc0d90d7 default_threshold_voltage_group HVT_LS_HL
set_attr -type string tcbn90lphpwc0d90d7_pg.db:tcbn90lphpwc0d90d7 default_threshold_voltage_group SVT_LS_HL
check_mv_design -verbose
compile_ultra -scan -no_autoungroup -no_boundary_optimization
change_names -rules verilog -hierarchy
write -format ddc -hierarchy -output D D C P A T H {DDC_PATH} DDCPATH{top}_noscan${VER}.ddc
write -format verilog -hierarchy -output N E T L I S T P A T H {NETLIST_PATH} NETLISTPATH{top}_noscan${VER}.v
set write_sdc_output_lumped_net_capacitance false
set write_sdc_output_net_resistance false
write_sdc -version 1.5 S D C P A T H {SDC_PATH} SDCPATH{top}_cons${VER}.sdc
check_design > R E P O R T P A T H {REPORT_PATH} REPORTPATH{top}_check_design_postcomp.rpt
report_area > R E P O R T P A T H {REPORT_PATH} REPORTPATH{top}_area.rpt
check_mv_design –verbose > R E P O R T P A T H {REPORT_PATH} REPORTPATH{top}_check_mv_design.rpt
report_constraint -all > R E P O R T P A T H {REPORT_PATH} REPORTPATH{top}_all_vio.rpt
report_clock_gating -gating_elements >> R E P O R T P A T H {REPORT_PATH} REPORTPATH{top}_icg.rpt
report_operand_isolation -verbose -isolated > R E P O R T P A T H {REPORT_PATH} REPORTPATH{top}_opiso.rpt
report_threshold_voltage_group > R E P O R T P A T H {REPORT_PATH} REPORTPATH{top}_VT.rpt
report_threshold_voltage_group -verbose >> R E P O R T P A T H {REPORT_PATH} REPORTPATH{top}_VT.rpt
save_upf N E T L I S T P A T H {NETLIST_PATH} NETLISTPATH{top}${VER}_dc.upf #upf’ for next part of flow

5.0 总结
本文从 CMOS 电路功耗原理入手,针对不同工艺尺寸下数字集成电路的低功耗物理实现方法进行描述,并通过一个例子介绍了 Synopsys UPF(Unified Power Format)文件对低功耗设计的描述原理。UPF 是 Synopsys 公司提出的一种对芯片中电源域设计进行约束的文件格式。通过与 UPF 格式匹配的 Liberty 文件,UPF 约束文件可以被整套 Galaxy 物理实现平台的任何一个环节直接使用,并将设计者的电源设计约束传递给设计工具,由工具完成设计的实现工作,从而实现整套数字集成电路低功耗物理实现的流程。

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

UPF与低功耗设计实现实例 -- 附UPF与DC综合脚本 的相关文章

  • [USF-XSim-62] ‘elaborate‘ step failed with errors.[Vivado 12-4473] Detected error while running sim

    USF XSim 62 elaborate step failed with error s Please check the Tcl console output and Vivado 12 4473 Detected error whi
  • 基于STM32的智能电子药盒设计

    1 前言 据报告显示中国有2 3亿的60岁以上老人 占全国总人口的六分之一 在老年人中 有65 以上的老年人都是慢性病患者 其中失能和半失能老人将近四千万 并且人口还在以加速度增长 老年人的身体健康成为社会密切关注的问题 大部分的老年人都患
  • 硬件十万个为什么

    1 电源类 1 1 电源基础 各种 地 各种 GND 板载电源设计规范 电源环路稳定性评价方法 深入芯片内部 理解去耦电容的作用 减小DC DC变换器中的接 地反弹 一些接地要点 开关电源中的小启示 电源相关的测试 去耦电容的选择 容值计算
  • 复位的recovery time和removal time

    recovery time指的是在有效时钟沿来临之前 异步控制信号释放后必须保持稳定的时间 类比setup时间 removal time指的是在有效时钟沿来临之后 异步控制信号必须保持稳定的时间 类比hold时间 总的来说 复位信号的解除要
  • 模电基础(2)半导体二极管

    1 二极管的组成 二极管 将PN结封装起来 引出两个电极就构成了半导体二极管 二极管的常见结构包括 点接触型 图a 面接触型 图b 平面型 图c 点接触型 结面积小 不可通过较大的电流 结电容小 工作频率高 面接触型的结面积变大 所允许的电
  • 【详解】指令系统中跳转指令与OF,SF,CF,ZF的关系

    目录 无符号跳转表示法 有符号跳转表示法 无符号跳转表示法详解 有符号跳转表示法详解 无符号跳转表示法 小于 大于等于 小于等于 大于 有符号跳转表示法 小于 大于等于 小于等于 大于 无符号跳转表示法详解 我在学习这部分的最大的困惑点就是
  • 电路端接电阻与信号完整性

    信号沿着传输线传播时 每时每刻阻抗都可能发生变化 例如 PCB走线的宽度或者厚度发生变化 PCB过孔 PCB转角 PCB上的电阻 电容 电感 接插件和器件引脚都会产生阻抗变化 若走线的瞬时阻抗 只和传输线的横截面积和材质特性有关 发生变化
  • 学生正版Altium Designer许可证到期怎么再申请

    学生如何使用正版Altium Designer软件 适用于老师 学生 校友等等 目录 一 前情提要 二 许可证延期步骤 2 1 重要前提 2 2 许可证申请 2 3 申请完成 一 前情提要 如果不知道怎么安装学生版AD 可点击以下链接学生如
  • STM32系列(HAL库)——F103C8T6驱动WS2812全彩RGB模块(PWM+DMA方式)

    1 软件准备 1 编程平台 Keil5 2 CubeMX 2 硬件准备 1 某宝买的RGB模块 4个灯珠级联 2 F1的板子 本例使用经典F103C8T6 3 ST link 下载器 4 杜邦线若干 3 模块资料 1 模块简介 没什么比手册
  • 数字万用表的使用

    参考 连3岁小孩子都能看懂的万用表使用方法 地址 https www bilibili com video BV1Gx411z7x2 p 1 vd source cc0e43b449de7e8663ca1f89dd5fea7d 目录 万用表
  • 66W真的比60W充电更快吗?基于Charge pump Charger的快充方案分析

    智能手机发展至今 充电功率和电池续航一直是人们最为关注的问题之一 从早期的5V 1A和5V 2A的低瓦数快充 到后来的高压大电流和低压小电流两极分化 不同手机厂商都制定了自己的充电协议 如OPPO的VOOC vivo的Flash Charg
  • 最详细的Vivado安装教程

    V i v a d o 安 装
  • 微弱直流电压/电流信号的采样电路 --滤波跟随放大

    要求将待测的电压 1mV 1000mV 电流 1mA 100mA 采样出来传给单片机 我的思路是 电压采样先用放大电路放大 再进行滤波 把50Hz的交流电干扰滤除 然后再进行模数转换传给单片机 电流的话用一个采样电阻 然后对其电压采样后推算
  • PCB设计小结

    PCB设计小结 1 给所有元器件编号 快捷键T A A 2 pcb中旋转 3 对齐 pcb中快捷键A 一般是右对齐 底对齐 保存间距 4 CTRL Z键撤销无效 点击撤销按钮也无效 保存重启软件就可以了 5 测距 ctrl m 6自动布线
  • 硬件基础之集成运放

    一 技术理论 1 集成电路 集成电路是采用专门的制造工艺 在半导体单晶硅上 把晶体管 场效应管 二极管 电阻和电容等元器件以及它们之间的连线所组成的电路制作在一起 使其具有特定功能的芯片 2 集成运放 集成运放 全称集成运算放大器 是具有超
  • CAN FD基础

    CAN FD基础 一 CAN FD与CAN 2 0的区别 1 CAN FD的优势 该协议能够支持更高的速率 可以更快的刷写ECU 在单个数据帧内传送率可达64字节 避免了经常发生的数据分拆传输的状况 对汽车行业而言 CAN FD协议显得非常
  • AD 封装组件的水平/垂直间距报错

    快捷键 D设计 R规则 一般情况下设置的都是 Electrical 下的Clearance 但是设置完了还是继续报错 是封装之间的水平间距问题 应该设置Placement 下的ComponentClearance
  • KEIL经常出现 Encountered an improper argument 弹窗

    关于 keil5 使用在线调试时 经常出现 Encountered an improper argument 弹窗 经实测 可有如下方法 方法1 下载UV4 exe 替换本机电脑 Keil UV4目录下的UV4 exe 更换后 如果不能编译
  • 硬件工程师-三极管

    目录 一 机械开关 二 三极管的种类 三 NPN型三极管 N型三极管 四 PNP型三极管 编辑 五 三极管公式 NPN型三极管 PNP型三极管 六 NPN管的继续讲解 三极管的导通电压 PNP管也是一样 三极管的三种状态 判断三极管是放大还
  • 基于信号完整性的PCB设计原则

    最小化单根信号线质量的一些PCB设计建议 1 使用受控阻抗线 2 理想情况下 所有信号都应该使用完整的电源或地平面作为其返回路径 关键信号则使用地平面作为返回路径 3 信号的返回参考面发生变化时 在尽可能接近信号换层孔的位置增加至少一个返回

随机推荐

  • protobuf与protoc-gen-go

    什么是protobuf Protobuf Protocol Buffer 是google 的一种数据交换的格式 它独立于语言 独立于平台 google 提供了多种语言的实现 java c c go 和 python 每一种实现都包含了相应语
  • Jmeter接口测试+压力测试

    jmeter是apache公司基于java开发的一款开源压力测试工具 体积小 功能全 使用方便 是一个比较轻量级的测试工具 使用起来非常简单 因为jmeter是java开发的 所以运行的时候必须先要安装jdk才可以 jmeter是免安装的
  • OkHttp的使用之{RequestBody、FormBody、MultipartBody}

    目录 0 相关文章 1 POST请求 1 1 RequestBody json数据提交 1 2 FromBody 表单提交 这种能满足大部分的需求 1 3 MultipartBody 文件上传 1 4 图片下载 文件下载 0 相关文章 Ok
  • 布隆过滤器(Bloom Filter)

    1 引言 通常我们会遇到很多要判断一个元素是否在某个集合中的业务场景 一般想到的是将集合中所有元素保存起来 然后通过比较确定 链表 树 散列表 又叫哈希表 Hash table 等等数据结构都是这种思路 但是随着集合中元素的增加 我们需要的
  • 线程相关面试题

    1 ThreadPoolExecutor 线程池执行 有哪些常用的方法 1 执行线程池 submit excute 2 终止线程池 shutdown 3 判断线程是否终止 isShutdown 4 获取正在运行的线程数 getAcitive
  • 详解Python中字符串前“b”,“r”,“u”,“f”的作用

    1 字符串前加 u 例 u 我是含有中文字符组成的字符串 作用 后面字符串以 Unicode 格式 进行编码 一般用在中文字符串前面 防止因为源码储存格式问题 导致再次使用时出现乱码 2 字符串前加 r 例 r n n n n 表示一个普通
  • 视频稳像(Video Stabilization)

    原文 https blog csdn net hjl240 article details 52683738 开源 关键词 Video Stabilization 不错 https github com yaochih awesome vi
  • python中unittest+ddt的应用

    一 单个EXCEL执行 import unittest from class api login topup demo import http request from class api login topup http attr imp
  • 使用KIF进行功能性iOS UI测试

    开始使用KIF 从Github下载KIF源资产并将其放置在可以轻松找到的地方 或者 可以使用 Git 的子模块来获取本地使用的源代码 git 初始化 git submodule 添加 https github com kif framewo
  • c#的值类型和引用类型(拆装箱)

    1 值类型和引用类型 c 中所有的引用类型共同的基类是System Object 1 管理机制 值类型 操作系统负责 作用域结束时被操作系统自动释放 引用类型 垃圾回收器负责 2 内存分配 值类型 值类型实例总会被分配到变量声明的地方 声明
  • 计算机网络(3.6)数据链路层- PPP 协议的帧格式和工作状态

    PPP 协议的帧格式 PPP 帧的首部和尾部分别为 4 个字段和 2 个字段 标志字段F 0x7E 符号 0x 表示后面的字符是用十六进制表示 十六进制的7E的二进制表示是 01111110 地址字段A只置为0xFF 地址字段实际上并不起作
  • 托管函数和非托管函数如何互相传递ansi字符串?

    先来介绍两个预处理指令 pragma unmanaged pragma managed 这两个预处理指令 控制函数编译成托管函数 还是非托管函数 是函数级别的预控制指令 1 托管函数传送字符串给非托管函数 分三步走 a 先调用StringT
  • echars水状_Echarts饼状图属性设置

    标题 title text 学生生源地来源分布图 subtext 模拟数据 x 设置水平安放位置 默认左对齐 可选值 center left right number x坐标 单位px x center y 设置垂直安放位置 默认全图顶端
  • IPv6地址结构、地址分类以及表示方法

    IPv6地址的表示方法 IPv6地址总长度为128比特 通常分为8组 每组为4个十六进制数的形式 每组十六进制数间用冒号分隔 例如 FC00 0000 130F 0000 0000 09C0 876A 130B 这是IPv6地址的首选格式
  • Python从入门到精通,100天就够了!(2)——分支结构与循环结构

    文章目录 一 分支结构 选择结构 1 分支结构初体验 2 分支结构练习 二 循环结构 1 for in 循环 2 for in 循环练习 3 while 循环 4 break和continue 5 while 循环练习 6 嵌套的循环结构
  • 【零基础 快速学Java】韩顺平 p35-51 变量、数据类型(整型,浮点,字符,布尔)、重要编码,API文档

    课程 p35 51 变量 变量是程序的基本组成单位 变量有三个基本要素 类型 名称 值 变量相当于内存中一个数据存储空间的表示 通过变量名可以访问变量 值 四个常用数据类型 int double char String String的S要大
  • LuCI - 网页用户配置界面开发

    luci 参考资料 http luci subsignal org trac wiki Documentation http wiki openwrt org doc techref preinit mount first boot htt
  • 【IOS 开发学习总结-OC-4】objective-c 运算符

    运算符是用于数据运算 赋值和比较等的特殊符号 objective c 语言中的运算符有以下几种 算术运算符 赋值运算符 比较运算符 逻辑运算符 位运算符 类型相关运算符 算术运算符 有7个基本运算符 加法运算符 减法运算符 还可以作为负号使
  • Ubuntu下安装jdk1.7

    转载 http blog csdn net zth1002 article details 51383508 1 去到官网下载jdk 点击打开链接 2 安装WinSCP工具连接到Linux系统上面在 usr lib里面新建一个jvm文件夹
  • UPF与低功耗设计实现实例 -- 附UPF与DC综合脚本

    原文链接 https www eefocus com industrial electronics 473034 本文摘自 数字集成电路低功耗物理实现技术与 UPF 孙轶群 sun yiqun nationz com cn 国民技术股份有限