Skip to content

v3.4.6 — 空行规则统一裁决 + 双轨对齐架构 + 格式化规范

Choose a tag to compare

@JayceVane JayceVane released this 30 Sep 11:53
· 112 commits to master since this release

格式化引擎大版本修复

新增

  • 格式化规范 docs/FORMAT_SPEC.md:格式化器唯一权威行为定义(空行/缩进/对齐/单行保留全量规则)
  • 单行/多行双轨对齐架构:用户未换行的语句走单行紧凑,显式换行的走多行列对齐
  • 行内紧凑开关 svtools.inlineCompact(默认开):else $error("x", $time); → else $error("x", $time);,单行例化保持单行并紧凑
  • 行间紧凑开关 svtools.blankCompact(默认开):块内无空行、块间空行分隔;关闭则保持用户空行且格式化绝不新增空行
  • CLI --no-inline-compact / --no-blank-compact

修复

  • 空行规则统一裁决(此前 task/covergroup/clocking 体首尾被插入空行、modport 续行误判致空行整段被删)
  • sequence/property 块头空行;体内多余空格归一化(property p; → property p;)
  • 单行写法保留:单行 constraint / 参数列表 / 模块例化不再被展开
  • end else if 的 else 落第 0 列(generate 链非幂等根因)
  • 对齐分组空行敏感导致的二次格式化列宽漂移(sfp_dma_rx 等 7 文件)
  • $display 在 wait fork 后被从字符串处断行;属性 + 行中块注释的 ; 甩行
  • SV 验证代码六处破坏(类/约束/covergroup/clocking/SVA/fork)

质量

  • golden 用例 7 → 14 个(28 项断言全绿,含幂等)
  • 实测工程幂等校验 38 → 120 文件:111/120 稳定
  • 格式化器内部空行伪影源头全部消除