【射频IC进阶实践教程】2.6 LNA版图设计及DRC/LVS验证

  • 射频集成电路的版图设计非常关键,他对寄生参数非常敏感,需要使其最小化。还需要注意相互耦合的方式
  • 本次课程主要介绍射频IC的一些相关布局和连线方面的考虑。

一、版图设计

1. 版图的元件布局

  • 首先打开对应的原理图
    在这里插入图片描述
  • 点击进行版图设计
    在这里插入图片描述
  • 由于已经有做好的版图了,所以直接打开查看现存的版图
    在这里插入图片描述
  • 然后选择布局使用到的layout1
    在这里插入图片描述
  • 然后点击ok,就会打开layout版图了
  • 可以看到这里的布局都是已经完成了的
    在这里插入图片描述
  • 然后按住键盘上的shift+f把所有的器件内部layout都显示出来。

(1)元器件layout调入方法

  • 第一种方法是按住键盘上的i键,从工艺库里面调入这些器件的layout
    在这里插入图片描述

  • 选择对应晶体管的layout
    在这里插入图片描述

  • 然后就可以调入器件了

  • 但是这种方法有一个缺点是,没有和原理图有对应的关系,但是不糊已影响最终版图的设计,验证
    在这里插入图片描述

  • 第二种方法是从原理图中选中需要调入进来的晶体管
    在这里插入图片描述

  • 然后在layout选择pick from schematic
    在这里插入图片描述

  • 然后所有对应的元器件都会被调入进来了
    在这里插入图片描述

  • 这种晶体管调入进来的时候是带有guardring外框的,每个晶体管都会单独包含一个deep n-well,会占用很大的版图空间,不方便版图的连线和布局。

  • 下面版图包括了最中间的NMOS晶体管,外围有n井的环,它整个是包含有deep n-well。它通过n-well环(蓝色)和deep n-well(紫色)进行共同的隔离作用,就可以把晶体管中间区域(紫色框)就可以完全单独隔离出来p-sub,这是跟外部的p-sub完全隔离开的,因为在内部p-sub四周有n-well,底板跟p-sub之间还有一个deep n-well,这是可以跟外部的p-sub进行隔离的。

  • deep n-well的横截面和做界面的图可以去参考工艺文档的一些说明。
    在这里插入图片描述

(2)去除外围n-well方法

  • 那么如果每个晶体管都采用这种结构,那么版图会占用非常大的面积,而且每个晶体管之间的距离会非常远,这样会导致射频晶体管尺寸会非常大,匹配起来会非常困难。
  • 因此我们再做射频器件版图的时候,通常会把它们打散,然后再来画这个版图,最后再把他们拼整合在一起。
  • 对于这个射频晶体管,我们可以去掉外围的deep n-well和n well
  • 有三种方法可以去掉外围的n well
  • 方法一:选择外围n well的属性,取消勾选deep nwell bodytie
    在这里插入图片描述
  • 取消掉之后外围的deep n-well还是存在的,只是消失看不见
    在这里插入图片描述
  • 这时候去画版图的时候就会很不方便,相邻的晶体管必须间隔很远才能满足DRC的要求。
  • 但其实我们是希望所有器件都画在同一个deep n-well里面, 然后再边缘在包围n-well的环(绿色),把LNA的衬底完全隔离出来。所以这时候再使用这种类型的器件,就不适合画版图。
    在这里插入图片描述
  • 方法二:打散晶体管的版图
  • 选择flatten打散
    在这里插入图片描述

在这里插入图片描述

  • 然后我们可以把dnw层给删除掉
    在这里插入图片描述
  • 把nwell层也给删除掉
    在这里插入图片描述
  • 删除掉之后还有标志层(紫色)
    在这里插入图片描述
    在这里插入图片描述
  • 我们可以选择删除掉,或者将这个标志层给缩小,只包含有这个晶体管就可以了
    在这里插入图片描述
    在这里插入图片描述
  • 然后可以把上面缩好的晶体管做成一个新的cell,之后就可以直接调用进来了
  • 但是会出现一个问题是,如果后续需要再去修改版图的尺寸,就会非常的困难,需要重新去做一个新的cell,灵活性就会变得非常的差。
  • 方法三:选择不带有deep n-well的晶体管,这样画版图的时候会方便一些。
  • 实际上无论带不带deep n-well的晶体管,他的模型性能参数都是完全一样的,唯一的区别是版图上的差异带不带deep n-well。

