more optimizations: move port states into gates, inline net queue checks
This commit is contained in:
13
sim/port.lua
13
sim/port.lua
@@ -17,17 +17,15 @@ PortDirections = {
|
||||
|
||||
Port = {}
|
||||
|
||||
function Port.new(type, direction, position, causeupdate, idx)
|
||||
function Port.new(type, direction, position, causeupdate, idx, gate)
|
||||
local o = {
|
||||
--state = ffi.new("long long", 0),
|
||||
state = 0,
|
||||
group = nil,
|
||||
|
||||
type = type,
|
||||
direction = direction,
|
||||
position = position,
|
||||
causeupdate = causeupdate,
|
||||
gate = nil,
|
||||
gate = gate,
|
||||
idx = idx,
|
||||
}
|
||||
return o
|
||||
@@ -50,12 +48,9 @@ function Port.getgate(port)
|
||||
return port.gate
|
||||
end
|
||||
|
||||
function Port.setgate(port, gate)
|
||||
port.gate = gate
|
||||
end
|
||||
|
||||
function Port.setgroup(port, group)
|
||||
port.group = group
|
||||
--Port.getgate(port)[port.idx*2] = group
|
||||
Port.getgate(port).port_nets[port.idx] = group
|
||||
end
|
||||
|
||||
@@ -68,5 +63,5 @@ function Port.gettype(port)
|
||||
end
|
||||
|
||||
function Port.getstate(port)
|
||||
return port.state
|
||||
return Port.getgate(port).port_states[port.idx]
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user