U5 定案:内建 FB 14 条全部 v1 实现(6 计数拆条 + 定时/触发 5 + SR/RS、PWM、RTC 3)

- 指令集清单 §8:SR/RS、PWM、RTC 状态 扩展→核心
- 指令集优化:§9.2 U5 闭合、§4 A3 行更新、决策历史补记
This commit is contained in:
2026-08-24 15:40:55 +08:00
parent af7054480f
commit c9024a060b
2 changed files with 7 additions and 6 deletions
+3 -2
View File
@@ -168,7 +168,7 @@
|---|---|---|
| A1 | 元数据段格式 | 结构体/字符串的表 schema——v1 预留但格式未定(待定) |
| ~~A2~~ | ~~常量内嵌 vs 常量表~~ | **已定案**:常量表(8B LOADK 查表);LOADK 用 type 位段解释;条目 8B 无 tagIMM64 预留不发射 |
| A3 | 内建 FB 字段类型化 | **已定案**:字段类型化(TON: in/pt/q/et = BOOL/TIME/BOOL/TIMER_TRIG: clk/q = BOOL/BOOL);计数器单/双字(INT/DINT**编码形式 = fb 表拆条**CTU/DCTU/CTD/DCTD/CTUD/DCTUD 6 条,名字即宽度)——U5 待最终确认 |
| A3 | 内建 FB 字段类型化 | **已定案**:字段类型化(TON: in/pt/q/et = BOOL/TIME/BOOL/TIMER_TRIG: clk/q = BOOL/BOOL);计数器单/双字(INT/DINT**编码形式 = fb 表拆条**CTU/DCTU/CTD/DCTD/CTUD/DCTUD 6 条,名字即宽度)——U5 已定案 |
| A4 | DATE/TOD/DT 字面量 | **已定案**v1 **不支持**(类型存在,仅声明/存取/比较,无 `D#/TOD#/DT#` 字面量语法) |
| A5 | 算术语义细化 | **已定案**:饱和模板化到各宽度(SINT/DINT/LINT);TIME+TIME / TIME-TIME / TIME 比较;浮点 IEEE 常规(溢出→±inf、0 除→±inf、NaN 传播,无特判);DATE/TOD/DT **不做运算**(仅存取/比较) |
| A6 | sidecar/I/O 绑定 | **已定案**:与现状一致——绑定粒度仍 `slot = 槽号`(指向槽表条目),channel/bit 语义不变 |
@@ -250,6 +250,7 @@ V2 的 op 位段仅 6 位(64 个),FB 占 8 个不划算,且 machine.toml
- A2 定案:LOADK 用 type 位段解释常量值(与 LOAD 语义统一);常量表条目 8B 无 tag;IMM64 预留不发射
- A3..A8 定案(2026-08-24):计数器单/双字两种;DATE 字面量不支持;TIME/浮点运算按推荐;sidecar 一致;disasm 类型后缀;type 表=基元别名(REAL→float32、LREAL→float64
- A9 定案:按上下文适配、默认 DINT 兜底(用户确认)
- U5 定案:内建 FB 14 条全部 v1 实现(6 计数拆条 + TON/TOF/TP/R/F_TRIG + SR/RS、PWM、RTC
- A10 定案(B1/B2):1 CAL + fb_id 16 位(查 [[fb]] 表);V1 的 8 个 CAL_* opcode 作废
- B4 定案:领域指令(运动控制/通信)不进指令集,一律 FB 库;无 EXT 服务指令
- B3/B5 说明中待确认:单/双字计数编码(CAL type 位段)、op 位段预算
@@ -299,7 +300,7 @@ V2 的 op 位段仅 6 位(64 个),FB 占 8 个不划算,且 machine.toml
| ~~U2~~ | ~~长度组映射~~ | **已被前缀编码取代**11/10/011/010xxx/0010/0011/0001,见指令编码.md §3 |
| ~~U3~~ | ~~字节布局~~ | **已被取代**`[前缀+形态分区\|op] + [func:4\|空:4]`(指令编码.md §2 |
| ~~U4~~ | ~~结构体 v1 只留编码不实现语法~~ | **已定案(预留)**:只留编码路径(LOAD/STORE 16B 变体 + 元数据段),语法 v1 不实现 |
| U5 | **B3 最新方**fb 表拆条 CTU/DCTU/CTD/DCTD/CTUD/DCTUD6 计数 + TON/TOF/TP/R_TRIG/F_TRIG = 11 条) | 用户提出,未最终确认 | 定案 / 改 |
| ~~U5~~ | ~~B3 计数拆条~~ | **已定**fb 表拆条 11 条(CTU/DCTU/CTD/DCTD/CTUD/DCTUD 6 计数 + TON/TOF/TP/R_TRIG/F_TRIG),名字即宽度;**清单内建 FB 全部 14 条(含 SR/RS、PWM、RTCv1 实现** |
| U6 | **B5 op 预算**:基础 23 + 余 41,op:6 不扩 | 讨论过,未写文档 | 接受 / 改 |
| U7 | **头 128 字节布局**64/68 改义、n_slots/n_values、型号@72、112..127 预留) | §2.5 已写 | 未细审,确认 / 改 |
| U8 | **槽表条目 {addr:u32, 预留:u32} 8B** | §2.3 已写 | 确认 / 改 |
+4 -4
View File
@@ -2,7 +2,7 @@
> 状态:**已编码**。全功能指令清单,全部指令已按 [`指令编码.md`](指令编码.md) 的
> RISC-V 式格式(前缀长度组 + op + func + fmt)分配编码。
> 状态列:`核心` = v1 实现;`扩展` = v1 后实现;`预留` = 仅留编码/未来。
> 状态列:`核心` = v1 实现(含内建 FB 全部 14 条);`扩展` = v1 后实现;`预留` = 仅留编码/未来。
## 编码规则摘要(详见指令编码.md)
@@ -209,9 +209,9 @@ bit127 88 bit87 24 bit23 16 bit15 12 bit11 8 bit7 0
| 8 | DCTUD | cu/cd/r/lu/pv(DINT)/qu/qd/cv(DINT) | 核心 |
| 9 | R_TRIG | clk/q = BOOL/BOOL | 核心 |
| 10 | F_TRIG | clk/q = BOOL/BOOL | 核心 |
| 11 | SR / RS | s1/r/s/q… | 扩展 |
| 12 | PWM | in/pt/q… | 扩展 |
| 13 | RTC | 日期时钟字段 | 扩展 |
| 11 | SR / RS | s1/r/s/q… | 核心 |
| 12 | PWM | in/pt/q… | 核心 |
| 13 | RTC | 日期时钟字段 | 核心 |
## 9. 字符串(未来,元数据段 + 16/32B)