在这里插入图片描述

  • 我们可以采用替换的方式,在画版图的时候,先用不带dnw的晶体管,把参数改成跟原理图上的参数一样
  • 先画好版图,之后整个LNA都加上deep n-well,再做LVS检查的时候,这个晶体管就会变成带dnw类型的晶体管。既能通过LVS,版图也不会有错
  • 这样后续要修改晶体管尺寸的时候就会很灵活,直接该参数尺寸
    在这里插入图片描述
  • 这里只有核心电路部分采用deep n-well晶体管,其他偏置电路部分都是采用普通的晶体管。
  • 那么对于其他采用普通类型的晶体管,在整个LNA画上deep n-well后,就会使其类型发生改变了。
  • 那么就需要看工艺是否支持识别这些普通类型的晶体管了。而我们现在采用的这种工艺是支持的。就是在设计的时候,除了射频晶体管以外,普通的晶体管是否带deep n-well,不是根据画的dnw这一层来识别的,而是由dnwtr这一层来识别的(即dnw晶体管类型的标志层),由这个层来决定是不是带这个deep n-well
  • 像smic中芯科技是有这种功能的,但是像tsmc台积电工艺库是不支持这种功能的,它是没有dnwtr层的,因此其普通类型的晶体管放在了dnw层里面就会被识别为dnw类型晶体管,产生错误。在原理图上就要把晶体管替换成dnw类型的晶体管。
    在这里插入图片描述
  • 这里我们拿个dnw晶体管来举个例子
    在这里插入图片描述
  • 中间蓝色部分是晶体管实际的部分,外围是加了deep n-well(绿色)的环,外面又加了n-well(紫色)的环,把里面的晶体管衬底单独隔离出来。
  • 然后它还加入了dnwtr层(dnw标志层)(绿色面积部分),表示在这个面积覆盖下的区域都是dnw的地方
    在这里插入图片描述
  • dnwtr层
    在这里插入图片描述
  • 这时候去过LVS的时候,原理图对应的晶体管必须调用的是带dnw类型的晶体管。
  • 但如果没有dnwtr层覆盖的区域(绿色),即使最终画进了dnw层,最终也会识别为普通类型的晶体管

(3)版图整体的布局

  • 由于布局的好坏会直接影响到整个射频集成电路的性能,因此布局一定要合理。
  • 所以我们首先要对LNA的版图做一个整体的考虑
  • 我们希望整个LNA能够跟其他电路更好的隔离开,因此我们把整个LNA电路都放在了深N井deep n-well里面了,那么对应的器件就会不太一样。
  • 首先是核心电路部分的dnw射频晶体管,这些晶体管是做在整个deep n-well上面的,也就是它跟衬底之间具有一定的隔离作用,这样其他电路对LNA的干扰耦合就会减小很多。
    在这里插入图片描述
  • 这里六个射频晶体管分两层并联排在一起。
  • 第一层是cascode级晶体管
  • 第二层是输入级晶体管和单转双功能的共源极晶体管
    在这里插入图片描述
  • 对应原理图核心电路部分的四个射频晶体管
    在这里插入图片描述
  • 负载电阻放在核心电路的晶体管上面
  • 负载电路上面接的是电源
    在这里插入图片描述
  • 整个LNA电路,上面接的是电源vdd,下面接的是射频输入端。
  • 整体的信号输入是下方输入,右侧输出
  • 其他部分电路根据信号的走线方向来进行排布的
    在这里插入图片描述
  • 对于输入的MOS电容晶体管
    在这里插入图片描述
  • 放在整个版图的下面,连接射频输入端
    在这里插入图片描述
  • 偏置电阻
    在这里插入图片描述
    在这里插入图片描述
  • 增益控制的电阻和开关晶体管
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 核心电路的隔直电容
    在这里插入图片描述
    在这里插入图片描述
  • cascode级晶体管输入隔离电阻
    在这里插入图片描述
    在这里插入图片描述
  • 偏置电路的电阻
    在这里插入图片描述
    在这里插入图片描述
  • 偏置电路部分所有的PMOS晶体管,因为其衬底需要接电源,所以都放置在版图的上面
    在这里插入图片描述
  • 偏置电路的NMOS晶体管全部放置在PMOS晶体管的下面
    在这里插入图片描述
  • 而对于偏置电路开关晶体管,pd控制晶体管,都放在偏置电路NMOS和核心电路晶体管之间。方便连线
    在这里插入图片描述
    在这里插入图片描述
  • 滤波电容放置在版图的下端,即射频输入端
    在这里插入图片描述
    在这里插入图片描述
  • 反相器的PMOS也一样放置在版图上侧

