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

【XILINX】记录ISE/Vivado使用过程中遇到的一些warning及解决方案

前言

        XILINX/AMD是大家常用的FPGA,但是在使用其开发工具ISE/Vivado时免不了会遇到很多warning,(大家是不是发现程序越大warning越多?),并且还有很多warning根据消除不了,看着特心烦?

        我这里汇总一些我遇到的和记录的,给大家参考,祝大家都是0warning选手。


列表

warning:HDLCompiler:1499 - "*\RAM_16b_1k.v" Line 39: Empty module remains a black box.

在《Xilinx ISE 5.x 使用详解》中翻到如下内容:P71 

    书上有云: 

    “IP核在综合时一般被认为是黑盒子(Black Box),综合器不对黑盒子做任何编译。将IP核加入工程有两种方法,一为在工程中新建Coregen IP类型资源,另一种是针对第三方综合工具而言,同时避免了在新工程中需要重新加入IP核资源的麻烦。也就是将IP核声明成黑盒子,具体操作时可以利用IP核生成时生成的仿真文件和IP核实例化文件(.veo,.vho),将仿真文件中的IP核的相关部分原封不动地拷贝到顶层文件中去,声明IP核模块,然后将实例化文件内容粘贴到模块的实例化部分。 

    然面,使用Synplify Pro等综合工具综合IP核等Xilinx硬件原语时,需要调用相应Xilinx器件的硬件原语声明文件。位于Synpliy\lib\Xilinx”子目录中的virtex.v/vhd,virtexe.v/vhd,virtex2.v/vhd,virtex2p.v/vhd等文件就是硬件原语声明文件。调用时用"include"命令。 

(转帖)Xilinx CORE Generator心得 - cdy200824的日志 - 电子工程世界-论坛

在生成核开头的注释中加上如下注释

//synthesis attribute box_type "black_box" 


warning: HDLCompiler:413 - "*\NUC_RAM_INT.v" Line 145: Result of 10-bit expression is truncated to fit in 9-bit target.

计数器的累加值前加上

  cnt 1'b1;


"WARNING:Route:455 - CLK Net:trn_clk_OBUF may have excessive skew because 0 CLK pins and 1 NON_CLK pins failed to route using a CLK template."

Solution

This message informs the user that some loads on the clock net are not clock pins. Therefore, the clock template that is normally used to connect clock pins will not be used to connect the loads. A different routing that involves local routing will be used, potentially inducing some skew on the clock net.

Opening your design in FPGA EDITOR will allow you to see what loads are connected to the clock net, and the cause of the warnings. The amount of skew on the net will be reported in the Place and Route report. If the loads on the net shown in FPGA Editor are in accord with your design, the skew reported in the PAR report is not critical for the design, and the timing constraint requirement on that net is met, then this warning can be safely ignored.

实例原因:在代码中用到这样的语句时( aa’event and aa=’1’), aa 不是时钟信号,最多只是时钟信号产生的一类周期信号, aa 被作为了另一个 进程或模块的类似周期信号的作用。(我是在行场信号发生器中 出现的这样的问题,用产生的行同步信号(行同步信号是由全局时钟信号驱动产生的)再去驱动产生场同步信号,产生的场同步信号相对与输入的全局时钟,有一定 的倾斜)


"WARNING:Xst:647 - Input is never used."or"WARNING:Xst:648 - Output is never used."Solution This particular port has been declared in your HDL description, but does not drive or is not driven by any internal logic. Unused input ports will remain in the design, but they will be completely unconnected. If the port is not intended to be used, this message can be safely ignored. To avoid this message, remove any loadless or sourceless elements from your HDL description. Output ports will remain in the final netlist and will be driven by a logic 0. To avoid the message and to save the port resource, remove the unused output port from your HDL description.

实例原因:一般输入端口不要预留,即使不使用,在代码中定义的输入端口就一定要有输入的;而输出端口不用到的可以用 OPEN 封上,最常见的是在利用 DLL 和 DCM 时,CLK90,CLK180,CLK270 等一般不用,在端口连接的时候都用 OPEN 封上。


Place:866 - Not enough valid sites to place the following IOBs:

IO Standard: Name = LVCMOS25, VREF = NR, VCCO = 2.50, TERM = NONE, DIR = BIDIR, DRIVE_STR = 12IO

This may be due to either an insufficient number of sites available on the device, too many prohibited sites,or incompatible I/O Standards locked or range constrained to I/O Banks with valid sites.

This situation could possibly be resolved by one (or all) of the following actions:

