make net update use c structT

This commit is contained in:
Redo 2022-11-04 18:06:36 -06:00
parent bb66be2083
commit 7d0dcc53a2
2 changed files with 13 additions and 11 deletions

View File

@ -213,15 +213,17 @@ end
-- Logic Critical
function Group.update(net, tick)
local state = net.state_num[0]>0 and 1 or 0
if state ~= net.state[0] then
net.state[0] = state
net.update_tick[0] = tick
local cnet = net.c
local state = cnet.state_num[0]>0 and 1 or 0
if state ~= cnet.state[0] then
cnet.state[0] = state
cnet.update_tick[0] = tick
local len = net.num_gates_update[0]-1
local len = cnet.num_gates_update[0]-1
for i = 0, len do
local gate = net.gates_update[i+1]
if gate.in_queue[0]==0 then
local cgate = cnet.gates_update_c[i]
if cgate.in_queue[0]==0 then
local gate = Simulation.gate_from_cgate(sim, cgate)
Simulation.queuegate(GSim, gate)
end
end

View File

@ -415,10 +415,10 @@ function Simulation.remove_net(sim, net)
sim.nets[net.id] = nil
end
function Simulation.net_from_netc(sim, netc)
return sim.nets[netc.id] or error("no net for id "..netc.id)
function Simulation.net_from_cnet(sim, cnet)
return sim.nets[cnet.id] or error("no net for id "..cnet.id)
end
function Simulation.gate_from_gatec(sim, gatec)
return sim.gates[gatec.objref] or error("no gate for objref "..gatec.objref)
function Simulation.gate_from_cgate(sim, cgate)
return sim.gates[cgate.objref] or error("no gate for objref "..cgate.objref)
end