在这里插入图片描述
在这里插入图片描述

  • 而反相器的nmos晶体管放在对应的pmos晶体管的正下方
    在这里插入图片描述
  • 这样反相器的源漏极就能直接连接在一起,连线比较方便
    在这里插入图片描述

版图元器件布局总结

  • 在对射频电路进行布局的时候,一定要优先考虑射频信号的走线方向,和走线距离远近,是否顺畅的程度,然后再考虑在其他地方放置偏置电路部分和控制电路部分。
  • 对于占用面积较大的电容版图,就需要去考虑整个版图如何才能更规整,版图的面积才能更小,连线更方便顺畅
    在这里插入图片描述

2. 版图连线

(1)MOS电容补偿走线寄生电容

  • 版图连线对于偏置电路部分没有太大的要求,只要把线能够能够连起来就可以了。
  • 重点是射频电路的连线,特别是当频率比较高以后,射频电路的射频信号的走线的宽长都会对整个电路的寄生参数产生很大的影响。
  • 可以看到核心电路的晶体管离下面的射频输入端是隔的比较远的,就会到来输入线上面的寄生电容比较大。
    在这里插入图片描述
  • 但是由于我们设计的LNA电路结构,在输入端接入了额外的补偿MOS电容,来使输入的匹配电路能够减的更小一些。
  • 所以在输入IP这根走线上面,如果他有更多的寄生电容,并不会对整个电路的性能有太大的恶化。当在后仿真,如果输入线上面的寄生电容太大了,可以通过将mos电容的尺寸减小,让其容值减小一些来补偿版图走线上面寄生电容的增加。这样输入线上的寄生电容就不会对整个电路性能参数造成太大的影响。
  • 因此寄生电容还是次要的影响,更需要关注的是走线的阻抗
    在这里插入图片描述

(2)整理布局及初步连线

  • 打开layout2文件,是连线连了一半的结果
    在这里插入图片描述

  • 这里是把所有电路和元器件都进行了对齐,
    在这里插入图片描述

  • 比如射频晶体管,我们让它们直接靠在一起,然后进行水平和垂直方向的对齐。
    在这里插入图片描述

  • 像其他的晶体管也进行靠近和重叠
    在这里插入图片描述
    在这里插入图片描述

  • nmos晶体管也进行了重新的整理,插入了一些单片晶体管,使得版图能够更匹配对称,版图的性能会更好一些。
    在这里插入图片描述

  • 还对偏置电路输入级进行了初步的连线
    在这里插入图片描述

  • 这个版图比较重要的一点是,规划了整个电源和地的走线。

  • 上面这一层作为电源(vdd)的走线在这里插入图片描述
    在这里插入图片描述

  • 下面这根线是作为GND的走线

  • 放在中间的原因是为了让射频晶体管能够就近接在走线上,也可以使电流镜和射频晶体管的地能够更近一些
    在这里插入图片描述
    在这里插入图片描述