a) Grouping IOBs of similar standards into a minimum amount of I/O Banks by using LOC or range constraints.

b) Maximizing available I/O Banks resources for special IOBs by choosing lower capacity I/O Banks if possible.

c) If applicable, decreasing the number of user prohibited sites or using a larger device.

Pack:1654 - The timing-driven placement phase encountered an error.

原因:

Pack:1654 - The timing-driven placement phase encountered an error.

这个错位是由上一个错位866引起的。

866是因为顶层文件中输出信号名mcb1_rzq,但是ddr_mig中rzq的输出信号写的是rzq,这就导致rzq的输出连不上。


Xst:1895 - Due to other FF/Latch trimming, FF/Latch (without init value) has a constant value of 0 in block . This FF/Latch will be trimmed during the optimization process.

Xst:1896 - Due to other FF/Latch trimming, FF/Latch has a constant value of 0 in block . This FF/Latch will be trimmed during the optimization process.

Xst:1898 - Due to constant pushing, FF/Latch is unconnected in block .

解决方案:(*KEEP = "TRUE" *)reg [23:0] data_white_ori;

这些寄存器可以设置保留不被优化。


Xst:2677 - Node of sequential type is unconnected in block .

解决办法:That warning is caused by lot of things.....

One main reason is if your outputs are not connected..ie if you are not reading the module outputs the ise optimisation step removes all signal inside your block and fire a 2677 warning...

check the module outputs。

方法1:把定义多的,用不到的寄存器位宽改成合适大小。

方法2:(*KEEP = "TRUE" *)reg [15:0] ram_rd_data_reg=16'b0; 定义初值,并保持不被优化 有些添加后会出现其他类型的警告


Xst:1710 - FF/Latch (without init value) has a constant value of 0 in block . This FF/Latch will be trimmed during the optimization process.

解决:(*KEEP = "TRUE" *)reg [ 7: 0] register_addr=8'b0;给初始值


HDLCompiler:634 - "*\rtl\ddr2_mig_6p.v" Line 365: Net does not have a driver.

线网没有驱动,那就给加个初值吧。

wire c3_p3_rd_clk=1'b0;


Xst:653 - Signal is used but never assigned. This sourceless signal will be automatically connected to value GND.

信号被用到,但是没有赋初值,所以默认接到GND

加初值,解决问题 assign rd_franum = 9'd0;


HDLCompiler:189 - "*\poc_framavg.v" Line 298: Size mismatch in connection of port . Formal port size is 9-bit while actual signal size is 16-bit.

给输入接口的位宽不对,addra定义为9bit,给了10bit,改变输入数据的位宽为9bit。


ERROR:HDLParsers:3562 - pepExtractor.prj line 1 Expecting 'vhd ' or 'verilog' keyword, found 'work'。 SolutionThis occurs when there are spaces embedded in the project location.

A bad example for project location would be:C:/Documents and Settings/User/example.ise.

A good example fpr project location would be:C:/ISE_tests/example.ise.

实例原因:在 ISE9.1 的版本里,在行为仿真和使用约束编辑器的时候会遇到,主要原因是工程的路径名里有空格一类的不被要求的非英文字符。


"ERROR:Xst:2587 Port of instance has different

type in definition " .

Solution

Compare the component declaration and instantiation to the submodule that is instantiated. When this error occurs, the declaration matches the instantiation, but does not match the port declarations of the submodule.Change either the port declarations in the declaration/instantiation pair or the submodule port declarations so that they match. This error is specific to the types of ports in the submodule.

实例原因:一般是子模块宣称和子模块的实体定义中端口的宽度和类型(in, out, inout,buffer)不匹配造成的。


XST can generate very large log files for certain designs. In some cases, the generation of these log files can even cause an increase in runtime. How can I eliminate or hide certain frequently generated messages?

Solution

For users of XST via Project Navigator Starting in ISE 7.1i, Project Navigator has the capability to do message filtering for all Xilinx tools. Please refer to the Project Navigator help on how to use this method.

For users of XST via command line You can hide specific messages generated by XST at the HDL or Low-Level Synthesis steps in specific situations by using the XIL_XST_HIDEMESSAGES

environment variable. This environment variable can have one of the following values:

-- none: maximum verbosity. All messages are printed out. This is the default.

-- hdl_level: reduce verbosity during VHDL/Verilog Analysis and HDL Basic and Advanced Synthesis.

-- low_level: reduce verbosity during Low-level Synthesis

