slow.monster

STUDIO HAZE · jeniapp

Topaz source

Open by house policy. Topaz is our own language.

Topaz 5.20.2 · 63 files

apps/circuit/core/history.tpz

Topaz · 1121 B · Original file

1// 시간 이력과 파형. 틱마다 그 틱의 입력 상태로 평탄 회로를 다시 평가해 프로브 노드의 신호를 모읍니다.
2// 입력은 평탄 회로, 틱별 입력값 목록, 프로브 아이디 목록이고 출력은 프로브마다 틱별 0/1 열입니다.
3// 같은 틱은 늘 같은 신호를 내므로 시간축을 오가도 결과가 같습니다.
4// 되먹임 회로의 시간 흐름은 다루지 않습니다. 호출부가 조합 회로에서만 부릅니다.
5// Time history: re-evaluate the flat circuit per tick and collect each probe's signal series.
7import core.netlist
8import core.sim
10export type 파형 = { 프로브: string, 값들: Array<bool> }
12export function 파형계산(평탄: netlist.회로, 이력: Array<Array<netlist.입력값>>, 프로브들: Array<string>) -> Array<파형> {
13 let 틱시뮬들 = 이력.map(상태 => sim.평가회로({ 노드들: netlist.입력적용(평탄.노드들, 상태), 전선들: 평탄.전선들 }))
14 프로브들.map(프로브 => ({ 프로브: 프로브, 값들: 틱시뮬들.map(시뮬 => sim.신호로(시뮬, 프로브).신호) }))

SHA256 3560e5d9bd6e74e158fc6aae19efc245d08a23623ad07a120f80606f45f27324