(3)完成全部连线

  • 打开layout3
    在这里插入图片描述

  • 所有连线都已经基本完成了
    在这里插入图片描述

  • 偏置部分连线比较简单,只要着重去考虑它的匹配对称性部分。通常采用左右对称,或者交叉耦合排列的方式,来进行更好的匹配性设计。
    在这里插入图片描述

  • 现在来看核心电路的射频晶体管连线部分。

  • 首先是输入线,是从版图的中间,直接从下方穿上去,连接到射频晶体管的栅极
    在这里插入图片描述
    在这里插入图片描述

  • 可以看到射频晶体管的栅极都是连接在一起的。
    在这里插入图片描述

  • 输入线还连接了偏置电阻

  • 我们再设计版图的时候可以做灵活的处理,比如串联的个数问题。如果每个晶体管都串联两个的话,整个晶体管就会被拉的很长。这样就会导致整个版图往左右会长很宽,会占用更大的面积。

  • 电阻左侧是输入,右侧是输出,这样连线也会比较方便,不会有太大的交叉问题出现。

  • 因此我们再设计版图的时候,需要去根据版图的需求,去灵活更改相关期间的一些尺寸和宽敞比等参数,来确保版图连线的方便,使整个版图的尺寸最小化。
    在这里插入图片描述

  • 因此我们把电阻分成了三段,这样电阻的单个长度就变短了,能够更好的去布局。
    在这里插入图片描述

  • 这个偏置电阻出来还接入了两个增益控制电阻
    在这里插入图片描述
    这里我们也做了相应的尺寸改变,为了让版图更好的连线,使其尺寸跟偏置电阻相等的长度,这样就可以把电阻排列在一起。
    在这里插入图片描述

  • 尺寸。同比例放大了宽度,然后增加了其长度,保持他的阻抗相等。
    在这里插入图片描述

  • 而在layout2里面,尺寸是不一样的
    在这里插入图片描述
    在这里插入图片描述

  • mos电容电源接在栅极,源极和漏极接在GND上面
    在这里插入图片描述

  • 但是mos电容的gnd并没有单独连接一根线到gnd的总线上去,而是通过滤波电容的另一个极板连接到gnd上。由于滤波电容整个极板都是接gnd,就可以接在他接地的极板上面。

  • 因此可以共用连线,连接到gnd上去
    在这里插入图片描述
    在这里插入图片描述

  • 对于射频输入晶体管,其输入接到了栅极,然后漏极是连接到了一起,源极是接在了gnd上面

  • cascode的栅极接在了偏置电阻上,并全部都连接在了一起
    在这里插入图片描述
    在这里插入图片描述

(4)完成外围guarding包围

  • 然后打开layout4
    在这里插入图片描述
  • 包括了所有连线和外部的cell ring
    在这里插入图片描述
  • 整个LNA的版图加了两个guarding
  • 内层是p型衬底的guarding保护环
  • 外层是n-well的保护环,主要用于做deep n-well隔离用的,把整个LNA的p衬底都完全隔离开
    在这里插入图片描述
  • 还把左右的衬底都连接在了一起,金属一层
    在这里插入图片描述
    在这里插入图片描述
  • n-well连接的是电源
    在这里插入图片描述
  • deep n-well(绿色)把整个LNA都包围起来。
    在这里插入图片描述
  • dnw外围还有n-well的环(紫色),把他们全部隔离开。相当于是在这个地方挖了坑,放在这个屏蔽盒里面,那么其他电路对LNA的干扰和耦合就会变得非常小,有利于提升LNA的抗干扰能力。
    在这里插入图片描述

3. DRC验证

  • 完成版图之后,就是进行DRC检查了
    在这里插入图片描述
  • 选择之前保存的runset
    在这里插入图片描述
  • 直接点run drc运行
  • 能够看到还有19个错误
  • 然后把错误全部都筛选出来
    在这里插入图片描述
  • 第一个是跟dnw相关的
  • n-well要比外围deep n-well大2um
    在这里插入图片描述
  • 回到版图中,单独显示出nw和dnw层
    在这里插入图片描述
  • 表示这两个边界要相隔2um
    在这里插入图片描述
  • 第二个错误也是同样的
    在这里插入图片描述
  • dnw往内部走也同样要大于2um
    在这里插入图片描述
  • 第三个是AA层(有源层)对nwell和p型有源层之间的距离
    在这里插入图片描述
  • 因此要把下面的距离要拉开一些
    在这里插入图片描述
  • 第四个是关于金属密度,也就是栅极或者多晶硅,它的密度要求大于15%
  • 对于这个小电路模块可以先不用管
    在这里插入图片描述
  • 第五个是关于GT层作为mos的栅极的时候,一定要被n型注入层(sn)或者p型注入层(sp)全部包围起来。
    在这里插入图片描述