-- hdl_and_low_levels: reduce verbosity at all stages

The following messages are hidden when hdl_level or hdl_and_low_levels values are specified for the XIL_XST_HIDEMESSAGES environment variable:

WARNING:HDLCompilers:38 - design.v line xx Macro 'my_macro' redefined

NOTE: This message is issued by the Verilog compiler only.

WARNING:Xst:916 - design.vhd line xx: Delay is ignored for synthesis.

WARNING:Xst:766 - design.vhd line xx: Generating a Black Box for component comp.

Instantiating component comp from Library lib.

Set user-defined property "LOC = X1Y1" for instance inst in unit block.

Set user-defined property "RLOC = X1Y1" for instance inst in unit block.

Set user-defined property "INIT = 1" for instance inst in unit block.

Register reg1 equivalent to reg2 has been removed. The following messages are hidden when low_level or hdl_and_low_levels values are specified for the XIL_XST_HIDEMESSAGES environment variable:

WARNING:Xst:382 - Register reg1 is equivalent to reg2. Register reg1 equivalent to reg2 has been removed.

WARNING:Xst:1710 - FF/Latch reg (without init value) is constant in block block.

WARNING:Xst 1293 - FF/Latch reg is constant in block block.

WARNING:Xst:1291 - FF/Latch reg is unconnected in block block.

WARNING:Xst:1426 - The value init of the FF/Latch reg hinders the constant

cleaning in the block block. You could achieve better results by setting this init to value.

实例原因:在综合时,有很多的综合警告是可以忽略的,以上大致的罗列几项。


"WARNING:Xst:737 - Found n-bit latch for signal ." The listing for "n" is the width of the latch.If latch inference is intended, you can safely ignore this message.However, some inefficient coding styles can lead to accidental latch inference. You should analyze your code to see if this result is intended. The examples below illustrate how you can avoid latch inference.

实例原因:一般出现这样的问题都是代码出现了锁存器,因避免这样的代码写法,电路会不稳定,因利用触发器去寄存数据在时钟沿。

Solution 1

Include all possible cases in the case statement

Verilog

always @ (SEL or DIN1 or DIN2)begincase (SEL)2'b00 : DOUT2'b01 : DOUT2'b10 : DOUTendcaseend

VHDL

process (SEL, DIN1, DIN2)begincase SEL iswhen "00" => DOUTwhen "01" => DOUTwhen "10" => DOUTend case;end process;

These two examples create latches because there is no provision for the

case when SEL = "11." To eliminate the latches, add another entry to deal

with this possibility.

Verilog

2'b11 : DOUT

VHDL

when "11" => DOUT

Using the "DEFAULT" (Verilog) or "WHEN OTHERS" (VHDL) clause always works,

but this can create extraneous logic. This is always the safest

methodology, but might produce a larger and slower design since any

unknown state has logic that is needed to bring it to a known state.

Solution 2

Assign to all the same outputs in each case.

Verilog

always @ (SEL or DIN1 or DIN2)begincase (SEL)2'b00 : DOUT2'b01 : DOUT2'b10 : DOUT2'b11 :beginDOUTTEMPendendcaseend

VHDL

process (SEL, DIN1, DIN2)begincase SEL iswhen "00" => DOUTwhen "01" => DOUTwhen "10" => DOUTwhen "11" =>DOUTTEMPend case;end process;

These examples infer latches because the "11" case assigns two outputs,

while the others assign only one. Looking at this case from TEMP's point

of view, only one of four possible cases are specified, so it is

incomplete. You can avoid this situation by assigning values to the exact

same list of outputs for each case.

Solution 3

Make sure any "if / else if" statements have a concluding "else" clause:

VHDL:

process (ge, din)beginif (ge = '1') thendout_aelsedout_a"else" statement.end if;end process;

Verilog:

always @(ge or din)if (ge) dout_aelse dout_astatement.

在不影响电路功能的情况下,要写完整的 if--else 语句。(对于时钟沿触发时,是不要 else

的)


ERROR:Place:1018 - A clock IOB / clock component pair have been found that are not

placed at an optimal clock IOB / clock site pair. The clock component is

placed at site . The IO component is placed at site

. This will not allow the use of the fast path between the IO and the Clock buffer. If

this sub optimal condition is acceptable for this design, you may use the

CLOCK_DEDICATED_ROUTE constraint in the .ucf file to demote this message to a

WARNING and allow your design to continue. However, the use of this override is highly

discouraged as it may lead to very poor timing results. It is recommended that this error

