[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [computer-go] Hardware-Instruction.



>retrieve the
>number of liberties of a chain at a certain coordinate and put the
>coordinates of those liberties in a little list

I think it is not easy to implement this function efficiently in hardware.
It is trivial if one accepts - as worst case - N cycles (where N is the
length of the chain). But if one wants something like log(N) or even 1 cycle
it gets difficult. In my paper designs I have not found a reasonable
implementation for log(N). The problem is that two stones of a chain can
share the same liberty. How does one avoid dubble-counting when summing up
the liberties in parallel? If one counts sequential like in software one can
mark the liberties. This is the N-cycles method. But that would be no big
improvement. If one makes a hardware Go-programm one has to solve this
problem. I think its solvable. One has just to have the right idea.
I know of some papers of finding connected components in picture-processing
in log(N) time. This is the same problem. But the algorithms are very
complicated. I can not imagine how to implement this directly in hardware.

Chrilly

I don't have a good feeling for how much logic one can cram into one of today's FPGAs, so this might not be possible. But, if you have a sufficiently parallel state representation, this could be done all in combinational logic and then pipelined at will to meet the clock. Can you tell me more about how you are thinking about the board representation in hardware? What kind of low level board info can/can't be availible within a single cycle?

_________________________________________________________________
Is your PC infected? Get a FREE online computer virus scan from McAfeeŽ Security. http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963

_______________________________________________
computer-go mailing list
computer-go@xxxxxxxxxxxxxxxxx
http://www.computer-go.org/mailman/listinfo/computer-go/