当前位置:首页>学习笔记>第4章 Chisel学习笔记--Chisel高阶:参数化与生成式设计——一套代码,千变万核

第4章 Chisel学习笔记--Chisel高阶:参数化与生成式设计——一套代码,千变万核

  • 2026-02-20 09:16:45
第4章 Chisel学习笔记--Chisel高阶:参数化与生成式设计——一套代码,千变万核
导语:在芯片定制化浪潮席卷全球的今天,“一个设计打天下”早已成为过去式。从智能手表到数据中心,不同场景对处理器性能、功耗、面积(PPA)的需求千差万别。如何用

同一套代码高效生成适配各种场景的硬件?第4章给出了答案:参数化(Parameterization)与生成式设计(Generator-Based Design)。本文将带你深入Chisel的“元编程”能力,通过结构图、类型系统原理与工业级实例,揭示如何构建真正可扩展、可复用、可配置的硬件IP。


一、为什么需要生成式设计?——从“复制粘贴”到“按需生成”

第4章开篇直指传统硬件开发的顽疾:

  • 为不同产品线维护多个Verilog分支 → 代码冗余、同步困难、易出错。

  • 手动修改位宽、缓存大小、核数 → 耗时且不可靠。

  • 无法快速响应客户需求变更 → 交付周期长。

✅ Chisel的破局之道:将硬件视为函数的输出,输入是配置参数,输出是电路网表。

🌰 对比示例:

需求Verilog做法Chisel做法
8位 vs 32位加法器复制两份代码,分别改位宽class Adder(w: Int) extends Module { ... }
单核 vs 四核SoC手动实例化4次CPU模块Seq.fill(nCores)(Module(new RocketCore))

💡 核心理念硬件即代码(Hardware as Code),利用Scala的高级特性实现“一次编写,处处生成”。


二、参数化基础:泛型、类构造与配置对象

第4章系统介绍了Chisel参数化的三大支柱。

🔸 1. 模块泛型(Generic Modules)

// 支持任意数据宽度的FIFOclassFIFO[T<:Data](genTdepthIntextendsModule{valio=IO(newBundle{valenq=Flipped(Decoupled(gen))valdeq=Decoupled(gen)})valram=Mem(depthgen// gen可以是UInt(32.W)、Bundle等// ... FIFO逻辑}// 使用示例valfifo32=Module(newFIFO(UInt(32.W), 16))valfifo64=Module(newFIFO(UInt(64.W), 32))

✅ 优势gen: T 是类型参数,编译时确定位宽,避免运行时错误。


🔸 2. 构造函数参数(Constructor Parameters)

