ๅ่ฎฎ v0.2
ไบไปถๅ่ฎฎ / SHM ABI / UDP
๐ก ๅค้จไบไปถ (API)
EV_FLASH(tag_u32)
| ๅๆฐ |
ๆ่ฟฐ |
| ็จ้ |
ไธไธช็กฎๅฎๆง READโWRITE ๅจๆ |
| ่ฟๅ |
readout (R0/R1), FLAGS ๅ็ฌ่ฏปๅ |
| ๆกไปถ |
ไป
ๅฝ BAKE_APPLIED==1 ๆถๅ
่ฎธ |
if BAKE_APPLIED == 0:
return NotBaked # ็ถๆไธๅ
# ๆง่ก PHASE_READ โ TURNAROUND โ PHASE_WRITE โ READOUT_SAMPLE
return readout, FLAGS32
EV_RESET_DOMAIN(mask16)
| ๅๆฐ |
ๆ่ฟฐ |
| ็จ้ |
ๅ้็ฝฎ (thr_cur16=0, locked=0) |
| ๆกไปถ |
ไป
ๅจ EV_FLASH ไน้ด |
| ๆกไปถ |
ไป
ๅฝ BAKE_APPLIED==1 |
EV_BAKE()
| ๅๆฐ |
ๆ่ฟฐ |
| ็จ้ |
ๅๅญๅบ็จ staging BakeBlob |
| ๆกไปถ |
ไป
ๅจ EV_FLASH ไน้ด |
| ๆๆ |
ๅบ็จๅ้็ฝฎ่ฟ่กๆถ |
๐ EV_FLASH ๅ
้จๅญ้ถๆฎต
- PHASE_READ โ ๅพๅ้ๆ ท่พๅ
ฅ
- TURNAROUND โ Conductor: Hi-Z
- PHASE_WRITE โ Island ้ฉฑๅจ BUS16
- READOUT_SAMPLE โ Conductor ่ฏปๅ BUS
- INTERPHASE_AUTORESET โ ๅฏ้ๅ้็ฝฎ
๐ UDP ๅ่ฎฎ (packet_v1)
ๆบๅจ็บง่
ๆฐๆฎๅ
ๆ ผๅผ (37 ๅญ่)
| Offset |
ๅญๆฎต |
็ฑปๅ |
ๆ่ฟฐ |
| 0 |
magic |
u32 |
'D8UP' (0x50553844) |
| 4 |
version |
u16 |
1 |
| 6 |
flags |
u16 |
has_winner, has_bus, has_cycle, has_flags |
| 8 |
frame_tag |
u32 |
ๅธงๆ ็ญพ |
| 12 |
domain_id |
u8 |
ๅ ID |
| 13 |
pattern_id |
u16 |
ๆจกๅผ ID |
| 15 |
reset_mask16 |
u16 |
้็ฝฎๆฉ็ |
| 17 |
collision_mask16 |
u16 |
็ขฐๆๆฉ็ |
| 19 |
winner_tile_id |
u16 |
่ท่่
ID |
| 21 |
cycle_time_us |
u32 |
ๅจๆๆถ้ด |
| 25 |
flags32_last |
u32 |
ไธไธๅจๆ FLAGS |
| 29 |
bus16[8] |
u8ร8 |
ๆป็บฟๅผ |
Flags (u16)
| ๆฏ็น |
ๆ ๅฟ |
ๆ่ฟฐ |
| bit0 |
has_winner |
winner_tile_id/pattern_id ๆๆ |
| bit1 |
has_bus |
bus16[8] ๆๆ |
| bit2 |
has_cycle |
cycle_time_us ๆๆ |
| bit3 |
has_flags |
flags32_last ๆๆ |
๐ฏ COLLIDE: ๅๅ่ท่่
ๅฎไน
FIRE(t) = (locked_before[t]==0 && locked_after[t]==1)
FIRED_SET(d) = { t | domain_id(t)=d && FIRE(t)=1 }
cnt(d) = |FIRED_SET(d)|
่งๅ
| cnt(d) |
่ท่่
|
COLLIDE(d) |
| 0 |
ๆ |
0 |
| 1 |
ๅไธช |
0 |
| โฅ2 |
้ๆฉ |
1 |
่ท่่
้ๆฉ (cntโฅ2)
1. max priority8
2. ๅนณๅฑๆถ min tile_id
Bake the Future. Build the Substrate. ๐ ๏ธโก๏ธ