当前位置: 首页 > news >正文

Synopsys Sentaurus TCAD系列教程之--Sde概述

Sde 方便处理rule check相关的问题。同时也能让使用者进一步了解器件结构、掺杂和引线等基本操作。Sde用于搭建结构,重新优化网格,提供.mesh文件供后面Sdevice仿真,主要包含以下几部分:

第一部分:

  • Scheme Basics
  • Defining Simple Variables and Data Types(定义简单变量和数据类型)

第二部分:

  • Create Structure (结构搭建)
  • Doping(掺杂)
  • Contact Definition(引线定义)
  • Mesh Definition(网格定义)
  • Save File(保存文件)

Scheme Basics

The scripting language of Sentaurus Structure Editor is based on Scheme, which is a LISP-like programming language that differs significantly from most widely used programming languages. A working knowledge of Scheme is needed to create Sentaurus Structure Editor scripts for parameterized devices.
(Sentaurus Structure Editor的脚本语言基于Scheme,与大多数广泛使用的编程语言有很大不同, Scheme是一种类似lisp的编程语言。为参数化器件创建Sentaurus结构编辑器脚本需要Scheme的工作知识)

  • A Scheme command is enclosed in parentheses(Scheme命令包含在括号中):
    (Scheme command)
  • All text in a line after a semicolon is treated as a comment(分号后面一行中的所有文本都被视为注释):
    ; This is a comment
    (Scheme command) ; This is also a comment
  • A Scheme command can extend over several lines(Scheme命令可以延伸到多行):
    (beginning of Scheme command
    continuation of the same Scheme command
    end of the Scheme command)
  • Several Scheme commands can be on a single line(多个Scheme命令可以在一行中):
    (first Scheme command) (second Scheme command) (…)