condition be corrected in the design. A list of all the COMP.PINs used in this clock

placement rule is listed below. These examples can be used directly in the .ucf file to

override this clock rule. < NET "Ref_Clk_p" CLOCK_DEDICATED_ROUTE = FALSE; >

解决方法: CLK16_inst 和 Ref_Clk 只都用 BUFG,或都用 IBUFG.(个人验证解决问题,但

不保证一定解决问题)


WARNING:PhysDesignRules:781 - PULLUP on an active net. PULLUP of comp

Flash_rst_n is set but the tri state is not configured. Your problem is in the source code,not your constraints. It's complainingthat you don't ever tristate the signal, either because your equations don't have a tristate term or because that term has been optimised away.

就是非输入加上拉后,没有配置三态。这是程序的出错,不关 constraints。

相关文章:

【XILINX】记录ISE/Vivado使用过程中遇到的一些warning及解决方案

前言 XILINX/AMD是大家常用的FPGA&#xff0c;但是在使用其开发工具ISE/Vivado时免不了会遇到很多warning&#xff0c;(大家是不是发现程序越大warning越多&#xff1f;)&#xff0c;并且还有很多warning根据消除不了&#xff0c;看着特心烦&#xff1f; 我这里汇总一些我遇到的…...

Tableau进阶--Tableau数据故事慧(20)解构Tableau的绘图逻辑

官网介绍 官网连接如下&#xff1a; https://www.tableau.com/zh-cn tableau的产品包括如下&#xff1a; 参考:https://zhuanlan.zhihu.com/p/341882097 Tableau是功能强大、灵活且安全些很高的端到端的数据分析平台&#xff0c;它提供了从数据准备、连接、分析、协作到查阅…...

45.0/HTML 简介(详细版)

目录 45.1 互联网简介 45.2 网页技术与分类 45.3 HTML 简介 45.3.1 什么是 HTML?(面试题) 45.3.2 HTML 文件结构 45.3.3 HTML 语法 45.3.4 实例演练步骤(面试题) 45.4 head 中的常用标签 45.4.1 title 标记 45.4.2 meta 标记 45.4.3 45.4.4 45.4.4(面试题)总结: 45…...

Python 如何进行游戏开发?

游戏开发是一个广泛的领域&#xff0c;Python 作为一门灵活的编程语言&#xff0c;可以用于不同类型的游戏开发。以下是一些建议和步骤&#xff0c;帮助你开始使用 Python 进行游戏开发&#xff1a; 1、选择游戏开发库/框架&#xff1a; Pygame&#xff1a; Pygame 是一个用于…...

到底什么是DevOps

DevOps不是一组工具&#xff0c;也不是一个特定的岗位。在我看来DevOps更像是一种软件开发文化&#xff0c;一种实现快速交付能力的手段。 DevOps 强调的是高效组织团队之间如何通过自动化的工具协作和沟通来完成软件的生命周期管理&#xff0c;从而更快、更频繁地交付更稳定的…...

Keil生成bin文件

Keil生成bin文件_keil5生成bin文件-CSDN博客...

【STM32】USART串口协议

1 通信接口 通信的目的&#xff1a;将一个设备的数据传送到另一个设备&#xff0c;扩展硬件系统 通信协议&#xff1a;制定通信的规则&#xff0c;通信双方按照协议规则进行数据收发 USRT&#xff1a;TX是数据发送引脚&#xff0c;RX是数据接受引脚&#xff1b; I2C&#xf…...

淋雨试验箱

产品概述 KDZD-IPX34淋雨试验箱是对户外电子电工产品的防水性能测试的一种装置。该设备通过不同尺寸的喷嘴喷水&#xff0c;产品外壳表面淋水冲洗来检测防水性能。在测试物品时&#xff0c;将样品放在转台上&#xff0c;试验启动时&#xff0c;水流通过压力计和流量计控制水…...

02-MQ入门之RabbitMQ简单概念说明

二&#xff1a;RabbitMQ 介绍 1.RabbitMQ的概念 RabbitMQ 是一个消息中间件&#xff1a;它接受并转发消息。你可以把它当做一个快递站点&#xff0c;当你要发送一个包裹时&#xff0c;你把你的包裹放到快递站&#xff0c;快递员最终会把你的快递送到收件人那里&#xff0c;按…...

敏感信息泄漏怎么破?来试试极狐GitLab 的密钥检测吧