在这里插入图片描述

  • 第六个是SN的边距要求小于0.3
    在这里插入图片描述
  • 由于这里是在两层晶体管之间,我们可以画一个SN层/SP层,把他们全部包围起来。
    在这里插入图片描述
  • SAB和AA层要大于0.2
    在这里插入图片描述
  • 报的是衬底接触环靠的太近了
    在这里插入图片描述
  • sn和sp覆盖面积要大于0.28
    在这里插入图片描述
    在这里插入图片描述
  • m1的间距要大于0.17,还是靠的太近了,需要挪开一些
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 这里body层边界不用去管
    在这里插入图片描述
  • 最后一个是MIM电容与连线之间的距离。
  • 指过孔连线的地方和顶层极板之间金属距离太近了,要求大于2um。
  • 这里可以把过孔的类型进行修改,把行数减小一些,把列数加宽一些。把距离拉远到2um
    在这里插入图片描述
    在这里插入图片描述

4. LVS验证

  • 打开修改好的DRC验证后的layout
    在这里插入图片描述

在这里插入图片描述

  • 然后跑LVS验证
    在这里插入图片描述
  • 直接运行发现LVS是没有通过的。
    在这里插入图片描述
  • 查看错误发现,有些事在原理图上有的但是layout上没有
    在这里插入图片描述
  • 发现是在设计版图的时候加上的damin电阻没有连接,其两端是完全悬空的状态
    • 所以我们需要把这个电阻两端短接起来,然后连接到上面sub
      在这里插入图片描述
  • 另一个错误是晶体管尺寸对不上的问题
  • 版图上有这个器件,但是原理图上找不到有。还是damin电阻的问题
    在这里插入图片描述
    在这里插入图片描述
  • 打开通过LVS验证的版图
    在这里插入图片描述
  • 下面这个版图是DRC和LVS都能通过的
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

uviewplus中的时间单选框up-datetime-picker的在uni-app+vue3的使用方法

uviewplus中的时间单选框up-datetime-picker的使用方法 前言 在实际开发中,我们经常需要使用时间选择器来让用户选择特定的时间。本文将详细介绍uviewplus中up-datetime-picker组件的使用方法,特别是在处理年月选择时的一些关键实现,因为官方有很多相关的功能和方法…

Spring Bean 的生命周期和获取方式

优质博文:IT-BLOG-CN 一、Spring Bean 的生命周期,如何被管理的 对于普通的 Java对象,当 new的时候创建对象,当它没有任何引用的时候被垃圾回收机制回收。而由 Spring IoC容器托管的对象,它们的生命周期完全由容器控…

【Spring MVC篇】返回响应

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【Spring MVC】 本专栏旨在分享学习Spring MVC的一点学习心得,欢迎大家在评论区交流讨论💌 目录 一、返回静态页面…

使用Python创建API服务器并打包成exe文件

本文来记录下使用Python创建API服务器并打包成exe文件 文章目录 概述简述API服务器创建打包API服务器为exe文件本文小结 概述 在软件开发中,API服务器是连接前端和后端服务的桥梁,而Python因其丰富的库和框架,如Flask、Django等,成…

MHA切换过程

MHA(Master High Availability)是一套用于MySQL数据库的高可用性解决方案,它能够在主服务器发生故障时自动将一个从服务器提升为新的主服务器,从而实现数据库服务的持续可用。MHA的切换过程主要包括以下几个步骤: 1. …

NextUI 教程:打造美观高效的React UI

NextUI 教程:打造美观高效的React UI 项目地址:https://gitcode.com/gh_mirrors/ne/nextui 1. 项目介绍 NextUI 是一个轻量级、快速且现代化的React UI库,提供了一系列优雅的组件以帮助开发者构建令人印象深刻的Web应用。它注重性能和用户体验&#x…

Python和Java后端开发技术对比

