|
|
|
@ -10,6 +10,7 @@ type Module struct { |
|
|
|
|
Accumulator float64 |
|
|
|
|
ProgramStorage Program |
|
|
|
|
Register []float64 |
|
|
|
|
IO []float64 |
|
|
|
|
isStopped bool |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -40,12 +41,13 @@ func (h *Module) Run() error { |
|
|
|
|
return nil |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func NewHALModule(program Program, registerSize uint64) (*Module, error) { |
|
|
|
|
func NewHALModule(program Program, registerSize uint64, ioSize uint64) (*Module, error) { |
|
|
|
|
if registerSize <= 10 { |
|
|
|
|
return nil, fmt.Errorf("register size must be greater then 10 [ registerSize = %d ]", registerSize) |
|
|
|
|
} |
|
|
|
|
return &Module{ |
|
|
|
|
ProgramStorage: program, |
|
|
|
|
Register: make([]float64, registerSize), |
|
|
|
|
IO: make([]float64, ioSize), |
|
|
|
|
}, nil |
|
|
|
|
} |
|
|
|
|