前言 在应用程序开发过程中&#xff0c;一个很常见的问题就是&#xff1a;开发人员为了本地 debug 方便&#xff0c;会 hardcode 一些信息&#xff0c;比如连接数据库的用户名、密码、连接第三方 app 的 token、certificate 等&#xff0c;如果在提交代码的时候没有及时删除 ha…...

go学习之网络编程

文章目录 网络编程1、网络编程的基本介绍2.网络编程的基础知识1&#xff09;协议(tcp/ip)2&#xff09;OSI与TCP/ip参考模型3&#xff09;ip地址4&#xff09;端口(port)介绍5&#xff09;tcp socket编程的客户端和服务器端 3.socket编程快速入门4.经典项目-海量用户即时通讯系…...

将数组中的数逆序存放

本题要求编写程序&#xff0c;将给定的n个整数存入数组中&#xff0c;将数组中的这n个数逆序存放&#xff0c;再按顺序输出数组中的元素。 输入格式: 输入在第一行中给出一个正整数n&#xff08;1≤n≤10&#xff09;。第二行输入n个整数&#xff0c;用空格分开。 输出格式:…...

Unity Web 浏览器-3D WebView中有关于CanvasWebViewPrefab

一、CanvasWebViewPrefab默认设置 这个是在2_CanvasWebViewDemo示例场景文件中可以可以查看得到&#xff0c;可以看出CanvasWebViewPrefab的默认配置如下。 二、Web 浏览器网页和Unity内置UI的渲染顺序 1、如果你勾选了以下这个Native 2D Mode选项的话&#xff0c;那么Unit…...

一款计算机顶会爬取解析系统 paper info

一款计算机顶会爬取解析系统 paper info 背景项目实现的功能 技术方案架构设计项目使用的技术选型 使用方法本地项目部署使用ChatGPT等大模型创建一个ChatGPT助手使用阿里云 顶会数据量 百度网盘pfd文件json文件 Q&A github链接 &#xff1a;https://github.com/codebricki…...

CommonJs模块化实现原理ES Module模块化原理

CommonJs模块化实现原理 首先看一个案例 初始化项目 npm init npm i webpack -D目录结构如下&#xff1a; webpack.config.js const path require("path"); module.exports {mode: "development",entry: "./src/index.js",output: {path: p…...

实验4.1 静态路由的配置

实验4.1 静态路由的配置 一、任务描述二、任务分析三、具体要求四、实验拓扑五、任务实施1.设置交换机和路由器的基本配置。2.使用display ip interface brief命令查看接口配置信息。3.配置静态路由&#xff0c;实现全网互通。 六、任务验收七、任务小结 一、任务描述 某公司刚…...

Java网络编程-深入理解BIO、NIO

深入理解BIO与NIO BIO BIO 为 Blocked-IO&#xff08;阻塞 IO&#xff09;&#xff0c;在 JDK1.4 之前建立网络连接时&#xff0c;只能使用 BIO 使用 BIO 时&#xff0c;服务端会对客户端的每个请求都建立一个线程进行处理&#xff0c;客户端向服务端发送请求后&#xff0c;…...

ShenYu网关注册中心之HTTP注册原理

文章目录 1、客户端注册流程1.1、读取配置1.1.1、用于注册的 HttpClientRegisterRepository1.1.2、用于扫描构建 元数据 和 URI 的 SpringMvcClientEventListener 1.2、扫描注解&#xff0c;注册元数据和URI1.2.1、构建URI并写入Disruptor1.2.2、构建元数据并写入Disruptor1.2.…...

探索GameFi:区块链与游戏的未来融合

在过去的几年里&#xff0c;区块链技术逐渐渗透到各个领域&#xff0c;为不同行业带来了前所未有的变革。其中&#xff0c;游戏行业成为了一个引人注目的焦点&#xff0c;而这种结合被称为GameFi&#xff0c;即游戏金融。GameFi不仅仅是一个概念&#xff0c;更是一场区块链和游…...

Windows下使用CMake编译lua

Lua 是一个功能强大、高效、轻量级、可嵌入的脚本语言。它支持程序编程、面向对象程序设计、函数式编程、数据驱动编程和数据描述。 Lua的官方网站上只提供了源码&#xff0c;需要使用Make进行编译&#xff0c;具体的编译方法为 curl -R -O http://www.lua.org/ftp/lua-5.4.6.…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象&#xff0c;只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意&#xff1a;它移动的位置必须是相连的有内容的单元格…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

服务器--宝塔命令

一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行&#xff01; sudo su - 1. CentOS 系统&#xff1a; yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...