在当今互联网技术飞速发展的时代,后端开发扮演着至关重要的角色。Python和Java作为两大主流的后端开发语言,各自具备独特的优势和应用场景。让我们深入了解这两种技术的特点和选择建议。 Java后端开发一直是企业级应用的首选方案。它以强大的类型系统、…

Java HashMap

HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。 HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。 HashMap 是无序的&#x…

模型案例:| 帐篷检测模型!

导读 2023年以ChatGPT为代表的大语言模型横空出世,它的出现标志着自然语言处理领域取得了重大突破。它在文本生成、对话系统和语言理解等方面展现出了强大的能力,为人工智能技术的发展开辟了新的可能性。同时,人工智能技术正在进入各种应用领…

实验日志——DETR

DETR训练日志 1. 代码来源 代码源自作者的Github: https://github.com/facebookresearch/detr?tabreadme-ov-file 2. 数据来源 在DETR中只使用了COCO2017数据集,其中训练集有118288张图像,验证集有5001张数据,测试集有40671张数据&#…

18、IO流:

18、IO流: 这一章很枯燥无聊~ 文件: 什么是文件: 文件,对我们并不陌生,文件时保存数据的地方,比如我们经常使用的word文档,txt文档,excel文档…都是文件。它既可以保存一张图片&…

24.两两交换链表中的节点 python

两两交换链表中的节点 题目题目描述示例 1:示例 2:示例 3:提示:题目链接 题解解题思路python实现代码解读提交结果 题目 题目描述 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须…

解决 git 报错 “fatal: unable to access ‘https://github.com/.../.git‘: Recv failure Connection was rese

目录 前言 方法一:取消代理设置 方法二:设置系统代理(推荐) 方法三 方法四:不挂梯子时 前言 在使用 Git/Git小乌龟 进行代码管理的过程中,经常会遇到各种各样的问题,其中之一就是在执行 g…

推荐8款自动化软件测试必备工具

在现代软件测试开发领域,自动化测试工具的使用已经变得至关重要。 这些工具不仅提高了测试效率,还确保了软件质量和稳定性。 本文将向您介绍8款自动化软件测试必备工具,它们涵盖了各个层面的测试需求,从而助力测试团队更好地应对…

MySQL聚合函数查询

【图书推荐】《MySQL 9从入门到性能优化(视频教学版)》-CSDN博客 《MySQL 9从入门到性能优化(视频教学版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…

Vue3 完结

组合式API - setup选项 组合式API可理解为一系列函数,通常需要调用这些函数去编写将来的组件逻辑; 而setup为组合式API的入口(只有先写了setup才能往里写组合式API的函数) setup选项的写法及执行时机 执行时机在beforeCreate之前…

简洁的移动端登录注册界面

非常简洁的登录、注册界面模板&#xff0c;使用uni-app编写&#xff0c;直接复制粘贴即可&#xff0c;无任何引用&#xff0c;全部公开。 废话不多说&#xff0c;代码如下&#xff1a; login.vue文件 <template><view class"content"><view class&quo…

2024NIPS | 在目标引导下利用强化学习范式进行图像冲印调优

文章标题&#xff1a;Goal Conditioned Reinforcement Learning for Photo Finishing Tuning 原文链接&#xff1a;RLPixTuner 本文是上海AI Lab联合香港中文大学&#xff08;薛天帆等人&#xff09;发表在2024NIPS上的论文。 1. Abstract 图像冲印调优旨在自动化对图像冲印管…

【Spring】Cookie与Session

一、Cookie是什么&#xff1f; Cookie的存在主要是为了解决HTTP协议的无状态性问题&#xff0c;即协议本身无法记住用户之前的操作。 “状态” 的含义指的是: 默认情况下 HTTP 协议的客端和服务器之间的这次通信&#xff0c;和下次通信之间没有直接的联系 但是实际开发中&…

【最新】linux安装docker并配置加速源

我这边之前本地创建了个虚拟机&#xff0c;linux系统的&#xff0c;用于部署服务器。有时安装一些常用工具或者中间件&#xff0c;还是用docker安装方便&#xff0c;而且docker还有编排服务等功能&#xff0c;实际使用中还是会省不少事的&#xff0c;这里记录下安装docker的过程…