Idiomatic Zener 是一套针对 .zen 代码的规范性风格规则,适用于所有模块、参考设计和板级文件。
用途 该规则集用于在编写、审查或重构 .zen 文件时,统一 Zener HDL 代码的风格与惯用法,提升代码质量、可读性和可维护性。
主要能力与规则
-
禁止条件实例化 绝不使用 if 来创建或移除元件。始终实例化每个元件,通过 dnp= 控制其是否装配。该规则适用于模块、板级和参考设计,包括可选功能块。
-
通过 record 模式实现 DNP 对于由配置控制的可选子电路,使用 record 将取值与 DNP 状态配对。配置值为零或禁用时,表示 dnp=True 并使用占位值。
-
最小化元件数量 更少的元件意味着更简单的 BOM、更易装配、更低成本。优先使用值切换而非重复元件:当配置在离散选项间选择时,使用单个元件并计算其值,而不是实例化多个带有互斥 DNP 条件的元件。同时,利用 IC 内部上拉/下拉:若默认状态使用内部偏置,则不要添加外部电阻,只需对该情况将单个电阻设为 DNP。
-
类型化单位配置 配置项使用 @stdlib/units.zen 中的物理类型。暴露一个有意义的参数(如截止频率),而非原始 R/C 值。仅对离散设计选择使用 enum()。
-
在命名函数中计算 将计算放入带数据手册引用的命名函数中,并使用 e96() / e24() 对齐 E 系列。
-
Power IO 上的电压 每个 Power io 通过模板声明其电压范围。
-
help 字符串 当 help= 能增加集成者可见的、无法从名称、类型或默认值中直接看出的含义时使用它;若只是重复这些字段,则省略。
-
禁止 .NET 访问器 直接使用 Power/Ground io 作为引脚连接,绝不使用 .NET。
-
命名约定 在标准约定(io 大写、config 小写)之外:内部网络使用 _ 前缀(如 _VREF、_XI、_RBIAS);元件名使用大写功能前缀(如 R_LOAD、C_VDD、U_LDO);差分对使用 _P / _N 后缀(如 IN_P、IN_N,而非 _PLUS / _MINUS)。
-
有主见的默认值 不要为集成者不应调整的实现细节暴露配置,如去耦电容值、无源器件封装尺寸、测试点样式。应暴露集成者确实需要更改的配置,如滤波器截止频率、输出电压、增益设置、可选子电路的启用/禁用。
检查清单
- 实例化时无 if 守卫——使用 dnp=
- 无 .NET 访问器——直接使用 io
- 物理值不使用 str 配置——使用类型化单位
- 计算放在带 e96() / e24() 的命名函数中
- 所有 Power io 通过模板声明电压范围
- 仅当 help= 增加非显而易见的集成者可见含义时使用
- 差分对使用 _P / _N
- 内部网络以 _ 为前缀
- 最小化元件数量——值切换、利用内部偏置
- 重命名元件或网络时,保持 # pcb:sch 注释同步
- 从 Component() 引脚中省略 no_connect 引脚
适用场景 适用于使用 Zener HDL 编写、审查或重构 .zen 文件(模块、参考设计、板级文件)的开发者。
限制 该资料为风格规则与惯用法说明,未提供安装命令、平台支持、收费或价格等信息。