A deadlock is when two processes are locking each other out and you end up with a circular lock situation. The basic idea is this.
Session 1 locks a record.
Session 2 accesses another record (could be the same table or a different table).
Session 2 tries to access the record that session 1 has locked but has to wait as session 1 still has a lock.
Session 1 tries to access to record that session 2 has locked but has to wait because session 2 has a lock on the record. We now have a deadlock because neither session will ever complete. SQL will kill one of the sessions and it back allowing the other session to complete.
You need to look into your code and see if you can clear up the problem.