翻译者:阿信
使用Synopsys公司的 Design Compiler Physical Compiler 和PrimeTime 第二版
名目
写在前面 前言 前言
事实证明,相关于集成电路IC设计规模半导体产业是相对??。作为一个团体,80年代中期,每个芯片集成了大约1000个晶体管,我们称之为大规模集成电路(LSI),仅仅在大约两年后,每个芯片的晶体管集成数量就达到了1万~10万个,我们所用的术语也迅速的变成了甚大规模集成电路(VLSI)。
Preface 前言
这本书的第二版描述了一些使用Synopsys公司的一套工具在ASIC芯片设计中的高级概念和技术,包括ASIC芯片综合,物理综合,形式验证和静态时序分析等。另外,对ASIC的整个设计流程和沈亚微米(Very-Deep-Sub-Micron)设计技术作了详细的介绍。
这本书的重点是在Synopsys 工具的实时使用上,用工具去解决在深亚微米尺寸领域的各种问题。将展现给读者解决在亚微米ASIC设计复杂问题的有效设计方
法。重点就在HDL的编码风格,综合和优化,动态仿真,形式验证,可测性设计DFT扫描链的插入,版图设计的连接,物理综合和静态时序分析。在每一步,确定设计流程中每一段的问题,问题的解决方法并围绕此问题展开详细的论述。另外,关于版图设计的关键问题,比如时钟的综合和最后的集成也作了较长篇幅的讨论。最后,这本书深入的讨论了差不多的Synopsys技术库和编码风格,综合优化技术。
这本书的读者对象是刚刚工作的ASIC设计工程师和学习过ASIC大规模集成电路设计与可测性设计课程的高年级学生。这本书并不是想取代Synopsys的参考手册,而是为任何参与ASIC设计的人员而写。同时,这本书对那些没有版图能力或者自己有技术库然而需要其他公司来做后端集成和最终制造器件的计者(和公设司)差不多上专门有用。因为到深亚微米技术会遇到各种各样的问题,本书提供了可选择的;
这本书同时也介绍了设计人员对不同EDA工具商提供的各种工具时所面临常见问题的解决方法。
这本书中的所有Design Compiler命令都更新为Tcl版本的命令。为了尽量反映最新版(2000.11—SP1)的Synopsys的这套工具,这些命令都作了及时的更新。
各章概要
第一章简要介绍了用Synopsys 工具设计ASIC流程时各种不同平台。那个设计流程在此作了精简的描述,从概念到流片。这一章对那些想学习ASIC设计的整个流程但还没有钻研过芯片设计到集成的整个流程的设计者是专门有用的。
第二章论述了第一章中描述的ASIC设计流程中的实践方面的问题。初学者能够把这一章作为指导手册。有使用Synopsys工具体会的设计者能够把这一章作为有益的参考。没有使用Synopsys工具作综合体会的读者能够先跃过本章,在读完后续章节后再读这一章。
综合的差不多概念在第三章有详细的说明。这些综合术语的概念贯穿到后面的所有章节。读者将会发觉这些信息专门有用,能够对这些工具及工具的使用环境有一个差不多的明白得。
第四章对Synopsys技术库做了差不多的讲述。设计这常常对技术库的技术细节不够了解,同时这些库包含了各种具有不同驱动能力的库单元。然而,一个拥有丰富单元的库往往决定了综合的最终质量。因此,这一章就从设计者的角度来讲述Synopsys技术库。集中讲述延迟的运算方法和其他技术,这些技术要紧用来改变技术库的行为,提高综合的质量。
合适的功能划分和好的编码风格是获得好的输出结果的必定要求。第5章讲述了各种技术来指导读者该如何样做合适的功能划分来达到预期的优化目标。另外,这一章也讲述了HDL的编码风格,并举出多个附有点评的例子来引导读者编写出逻辑速度更快面积更小的设计。
Design Compiler综合和优化所使用的命令在第6章作了描述。这一章包含了对Synopsys工具的初学者和有体会的人员都专门有用的信息。这一章注重实际应用。这一章列举了数个例子来指导读者对这些命令的使用。
第7章讨论了为满足时许和面积要求的优化技术。在老版本的DC和新版本的DC都有讲述,重点是新版本。重点讲述了Design Compiler 中采纳的新的优化技术“TNS”。同时对各种逻辑优化技术也作了详细介绍。另外,对不同编译策略的优点和缺点也给出了详细的讨论。
可测性(DFT Design For Test)设计技术越来越成为ASIC设计工程师考虑的一大要素。第8章对当今设计界所使用的各种DFT技术作精简的描述,随后对使用Synopsys的Test Compiler 工具作器件的扫描插入给出了详细介绍。介绍了Design Compiler做扫描链插入的命令。介绍一些指导方针来处理DFT设计的中的各种问题。
第9章介绍了Design Compiler与后端版图的连接特性,描述了前端和后端
工具的接口。同时,这一章介绍了设计中版图优化的一些策略。这包括in-place和location优化技术。更进步,列出一节专门讨论时钟树的插入和时钟树的转移的相关问题。这一章对那些不打算自己做版图而期望学习布局布线过程和整个芯片集成技术的设计者或公司差不多上极其有用的。
物理综合技术的引入,迅速的改变了传统的综合方法。第10章详细描述了物理综合技术。这一章描述了各种得到优化结果的物理综合方法。为了明白得物理综合的流程,建议读者先去读一些好传统设计流程相关的章节(专门是第9章),然后再来读这一章。将这一章讲述的流程和传统的流程做一个比较学习。为了使用那个新的工具,本章列出了一些脚本的例子来说明使用方法。
第11章的标题是 SDF(标准延时文件)文件的产生:为了做动态时许仿真,这一章描述了用Design Compiler 或 PrimeTime产生SDF文的过程。有一节讲述SDF文件的语法格式,接下来详细讨论在版图前和版图后的SDF文件的产生过程。另外,为了更好的关心设计人员获得成功的仿真,这章还给出了一些新的思想和建议。这一章对那些做动态仿真和形式验证来验证设计功能的设计者专门有用。
第12章给读者介绍了用PrimeTime做静态时序分析的差不多知识。这包括其中一节讲述了使用PrimeTime的Tcl语言。同时描述了用PrimeTime完成静态时序分析的一些命令,这些命令对设计人员找出设计中可能存在的违反时序的错误也是专门有关心的。
设计出可靠工作的芯片的关键一步确实是对特定的设计能够成功的做完静态时序分析。这种能力使得静态时序分析成了整个设计流程中最重要的一步而且成为专门多设计者公认的判定ASIC销售商的标准。第13章要紧讲述了用PrimeTime做静态时序分析的一些差不多的高级的论题。这一章专门有效的说明了在整个设计流程中版图前和版图后PrimeTime的使用。另外,列举了许多例子来说明在各种假定情形下的报告和建议设置分析。这一章对那些想从传统的动态仿真分析法向静态分析法设计转移的设计者专门有用。对那些想用PrimeTime对设计做更深入的分析的读者也专门有关心。
这本书中用到的一些约定
所用Synopsys的命令差不多上用Ariel字体打印的。这包括所有例子中的综合脚本和时序分析脚本。
命令行的提示符使用Courier New字体打印的。例如: dc_shell> 和 pt_shell>
一些命令中使用的选择值都用三角括号< 和 >括起来了。总之,这些值在命令使用之前必须被具体的取值替换掉。例如:
set_false_path –from 反斜杠“\\”表示本行写不完下一行连续,而竖杠“|”字符表示“或”的关系。 例如:compile –map_effort low | medium | high \\ -incremental-mapping 不管那儿,关键字差不多上斜体的(italicized)。需要强调的要紧论题或观点都用下划线或粗体字表示。 致谢 没翻译 关于作者 Himanshu Bhatnagar 是位于美国加利佛尼亚州新口海滩Conextant Systems公司ASIC设计小组的领导者。该公司是世界上最大的用心于电子通信半导体产品的供应商。作者利用最新的高性能的Synopsys公司和其他公司的EDA工具来研究下一代的ASIC设计流程和设计方法学。 加入Conexant公司之前,作者在新加坡的特许微电子公司和位于法国格勒诺布尔市的公司总部工作。他在英国威尔士Swansea大学完成了他的电子与运算机科学学士学位,在美国的Clemson大学完成了大规模集成电路设计的硕士学位。 1 ASIC设计方法学 随着深亚微米半导体器件尺寸的缩小,传统的设计方法变得越来越困难。除此之外,在同一个晶元中集成了越来越多的晶体管,这使得设计功能的验证专门困难,甚至不能确认设计的功能正确与否。另外,在关键的产品上市时刻的压力下设计周期没有变化,或者被连续的缩短了。为了解决这些问题,进展了新的设计方法和设计工具,使ASIC设计方法容易使用。 这一章的要紧作用确实是带领读者认识在亚微米领域芯片设计的不同时期。同时对改进设计流程的一些技术也作了介绍。 从这本书的上一版开始,Synopsys公司又介绍了另外一个叫做物理综合(Physical Compiler)的工具。在那个工具中,综合和布局的处理更加紧密。因此,相对传统的设计流程有了专门大的改变。这一章向读者强调了这些新技术的重要性,说明了什么缘故这些新技术在整个设计流程中达到设计最优化的必须性和这些新技术如何样缩短整个设计周期。因为那个工具对IC设计界来说依旧生疏的,到现在为止,还没有100%的融入到设计界,因此对传统的设计流程和新的设计流程都作了讨论。 这一章要紧在ASIC设计流程的基础上讲述整个综合过程,从RTL级代码到最后的流片。讨论了传统设计流程和物理综合流程。 1.1 传统的设计流程 下面讲述传统的ASIC设计流程包含的步骤。流程图1-1说明了整个设计流程,下面加以讲述。以后的章节将更加详细的讲述和综合有关的话题。 1. 结构和电气规范。 2. RTL级的HDL编码。 3. 为包含储备元件的设计做可测性DFT和储备自测试BIST的插入。 4. 为了确保设计功能正确,做全面的动态仿真。 5. 设计环境的设定。这包括技术库的使用和其他和环境有关的属性设置。 6. 使用Design Compiler对设计进行扫描链插入(可选择JTAG),设计约束 和综合。 7. 使用Design Compiler自带的静态时序分析工具对设计做模块级的静态时 序分析。 8. 使用Formality工具对设计进行形式验证,比较RTL和综合后的网表。 9. 使用PrimeTime工具对整个设计进行版图前的静态时序分析。 10. 使用版图实现工具对提取的时序约束进行反标。 11. 在时序驱动下进行初步的单元布局,时钟树的插入和全局布线。 12. 把时钟树转化为DesignCompiler内部的原始设计网表。 13. 用DesignCompiler对设计进行局部优化。 14. 使用Formality工具对设计在综合后的网表和插入时钟树的网表进行形式 验证。 图1-1 传统ASIC设计流程 15. 在做过全局布线后(图中第11步)的版图中提取估量延时信息。 16. 把从全局布线后的设计中提取的估量时刻数据反标给PrimeTime。 17. 在PrimeTime中使用从全局布线后提取的估量延时信息对设计进行静态时 序分析。 18. 对设计进行局部的布线。 19. 对局部布线后的设计进行延时信息的提取。 20. 把上一步提取的延时信息反标到PrimeTime中。 21. 使用PrimeTime对版图后的设计进行静态时序分析。 22. 使用版图后的延时信息对版图后的设计进行门级的功能仿真。(假如有要 求) 23. 电气规则(LVS)和设计规则(DRC)检查通过后的流片。 图1-1,说明了上面讨论的典型ASIC设计流程。STA和CT是英文的首字母缩写,分别表示静态时序分析和时钟树,DC表示DesignCompiler。 1.1.1 规范和RTL编码 芯片的设计概念来自于市场的需求方法。然后把这些方法转化为设计的体系结构规范和电气规范。体系结构规范定义设计的功能,把芯片划分成几个容易实现的模块;而电气规范则定义各个模块之间的时序关系。 芯片设计的下一个时期确实是如何样实现这些规范。在过去是在单元库找出有用的器件,然后手工画电路图的方式来实现的。这种方式既耗时又无法实现设计的重复利用。为了解决那个问题,开发出了硬件描述语言(HDL)。顾 名思义,设计的功能是用HDL编码来表达的。当今要紧有两种硬件描述语言,Verilog和HDL。两者都能够表达相同的功能,各有它们的优缺点。 用硬件描述语言能够对设计进行三个等级的抽象描述;行为级,RTL(Register Transfer Level)级和结构级。行为级代码是更高级别的抽象,要紧用于把体系结构规范翻译成代码进行功能仿真。行为级代码刚开始是为了完成对设计实现的正确性和可行性分析。相反,RTL级代码用来描述和推断设计的元件结构及内部连接关系。这种类别的代码是用于描述设计的功能并能综合生成网表。那个网表由目标库中的元件和它们各自的连接关系组成;专门类似于手工画的电路图。 一个设计用RTL级的语言格式编码,用Verilog或VHDL,或两者的混合。假如有必要,也能够分割成几个小一些的模块来形成层次化的结构,使用一个顶层模块来连接因此低一级的模块。 Synopsys公司最近推出了行为级综合器Behavior Compiler,能够对行为级的代码进行综合。这是以后讨论的要紧话题和这本书不相关,这本书只讲述RTL级相关的综合问题。 1.1.2 动态仿真 第二步是通过对RTL级代码的动态仿真来检查设计的功能。因此当前能够用的仿真器都具有仿真行为级和RTL级代码的功能。另外,这些工具也能够用于仿真映射后的门级设计。 图 1-2 说明了使用test bench来预备仿真一个分模块的设计。那个 test bench 通常是用行为级硬件描述语言描述而设计通常是描述为RTL级的代码。 通常,仿真器是和描述语言紧密相关的(要么支持 Verilog要么支持VHDL),尽管市场上有几个能够支持两种语言的仿真器。 图 1-2 层次化设计例子 Test bench的要紧功能是给设计提供必要的输入鼓舞。所完成的测试情形和test bench的质量决定了设计测试的覆盖率,明白这一点是专门重要的。这确实是什么缘故一个全面的测试程序对设计是至关重要的。在对RTL级代码进行仿真时,元件(或逻辑门)的延时是不考虑的。因此,为了减少在RTL级仿真和后面的综合后的门级仿确实差别,在编RTL级源代码时,通常时序模块中加入延时信息。 1.1.3 约束,综合和扫描链插入 在专门长一段时刻里,硬件描述语言是用来做设计的逻辑验证的。设计者把硬件描述语言手工翻译成电路,并画出各个元件之间的连线来产生门级的网表。随着功能强大的综合工具的显现,这种手工作业的方式逐步的被剔除。综合工具取代了手工综合,能够更快的完成从RTL级的描述到门级网表的转化任务。那个处理过程确实是所谓的综合。 Synopsys公司的综合工具Design Compiler(以后简称DC)是事实上的标准 综合工具且到现在为止也是在ASIC设计行业里最流行的综合工具。 一个设计的综合是需要反复多次的过程,第一需要定义每个模块的时序约束。这些时序约束定义了相应模块的每个信号相关于时钟输入的关系。除了时序约束之外,还需要一个定义综合环境的文件。那个环境文件指定了DC在综合过程中所用到的工艺库和其他的相关信息。 DC读入设计的RTL级代码并利用时序约束文件把代码综合到结构级,然后产生对应的门级网表。那个概念能够从图1-3来明白得。 图 1-3 DC的输入和输出 对一个设计的较小的模块,通常使用DC内部自带的静态时序分析工具来静态时序分析并生成报告。DC 会尽量优化设计,使之能满足指定的时序约束。 假如时序要求没有满足,则需要进一步的优化。 现在大多数的设计中都会包含可测性设计(DFT)逻辑,用于芯片生产出 来后的功能测试。DFT由自测(BIST)储备逻辑,扫描逻辑和边界扫描逻辑(JTAG)等逻辑电路组成。 这些逻辑电路和自测(BIST)储备逻辑是由操纵逻辑的可综合代码组成的,它们在综合之前就要加入到设计中。市场上有许多用于产生BIST操纵器和编辑逻辑的工具。不幸的是,Synopsys公司没有提供具有此类功能的工具。 扫描链的插入也许能够使用DC的预备测试编译特性来完成。那个处理过程把设计的RTL级代码在链接成扫描链之前直截了当映射成扫描寄存器。利用那个特性的一个优点是它能够使DC在综合时运算扫描寄存器的时刻。那个技术是专门重要的,因为相关于那些没有插入扫描链同样的设计,它们具有不同的延迟时刻。 JTAG或边界扫描要紧用于测试电路板的连接情形,而不用把芯片从板子上拔掉。JTAG操纵器和边界逻辑也能够直截了当由DC来产生。 1.1.4 形式验证 形式验证的在ASIC设计行业依旧相当的概念。形式验证利用数学方法来确定设计的功能,不需要工艺库的支持,例如时序和物理效应。形式验证把设计和参考设计相比较来确认设计的功能。专门多EDA供应商差不多开发出了形式验证工具。然而,就在最近,Synopsys公司的形式验证工具Formality也推上了市场。 形式验证和动态仿确实要紧区别是前者通过比较两个设计在结构和功能上的等价性来验证设计。动态仿真只能够验证被激活路径的功能,因此就可能在没有测试到的地点显现问题。另外,和动态仿真所花的时刻相比,形式验证的所用时刻专门的少。 在设计流程中,形式验证的目的确实是比较设计的功能是否相等。比较能够是RTL级代码和RTL级代码, 门级网表和RTL级代码,或门级网表和门级网表。 RTL级代码和RTL级代码的验证是用于确保新的RTL级代码和原先的RTL级代码的功能一致。这经常会发生在设计这为增加功能而反复修改设计时。当源代码增加了新的功能特性时,就会原先的代码的正确功能带来潜在的风险。为了排除这风险,就能够在新的代码和原先代码之间做形式验证。 RTL级代码和门级网表之间的形式验证是用于确保用DC综合后的设计依旧是正确的。尽管RTL级代码的动态仿真后是 功能正确的,当是对设计的形式验证确保了在对设计插入扫描链综合后的功能和RTL级代码功能是一致的,即综合后的网表具有相同的功能。在综合后的情形下,假如我们用动态仿确实方法来验证门级网表的正确性,那么将会耗费专门长的时刻(依照设计的大小,可能花几天或几周的时刻)来验证设计。相比而言,形势验证方法仅仅需要几个小时来做相似的验证。 最后一部验证是在门级网表和门级网表之间。 这也是整个验证过程中专门重要的一步,这一步要紧用来验证在修改后的版图和原先版图之间的功能一致性。版图后的一个专门明显的改变确实是时钟树网表(一层的或者有层次的)的插入。这就意味着原先传给版图工具的网表被修改了。形式验证确实是就被用于验证修改后的网表和原先网表的逻辑等价性。 1.1.5 用Prime Time做静态时序分析 前面曾提到过用DC对设计做模块级的静态时序分析。尽管芯片级的静态时序分析也能够使用上述方法,但最好依旧用PrimeTime。PrimeTime是Synopsys公司的专门做静态时序分析的工具,能够在芯片级完成快速的静态时序分析。它提供了Tcl(工具语言)接口,如此能够为设计的分析和排除错误提供专门强大的操作环境。 静态时序分析在某种程度上是整个ASIC设计流程中最重要的一步。静态时序分析能够让使用者对所有的关键路径进行分析,然后把分析专门有条理的报告给设计者。另外,那个分析报告还包含其它一个有利于排除错误的信息,例如每条连线的扇出和负载电容。 静态时序分析在门级网表生成版图前和版图后都要做。在版图前,即在门级网表这一级,PrimeTime使用工艺库中指定的线负载模型来估量连线延时。在此过程中,往常用于DC做时序分析的时许约束文件也同样适用于PrimeTime,这些时序约束文件指定了要紧输入输出信号好时钟信号的关系。假如时序约束对所有的关键路径差不多上能够同意的,那么就能够用PrimeTime或者是DC导出一个约束文件,把那个约束文件反标给前面的布局布线工具。那个约束文件是SDF格式,它指定了设计中各个逻辑模块之间的时许关系,布局布线工具就利用这些时序信息来完成时刻驱动的单元布局。 在版图级的静态时序分析,提取出的延时信息更贴近实际,这些延时信息返回给PrimeTime做较真实的延时运算。这些延时由连线电容和内部RC(电阻和电容)组成。 和综合类似,静态时序分析也是一个需要不断反复的过程。它和芯片的布局布线紧密相连。通常为了满足时序要求,那个过程序要反复多次。 1.1.6 布局,布线和验证 顾名思义,规划(layout)工具完成设计的布局和布线。这一步能够有专门多方法来完成。然而,这一节仅仅讨论和综合相关的问题。 预布局和布局的质量比实际的布线要重要的多。理想的标准单元的布局不仅能够提高布线的速度,而且能够提高设计的时序,减少时序冲突。就像前面说明过的一样,约束文件用于时序驱动的布局。时序驱动的布局方法迫使布局布线工具按照单元之间的时序违反的危险程度来决定单元的放置位置。 把标准单元布局好之后,就利用布局布线工具在设计中插入时钟树。时钟树的插入是可选择的,要紧依靠设计者的喜好。设计这能够使用更传统的时钟布线方法,例如,使用鱼骨结构的时钟树,如此能够减少总的延时和时钟抖动。随着工艺尺寸的缩减,鱼骨结构的时钟树差不多专门难达到设计要求,因为随着工艺尺寸的缩减,内部连线之间的电阻就会增加,因此增加了RC延迟。因 此这一节的内容(和整本书的内容)要紧放在了时钟树的综合方法上。 在这一时期,为了完成时钟树的插入,还有一步是必须做的。前面也提到过,布局布线工具在完成单元布局以后把时钟树插入设计中。因此,原先由DC(或其它用于布局布线)产生的网表文件是没有时钟树信息(本质上是整个时钟树网络,包括缓冲和连线)的。因此,时钟树必须插入原先的网表并做形式验证。一些布局布线工具直截了当为DC提供完成时钟树插入的接口。第9章对此介绍了一些传统和非传统的方法来完成这几个步骤。为了简单起见,我们假设原先的网表文件中都差不多完成了时钟树的插入。 总体而言,布局布线工具完成布线工具分成两个时期----全局布线和局部布线。在布局之后,对设计进行一次全局布线来判定布局的质量并提供近似于版图(在局部布线之后)之后的实际延时的估量延时。假如单元布局不够合理,则全局布线就会花相关于单元布局时刻更长的时刻来完成。糟糕的布局还会阻碍整个设计的时刻。因此,为了减少综合和布局布线之间的反复和提高布局质量,在全局布线之后就会提取延时信息来指导布局和布线。尽管这些延时信息还没有局部布线之后提取的延时信息准确,然而这些信息的确提供了比较理想的布线延时信息。这些延时信息反标给PrimeTime来做静态时序分析,同时只有认为时序信息满足要求以后,才承诺连续下一步骤。 局部布线是布局布线工具需要完成的最后一步动作。在局部布线完成后,就会提取芯片的实际延时信息,然后把这些信息加入到PrimeTime中,来做静态时序分析。 这些步骤之间是需要反复多次的,反复的次数要紧依靠于设计的时刻余量的要求。假如设计不满足时序要求,在执行下一次反复之前就要做布局布线的优化。假如设计通过了静态时序分析,那么就要预备做流片之前的版图规则LVS(版图与电路图)和设计规则DRC(设计规则检查)检查。 1.1.7 工程改变顺序 这一步骤是正常设计流程中的一个例外,请不要和通常设计中的环节相混淆。因此,这一步骤也可不能在以后的章节中讨论到。 专门多设计人员把ECO认为是ASIC设计流程中最后一步时,由工程需要而对网表的修改。例如,在硬件设计的最后时期(也能够是流片之后)发觉一个错误,这时就需要执行ECO这一步骤,这是对对金属掩模板的专门小部分做重新布线是专门有必要的。 为了保全设计中没有显现错误的地点,就在芯片的出错的专门小区域执行ECO操作,因此保证了芯片中其余部分的时序不变。只有受错误阻碍的部分需要修改。为了排除错误,能够通过修改错误周围的门电路或者仅仅修改其中的一些金属层。那个过程就称作金属掩模板修改。 通常在修改不超过整个芯片(或一个模块,假如做分层布局布线)的10%的情形下使用上述操作。假如为了排除错误而需要修改的地点超过芯片的10%,则最好对整个芯片重新综合,布局布线。 最新版的DC集成了ECO编译器。它使用数学算法(同样用于形式验证技术)自动完成必要的修改。使用ECO编译器使设计人员省去了手动修改设计网表,同时也缩减了芯片设计中的反复时刻。 一些布局布线工具差不多集成了ECO算法工具。这种布局布线工具的一个好处确实是不受无法越过设计层次的限制。同时,还有明白单独设计单元(通常由设计者在设计中加入的单元)的位置的优点,因此能够以独立单元最近的位置为目标来实现必需的ECO修改来达到最短路径。 因篇幅问题不能全部显示,请点此查看更多更全内容