Defining Simple Variables and Data Types(定义简单变量和数据类型)

  • Integers and floating-point numbers are treated as numbers. Declare and define a numeric variable with(整数和浮点数被视为数字。声明并定义一个数字变量):
    (define i 3)
    (define pi 3.141593)
  • Strings are enclosed in double quotation marks. Declare and define a string with(字符串用双引号括起来。声明并定义一个字符串):
    (define W “Hello World”)
  • Characters are preceded by a single quotation mark. Declare and define a character with(字符前面有一个单引号。声明并定义一个字符):
    (define CHAR 'a)
  • Use the variable name to reference a variable(使用变量名引用变量):
    i
    pi
    W
    CHAR
    Update an existing variable with:
    (define j 1)
    (set! j (+ j 1))
    Use define when a variable is introduced for the first time. Use set! to alter an existing variable(首次引入变量时使用define。使用Set!更改现有变量。).

Create Structure(结构创建)

  • (sdegeo:set-default-boolean “ABA”):设置默认布尔行为,参数布尔值可以是以下任意预定义值(默认行为决定如何处置重叠区域,“ABA”: 减去已有区域中的重叠区域.
  • (sdegeo:set-default-boolean “BAB”):设置默认布尔行为,参数布尔值可以是以下任意预定义值(默认行为决定如何处置重叠区域,从新创建的区域中减去所有现有区域.
  • (sdegeo:create-rectangle) : 创建2D矩形区域 (sdegeo:create-rectangle v1 v2 material-name region-name).
    • This Scheme extension 向模型添加一个2D矩形。通过指定两个相对的角点来定义矩形。
      如果生成的矩形与现有区域重叠,新插入区域和重叠区域的拓扑决定于布尔公式。
      “material-name”设置为区域材质;"region-name"设置为区域名称。
    • (sdegeo:create-rectangle(position 0 0 0)(position 30 5 0) “Silicon” “SUB”), 表示创建一个矩形区域,材料是硅,名称是SUB。 Position确定了对角线的位置坐标就确定了区域的位置和大小。材料有Silicon(硅)、Oxide(氧化层)、SiO2(二氧化硅)、Alumimum(铝)和PolySi(多晶硅)等。
  • (sdegeo:create-polygon): 多边形区域画法,比如阶梯场板、阶梯多晶硅栅、LOCOS场氧、STI隔离等,需要把多边形的每个点顺序列出来,并且最后一个点要与第一个点重合。(sdegeo:create-polygon (list (position 8 29.5 0)(position 8.8 30 0) (position 63.2 30 0) (position 64 29.5 0)(position 8.8 29 0)(position 8 29.5 0)) "SiO2" "gox")

Doping(掺杂)

器件结构设计完成后,架子就搭好了,接着需要对确定的区域进行掺杂。

sdedr:define-refeval-window
  • 定义可用作参考/评估窗口的几何区域
    Sytax
    (sdedr:define-refeval-window rfwin-name { single-shape | multi-shape })

    • for single-shape:
      “Point”: 数据参数是一个位置
      “Line” “Rectangle” “Cuboid”,数据参数为两个相对的角位置。关键字"矩形"和"长方体"轴对齐
      “Polygon” 数据参数是位置列表(第一个和最后一个位置必须是相同)
      (sdedr:define-refeval-window "RefEvalWin_SUB" "Cuboid"(position 0 0 0)(position 30 5 0)):确定位置,并确定掺杂类型,Cuboid表示恒定掺杂
(sdedr:define-constant-profile "ConstantProfileDefinition_SUB" "BoronConcentration" 1.8e15)
  • 确定掺杂的元素是硼形成P型半导体,掺杂浓度是1.8e15
(sdedr:define-constant-profile-placement "ConstantProfilePlacement_SUB" "ConstantProfileDefinition_SUB" "RefEvalWin_SUB")
  • 在网格命令文件中穿件恒定掺杂轮廓定义的Ref/Eval窗口放置

另一种掺杂方式是线性掺杂,或者叫解析掺杂,高斯掺杂,这里是用"Line"表示。

  (sdedr:define-refinement-window "RefEvalWin_nsd1" "Line" (position 26 10 0)(position 30 10 0))

当采用线性掺杂时,这里的总坐标是不变的,也就是确定一条线段(基线),沿着这条线往两侧延伸掺杂,浓度由高到低,模拟离子注入及退火过程,掺杂区域命名为"nsd1"。

(sdedr:define-analytical-profile)

创建用户定义的分析函数,该函数描述网格命令文件中的掺杂

(sdedr:define-analytical-profile-placement)

在网格命令文件中创建形貌分析面定义的位置。
(sdedr:define-analytical-profile-placement "AnalyticalProfilePlacement_nsd1" "nsd1" "RefEvalWin_nsd1" "Both" "NoReplace" "Eval") 这一句除了nsd1一般不需要修改。

(sdedr:define-gaussian-profile "nsd1" "ArsenicConcentration" "PeakPos" 0 "PealVal" 4.5e20 "ValueAtDepth" 1e15 "Depth" 0.5 "Erf" "Factor" 0.5)这个地方的"gaussian"表示掺杂类型为高斯掺杂,即线性掺杂,"nsd1"是自定义的区域名称,与上面保持一致,ArsenicConcentration表示砷元素掺杂,即形成N型半导体,Peakpos是Peakposition的意思,是指掺杂浓度的最大值与基线的距离,这里的0指掺杂浓度最大值就是在基线。最大浓度PeakVal是4.5e20,最小浓度ValueAtDepth是1e15,扩散深度Depth是0.5微米,横向扩散因子Factor是0.5,。这里的横向扩散因子越大扩散越明显,越小越接近恒定掺杂。"Both"表示的是沿着基线向两侧扩散,当两侧都是硅,那么会形成两侧的扩散;如果是在硅表面进行扩散,由于另一侧没有Si材料,那就是基本的离子扩散,类似于例子注入退火等;还有Positive是往正的方向扩,Positive是往反方向扩散。

Contact(电极)

掺杂之后就定义接触电极,在仿真中电极也叫接触
(sdegeo:define-contact-set “anode” 4 (color:rgb 1 0 0) “##”)
(sdegeo:set-current-contact-set “andoe”)
(sdegeo:define-2d-contact-(list (car (find-edge-id(position 2 20 0)))) “anode”)

(sdegeo:define-contact-set )

定义电极名字并初始化支持数据
Syntax:
(sdegeo:define-contact-set name [edgeThickness Color] | [Color facePattern])

  • 最后三个参数是可选的,可以按照任意顺序给出。如果电极组名称已经存在,则将被新的定义替换
  • “Color” 参数是RGB颜色对象,例如 (color:rgb 0 1 0)。color:rgb命令接收三个实数参数,每个参数的范围为[0,1]
  • 对于边电极(2D),使用edgeThickness和Color参数。对于面电极(3D),使用Color和facePattern参数。(如果在参数列表中指定了未使用的参数,则将忽略该参数)
 (sdegeo:set-current-contact-set)
  • 设置当前活动电极组的名称

“anode”:电极名称;边缘厚度默认是4;rgb(red green blue)后面的表示颜色。

这里面只要在铝或者想要定义电极的地方边缘取一个点就行,就会形成一个接触。
定义电极的另一种方式是把铝包起来,要把点定义在铝的内部(body)任一点,而不是边缘(edge),命令是:
(sdegeo:define-contact-set “drain” 4 (color:rgb 1 0 0) “##”)
(sdegeo:set-current-contact-set “drain”)
(sdegeo:set-contact-boundary-edges(list(car(find-body-id(position 20 11 0))))“drain”)
这个坐标是在铝内部任一点,这种电极定义方法对于铝、多晶硅都是可以的,但是对于衬底、硅表面电极接触的定义就要用上面的边缘接触。

(sdegeo:set-contact-boundary-edges)

将活动(active)电极组(set)名称附着到指定实体(specified body)的所有边

  • This Scheme extension 将选定区域的所有边定义为电极,并使用活动电极集(active contact set)和选定实体的名称。或者,可以在参数列表中指定主体列表(body list)。在这种情况下,将忽略(sde:selected-entities),并从指定的实体列表中提取边缘列表。

为了防止金属影响仿真结果,很多接触的定义都是把金属删除了,只保留接触,命令是(sdegeo:delete-region(list(car(find-body-id(position 0 -0.1 0))))),(0 -0.1 0)是金属铝或者PolySi的任一点即可把电极金属去除,只保留Contact,这句命令一般紧随该电极之后。

(sdegeo:delete-region)

删除指定的一个或多个区域, 包括Ref/Eval窗口主体

Mesh(网格)

没有网格定义掺杂就无法正常显示。Sdevice仿真就是将Sde或Sprocess建立出来的图形进行网格化,形成网格文件(二进制文件),根据某处网格点的数据,如浓度、坐标,代入到软件被调用的半导体器件方程,如泊松、迁移率等方程,从而计算出器件的电学特性,所以网格才是Sde的灵魂。
(sdedr:define-refeval-window "RefEvalWin_1" "Rectangle" (position 0 50 0)(position 600 -50 0)),这表示需要优化的区域,这个矩形区域需要大于器件的区域。
(sdedr:define-refinement-size “RefinementDefinition_1” 5 5 1 1),这里的5 5 1 1分别表示网格在X方向的最大长度,Y方向的最大长度,X方向的最小长度,Y方向的最小长度。如果想要增大Y方向网格密度,则应减小Ymax和Ymin.
(sdedr:define-refinement-placement "RefinementPlacement_1" "RefinementDefinition_1" "RefEvalWin_1") (sdedr:define-refinement-function "RefinementDefinition_1" "DopingConcentration" "MaxTransDiff" 1),这两行一般不作修改。
如果想对某一区域优化网格,即对某一区域进行加密。比如栅氧、PN结交界面、金属和硅的接触面、二维电气等,可以再加一个网格定义的矩形区域,名称可以把Win1改成Win2,名字是自定义的。(sdedr:define-refeval-window “RefEvalWin_2” “Rectangle” (position 0 7 0)(position 600 12 0),修改position,改成只想优化的矩形区域。(sdedr:define-refinement-size “RefinementDefinition_2” 0.8 0.8 0.3 0.3),把网格改小,数字与数字之间有空格即可,1个空格和n个空格没差别。(sdedr:define-refinement-placement “RefinementPlacement_2” “RefinementDefinition_2” “RefEvalWin_2”).(sdedr:define-refinement-function “RefinementDefinition_2” “DopingConcentration” “MaxTransDiff” 1),记得把所有的Win1改成Win2,不然无效。若要加三个区域的网格,就把这四行整体复制,改成position坐标和第二行 0.8 0.8 0.3 0.3 这4个数字,同时把所有的Win2改成Win3…

Save File(保存文件))

(system:command "snmesh n@node@_msh")
(sde:build-mesh "n@node@")

上述命令会调用Snmesh这个工具进行Mesh Generation,即生成网格文件,一般用于后续的Sdevice运行,@node@可以自动读取当前运行节点的节点序号。
通过以上的保存命令,运行成功后,可以得到两张图,一个是bnd.tdr没有掺杂信息的,一个是有掺杂信息的_msh.tdr图。

此外运行Sde之前记得选Properties,改成Batch模式,不然会出现一个Sentaurus Structure editor窗口,特别费时间。如果想看网格数量,双击运行成功的节点,往上翻,Points之前的数字就是网格数。
遇到运行出错,双击节点,点击左下状态栏有个.err的,点进去查看。

特殊案例

《1》拐角优化

Sde搭建的结构棱角突出,与实际不符,会导致电场集聚,需要在棱角处做圆润化处理。

(sdegeo:create-polygen (list (position 8 29.5 0)(position 8.8 30 0)(position 63.2 30 0)(position 64 29.5 0)(position 63.2 29 0)(position 8.8 29 0)(position 8 29.5 0)) "SiO2" "gox")

优化的命令紧随上面的多边形创建命令
(sde:define-parameter "filter-radius" 10 0.0 0.0),这里的10是圆润化的程度,越大会越圆润,可以用0.1和0.01两个运行试试。写出需要圆润化的坐标,像LOCOS,STI底部等转弯处。

(sdegeo:fillet-2d(find-vertex-id(position 8.8 30 0.0)) fillet-radius)
(sdegeo:fillet-2d(find-vertex-id(position 8.8 29 0.0)) fillet-radius)
(sdegeo:fillet-2d(find-vertex-id(position 63.2 30 0.0)) fillet-radius)
(sdegeo:fillet-2d(find-vertex-id(position 63.2 29 0.0)) fillet-radius)

《2》宏定义变量

变量的定义有两种,第一种是在外面,添加这个变量并赋值,程序里的变量用@L1@这样的格式;另外还有一种就是在命令开头定义,如(define CP 1), (define R1 20)

《3》Sde命令四则运算

(+ @a@ @b@),表示a加b
(- @a@ @b@),表示a减b
(* @a@ @b@),表示a乘b
(/ @a@ @b@),表示a除以b
(/ (* (- @a@ @b@) @c@) @d@),表示[(a-b)xc]/d

除了加减乘除,tcl语言还提供了开方sqrt,求对数log等运算。

《4》循环语句

(do
( ( i 0 (+ i 1)))
((= i R1))
(begin
(define REGION1 (string-append “region” (number->string i)))
(sdegeo:create-rectangle (position (+ 11 (* i CP)) 9 0.0) (position (+ 11.5 (* i CP)) 11 0.0) “Aluminum” REGION1)))
这是画20个矩形的操作,材料是铝,CP和R1是上面提到的1和20.上面的命令表示,i从0开始,一共循环20次,第一次矩形对角线是(11,9)(11.5, 11),第二次矩形对角线是(12,9),(12.5 11),第三次矩形对角线是(13,9)(13.5,11),…第20次矩形对角线是(30,9)(30.5 11),当i=R=20不执行操作,跳出循环。

《5》cur剪切语句

搭建好的结构,如果只想要对器件局部进行仿真,可以用下面的命令把想要的区域给剪切出来。命令的位置放在Doping之前,后者Meshing之前也行,但一定要搭建好的结构区域之后。命令是:
(sdegeo:2d-cut(position 40 20 0)(position 80 -40 0)),保留由Position定义的矩形框内的器件区域。

《6》添加新材料

有时,Sde默认的材料里不包括我们想要的新材料,比如高K介质HfO2,如果需要添加新材料,使用如下方法。在Project目录下,添加Datexcodes.txt文件,修改Datexcodes.txt文件,添加新材料HfO2,文件内容如下:
Material{
HfO2{
label = “HfO2”
group = Insulator
color = #a68262,#ff1744 }}
这里的group代表的是材料类型,分为导体conductor、半导体Semiconductor和绝缘体Insulator等。

  • ACIS 是两种最流行的几何内核之一,为许多CAD、CAM、CAE 和 AEC 软件提供支持。它已有 30 多年的历史,最初创建于 80 年代,目前由 Spatial(Dassault Systemes 的一部分)开发。与任何其他 3D 几何内核一样,它以数据结构的形式为工程和设计应用程序提供基础,以表示 3D 模型和各种几何算法以对其进行操作。为了在建模会话之间保存和加载 3D 模型,它公开了一种持久性格式,称为ACIS-SAT(或简称为 SAT)。它曾经是一种开放格式,在 2000 年代左右具有公开可用的规范,但后来的修订版不是。ACIS 文件有两种风格 - 文本 (SAT) 和二进制 (SAB)

相关文章:

Synopsys Sentaurus TCAD系列教程之--Sde概述

Sde 方便处理rule check相关的问题。同时也能让使用者进一步了解器件结构、掺杂和引线等基本操作。Sde用于搭建结构,重新优化网格,提供.mesh文件供后面Sdevice仿真,主要包含以下几部分: 第一部分: Scheme BasicsDefi…...

计算结构体大小

计算结构体大小 目录计算结构体大小一. 结构体内存对齐1. 简介2. 嵌套结构体二. offsetof三. 内存对齐的意义四. 修改默认对齐数一. 结构体内存对齐 以字节(bety)为单位 1. 简介 对于结构体成员在内存里的存储,存在结构体的对齐规则&#…...

第二十一篇 数据增强

文章目录 摘要1、数据增强的作用2、常用的图像增强方法2.1、一些辅助函数ToTensorToPILImageNormalizeResize2.2、中心裁剪2.3、亮度、对比度和颜色的变化2.4、随机裁剪2.5、随机灰度与灰度2.6、水平/竖直翻转2.6.1、水平翻转2.6.2、垂直旋转2.7、随机角度旋转2.8、随机仿射变换…...

记一次线上es慢查询导致的服务不可用

现象 某日线上业务同学反馈订单列表查询页面一直loding,然后提示请求超时,几分钟之后恢复正常 接到报障之后,马上根据接口URL,定位到了请求链路,发现是es查询超时,这里我们的业务订单表数据是由几百万的&a…...

分布式之ZAB协议

写在前面 假定我们现在使用zk执行了如下的指令: [zk: 192.168.0.10:2181(CONNECTED) 0] create /dongshidaddy 123 Created /dongshidaddy [zk: 192.168.0.10:2181(CONNECTED) 1] create /dongshidaddy/mongo 456 Created /dongshidaddy/mongo假定因为节点故障最终…...

MySQL binlog常用命令及设置清理时间

MySQL binlog常用命令及设置清理时间1 binlog 基本概念2 binlog常用命令3 清理MySQL的binlog日志3.1 自动清理3.2 手动清理文章参考: http://www.360doc.com/content/22/0418/08/65840191_1027038859.shtml https://www.cnblogs.com/kiko2014551511/p/11532426.html…...

Windows下载安装Prometheus

目录 资料 下载 解压 点击prometheus.exe运行 资料 Prometheus是一个开源的系统监控和报警系统,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上万台规模的集群。 官网:https://pr…...

0-1背包、完全背包及其变形【零神基础精讲】

来源0x3f:https://space.bilibili.com/206214 三叶姐的对背包问题的总结:【宫水三叶】详解完全背包一维空间优化推导(附背包问题攻略)https://leetcode.cn/circle/discuss/GWpXCM/ 文章目录0-1背包、完全背包及其拓展(…...

OpenStack

OpenStack优势: 1、模块松耦合。 2、组件配置较为灵活。 3、二次开发容易 OpenStack共享服务组件: 1、数据库服务:MongoDB 2、消息列队:RabbitMQ 3、缓存:Redis 4、存储:Ceph 5、负载均衡&#xff…...

Spring Boot整合Kaptcha实现验证码功能

目录一、前言1.Kaptcha 简介2.Kaptcha 详细配置表二、实现1.整合kaptcha,创建kaptcha的工具类1.1 添加依赖1.2 创建KaptchaConfig工具类2 编写接口,在接口中使用 kaptcha 工具类来生成验证码图片(验证码信息)并返回3 登录时从sess…...

【2023】某python语言程序设计跟学第一周内容

本文说明: 案例内容为北理工python语言程序设计课程,如有不妥请联系! 目录温度转换案例:执行结果:代码解析:白话说明:举一反三:根据输入半径求圆周长或面积执行结果:温度…...

C#学习记录——接口的实现

一小部分知识精英依旧直面核心困难,努力地进行深度钻研,生产内容;而大多数信息受众始终在享受轻度学习,消费内容。如果我们真的希望在时代潮流中占据一席之地,那就应该尽早抛弃轻松学习的幻想,锤炼深度学习…...

“ChatGPT之父”Sam Altman:我是如何成功的?

背靠微软,OpenAI能拳打谷歌,脚踢Meta,它背后的男人,必然不简单。 让我们来看一看,Sam Altman是如何一步步成长为今天这个搅动全世界的男人。 山姆奥特曼(Sam Altman) 成长和创业经历 在YC创始…...

jQuery发送Ajax请求的几种方式

概述JQuery发送ajax请求的方法有很多,其中最基本的方法是$.ajax,在其中封装的方法有 $.get, $post等。我们分别举了不同的示例。数据格式首先,浏览器与服务器之间传输数据所采用的格式,比较常见的有json,jsonp&#xf…...

Android实现连线题效果

效果图全部正确:有对有错:结果展示,纯黑色:支持图片:实现思路仔细分析可以发现,连线题的布局可以分为两部分,一个是左右两列矩形,另一个是他们之间的连线。每个矩形的宽高都一样&…...

以数据 见未来!首届未来数商大会成功举办

2月25日,2023未来数商大会在杭州未来科技城学术交流中心举办。大会发布了数商产业趋势研究报告,首次提出并探讨了完整的数商产业概念,并成立了未来数商联盟,开通了浙江大数据交易服务平台余杭专区。会上,杭州未来科技城…...

Java数据结构与算法——手撕LRULFU算法

LRU算法 力扣146:https://leetcode-cn.com/problems/lru-cache/ 讲解视频:https://www.bilibili.com/video/BV1Hy4y1B78T?p65&vd_source6f347f8ae76e7f507cf6d661537966e8 LRU是Least Recently Used的缩写,是一种常用的页面置换算法&…...

20230227英语学习

Can Clay Capture Carbon Dioxide? 低碳新思路:粘土也能吸收二氧化碳! The atmospheric level of carbon dioxide — a gas that is great at trapping heat, contributing to climate change — is almost double what it was prior to the Industria…...

校招前端高频react面试题合集

了解redux吗? redux 是一个应用数据流框架,主要解决了组件之间状态共享问题,原理是集中式管理,主要有三个核心方法:action store reduce 工作流程 view 调用store的dispatch 接受action传入的store,reduce…...

k8s node之间是如何通信的?

承接上文同一个node中pod之间如何通信?单一Pod上的容器是怎么共享网络命名空间的?每个node上的pod ip和cni0网桥ip和flannel ip都是在同一个网段10.1.71.x上。cni0网桥会把报文发送flannel这个网络设备上,flannel其实是node上的一个后台进程&…...

System V|共享内存基本通信框架搭建|【超详细的代码解释和注释】

前言 那么这里博主先安利一下一些干货满满的专栏啦! 手撕数据结构https://blog.csdn.net/yu_cblog/category_11490888.html?spm1001.2014.3001.5482这里包含了博主很多的数据结构学习上的总结,每一篇都是超级用心编写的,有兴趣的伙伴们都支…...

魔兽世界WoW注册网站搭建——-Liunx

问题背景哎 搭建了一个魔兽3.35(纯洁版)每当同学朋友要玩的时候我都直接worldserver上面打一个命令随之出现朋友的朋友也要玩想了想还是要有一个网站原本以为吧单机版里面网页的IP数据库改下可以了结果PHP报错了Unknown column sha_pass_hash in field l…...

OSG三维渲染引擎编程学习之六十八:“第六章:OSG场景工作机制” 之 “6.8 OSG内存管理”

目录 第六章 OSG场景工作机制 6.8 OSG内存管理 6.8.1 Referenced类 6.8.2 ref_ptr<>模板类 6.8.3 智能指针...

字节前端必会面试题(持续更新中)

事件传播机制&#xff08;事件流&#xff09; 冒泡和捕获 谈一谈HTTP数据传输 大概遇到的情况就分为定长数据 与 不定长数据的处理吧。 定长数据 对于定长的数据包而言&#xff0c;发送端在发送数据的过程中&#xff0c;需要设置Content-Length,来指明发送数据的长度。 当…...

内存数据库-4-[redis]在ubuntu中离线安装

Ubuntu20.04(linux)离线安装redis 官网redis下载地址 下载安装包redis-6.0.9.tar.gz。 1 下载安装 (1)解压 sudo tar -xzvf redis-6.0.9.tar.gz -C /usr/local/ cd /usr/local/redis-6.0.9/(2)编译 sudo make(3)测试 sudo dpkg -i libtcl8.6_8.6.10dfsg-1_amd64.deb sudo d…...

并非从0开始的c++ day8

并非从0开始的c day8结构体结构体嵌套二级指针练习结构体偏移量内存对齐内存对齐的原因如何内存对齐文件操作文件的概念流的概念文本流二进制流文件缓冲区文件打开关闭文件关闭fclose文件读写函数回顾按格式化读写文件文件读写注意事项结构体 结构体嵌套二级指针练习 需求&am…...

ubuntu下用i686-w64-mingw32交叉编译支持SDL、Openssl的ffmpeg库

前言 本篇博客是基于前两篇关于ffmpeg交叉编译下&#xff0c;进行再次编译操作。ubuntu下ffmpeg的交叉编译环境搭建可以参看以下我的这篇博客&#xff1a;https://blog.csdn.net/linyibin_123/article/details/108759367 &#xff1b; ubuntu下交叉编译openssl及交叉编译支持o…...

对IDEA中断点Suspend 属性理解

suspend的类型分为 1、ALL&#xff1a;有线程进入该断点时&#xff0c;暂停所有线程 2、Thread&#xff1a;有线程进入该断点时&#xff0c;只暂停该线程 讨论下不同线程在同一时间段都遇到断点时&#xff0c;idea的处理方法。假如在执行时间上&#xff0c;thread1会先进入断…...

IM即时通讯开发如何解决大量离线消息导致客户端卡顿的

大部分做后端开发的朋友&#xff0c;都在开发接口。客户端或浏览器h5通过HTTP请求到我们后端的Controller接口&#xff0c;后端查数据库等返回JSON给客户端。大家都知道&#xff0c;HTTP协议有短连接、无状态、三次握手四次挥手等特点。而像游戏、实时通信等业务反而很不适合用…...

【软件测试】测试老鸟的迷途,进军高级自动化测试测试......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 很多从业几年的选手…...

做国际网站怎么发货/全球外贸b2b网站

单页面应用&#xff08;SinglePage Web Application&#xff0c;SPA&#xff09;只有一张Web页面的应用&#xff0c;是一种从Web服务器加载的富客户端&#xff0c;单页面跳转仅刷新局部资源 &#xff0c;公共资源(js、css等)仅需加载一次&#xff0c;常用于PC端官网、购物等网站…...

山西做网站的公司哪个好/广告开户南京seo

二维平面作图 ? 三维空间作图 ? 符号作图 ? Matlab 绘图过程/原理 2 手工作图如何画出 数学软件 Matlab —— 二维平面作图 —— 三维空间作图 1 本讲主要内容......是通过描点、连线来实现的,故在 画一个曲线图形之前,必须先取得该图形上的 一系列的点的坐标(即横坐标和纵坐…...

哪个网站可以做推手/百度如何免费打广告

educoder实训平台----简历表页面的制作 第1关&#xff1a;简历表页面的结构设计 <!doctype html> <html> <head> <meta charset"utf-8"> <title>简历表</title> </head> <body> <!-- ********* Begin ********…...

知名企业核心价值观/网站优化关键词公司

Java集合学习总结 ----------------------------------------------------------------------------- 1:集合Collection(单列集合的根接口)List接口(有序&#xff0c;元素可重复)ArrayList底层数据结构是数组&#xff0c;查询快&#xff0c;增删慢。线程不安全&#xff0c;效率…...

做暧暧网站/google搜索优化

&!"#$%操作系统结构分析&郭玉东 王非非 编著西安电子科技大学出版社2 0 0 2内 容 简 介本书是对Linux 操作系统内部结构的分析&#xff0c;其内容直接来源于Linux 操作系统的源代码&#xff0c;是对作者多年来从事Linux 教学和科研工作的总结。全书从操作系统的引…...

甘肃住房建设厅网站/百度游戏

为了减少心脏搏动伪影对心脏大血管MRI图像的影响&#xff0c;一般采用心电门控技术&#xff0c;应用本法的FR时间决定于十二指肠全长约UF项不包括透视在骨关节诊断中的应用是头颈部肿瘤术前放疗的合适剂量为选出MRI不如CT的项目冠状动脉粥样硬化主要侵犯以下分支儿童短骨结核特…...