classALU(widthIntextendsModule{valio=IO(newBundle{vala=Input(UInt(width.W))valb=Input(UInt(width.W))valout=Output(UInt(width.W))})io.out:=io.a+io.b}// 生成不同位宽ALUvalalu8=Module(newALU(8))valalu64=Module(newALU(64))

⚠️ 注意:参数必须是val(不可变),确保电路结构在构建时确定。


🔸 3. 配置对象(Config Objects)——管理复杂参数集

当参数数量增多(如Cache行数、组相联度、替换策略),直接传参变得混乱。Chisel推荐使用配置类

caseclassCPUConfig(xLenInt=32,nPMPsInt=16,useVMBoolean=true,nLocalInterruptsInt=4)classRISCVCore(configCPUConfigextendsModule{// 根据config动态生成逻辑if(config.useVM) {valtlb=Module(newTLB(config.xLen))}}

🌟 工程实践:Rocket Chip项目使用Parameters隐式参数系统,实现全局配置传递。


三、高级生成技术:工厂模式与递归生成

第4章展示了如何构建自适应硬件结构

🏭 实例1:可配置多级流水线

classPipelineStage(op: (UIntUInt=>UIntextendsModule{valio=IO(newBundle{valin=Input(UInt(32.W))valout=Output(UInt(32.W))})valreg=RegNext(io.in)io.out:=op(reg1.U// 示例操作}classPipelinedALU(stagesIntextendsModule{valio=IO(newBundle{vala=Input(UInt(32.W))valout=Output(UInt(32.W))})// 动态生成N级流水valstagesList=Seq.iterate(io.astages+1) { x=>vals=Module(newPipelineStage(_+_))s.io.in:=xs.io.out}io.out:=stagesList.last}

🔁 关键技巧Seq.iterate实现链式连接,无需手写for循环实例化


🧬 实例2:递归生成树形互连网络

defbuildTree(inVec[UInt], op: (UIntUInt=>UInt): UInt={if(in.length==1in(0)elseif(in.length==2op(in(0), in(1))else{valmid=in.length/2valleft=buildTree(in.slice(0mid), op)valright=buildTree(in.slice(midin.length), op)op(leftright)}}// 使用:生成8输入最大值树valinputs=Wire(Vec(8UInt(32.W)))valmaxVal=buildTree(inputs, (ab=>Mux(a>bab))

🌲 优势:自动构建平衡二叉树,延迟为O(log N),优于链式结构O(N)。


四、工业级案例:用Chisel生成RISC-V SoC家族

第4章以开源Rocket Chip项目为例,展示生成式设计的威力。

📦 Rocket Chip配置体系结构框图User Config

🔧 配置示例:生成三种不同SoC

// 1. 微控制器(低功耗)classMicroControllerConfigextendsConfig(topDefinitions={ (sitehereup=>caseXLen=>32caseNCores=>1caseL2CacheSize=>0// 无L2caseUseFPU=>false})// 2. 高性能单核classHighPerfConfigextendsConfig(topDefinitions={ (sitehereup=>caseXLen=>64caseL2CacheSize=>512*1024caseUseFPU=>true})// 3. 四核服务器classQuadCoreConfigextendsConfig(topDefinitions={ (sitehereup=>caseNCores=>4caseL2CacheSize=>2*1024*1024caseCoherenceProtocol=>"CHI"})// 生成命令generateFirrtl(newChipTop()(newMicroControllerConfig))

💥 效果同一套源码,通过切换配置,生成从KB级到MB级缓存、从32位到64位、从单核到多核的完整SoC。


五、类型安全与编译期检查——杜绝“位宽不匹配”噩梦

第4章强调:Chisel的强类型系统是生成式设计的基石。

🛡️ 类型安全示例

classDataBundleextendsBundle{valaddr=UInt(32.W)valdata=UInt(64.W)}valproducer=Module(newProducer(newDataBundle))valconsumer=Module(newConsumer(newDataBundle))// 自动匹配接口consumer.io.input:=producer.io.output// 编译通过// 若consumer期望不同BundlevalbadConsumer=Module(newConsumer(newOtherBundle))badConsumer.io.input:=producer.io.output// 编译错误!

✅ 价值:在Scala编译阶段捕获接口不匹配错误,避免仿真/综合阶段才发现问题。


六、生成流程与工具链集成

第4章梳理了从参数到GDSII的完整流程。

⚙️ 生成式设计工作流(原理流程图)

工程师配置文件(.scala)Chisel CompilerFIRRTL CompilerSynthesis/P&R ToolsGDSII定义目标SoC参数作为Scala程序运行生成参数化FIRRTL应用优化Pass(常量传播、死代码消除)生成Verilog综合、布局布线工程师配置文件(.scala)Chisel CompilerFIRRTL CompilerSynthesis/P&R ToolsGDSII

🔑 关键点:FIRRTL编译器会内联常量、折叠死逻辑,确保生成的Verilog仅包含当前配置所需电路。


七、最佳实践与常见陷阱

第4章最后总结了工程经验:

✅ 推荐做法:

  1. 参数最小化:只暴露必要配置项。

  2. 默认值合理:提供常用场景的默认配置。

  3. 文档化参数语义:使用ScalaDoc注释。

  4. 单元测试每种配置:防止“某配置下功能异常”。

⚠️ 常见陷阱:

  • 在模块内部使用var → 导致非确定性行为。

  • 参数依赖运行时输入 → 违反“构建时确定结构”原则。

  • 过度参数化 → 增加验证复杂度。


结语:生成式设计——硬件开发的“终极抽象”

第4章揭示了Chisel最强大的一面:它不仅是描述语言,更是硬件生成引擎。通过参数化与生成式设计,工程师得以:

  • 提升IP复用率:一套代码服务多个产品线。

  • 加速迭代速度:客户需求变更 → 修改配置 → 重新生成。

  • 降低维护成本:Bug修复只需改一处。

未来已来:在Chiplet、AI加速器、RISC-V定制核盛行的时代,掌握生成式设计,就是掌握下一代芯片创新的核心生产力

下期预告:第5章将深入Chisel中的形式验证与断言(Assertion),教你如何用数学方法证明电路正确性,告别“靠仿真碰运气”的时代。关注我们,硬核不停!


最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-23 15:12:29 HTTP/2.0 GET : https://67808.cn/a/469094.html
  2. 运行时间 : 0.090651s [ 吞吐率:11.03req/s ] 内存消耗:4,674.73kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=ff8c6c63f000d52a8b9fd20bd9c0205f
  1. /yingpanguazai/ssd/ssd1/www/no.67808.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/no.67808.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/no.67808.cn/runtime/temp/6df755f970a38e704c5414acbc6e8bcd.php ( 12.06 KB )
  140. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000596s ] mysql:host=127.0.0.1;port=3306;dbname=no_67808;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000989s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000300s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000297s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000474s ]
  6. SELECT * FROM `set` [ RunTime:0.000215s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000709s ]
  8. SELECT * FROM `article` WHERE `id` = 469094 LIMIT 1 [ RunTime:0.000525s ]
  9. UPDATE `article` SET `lasttime` = 1771830749 WHERE `id` = 469094 [ RunTime:0.006369s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.000239s ]
  11. SELECT * FROM `article` WHERE `id` < 469094 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000440s ]
  12. SELECT * FROM `article` WHERE `id` > 469094 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000349s ]
  13. SELECT * FROM `article` WHERE `id` < 469094 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001120s ]
  14. SELECT * FROM `article` WHERE `id` < 469094 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001080s ]
  15. SELECT * FROM `article` WHERE `id` < 469094 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001041s ]
0.092324s