Re: detection of edge
Usually you want to 'record' the events in a signal which had an edge. usually the signal which you are detecting for any 'edge' changes will have a frequency of change much smaller than your clock frequency on which your design is working.
For example an interrupt signal. Say you want to take some action in your hardware when an interrupt edge arrives. Now you may have to detect the 'edge' on interrupt, and do something subsequently. When you genrate a 'pusle' corresponding to that interrupt, you can use the pulse to do 'something meaningful' say for example, loading some data into some register in your design. YOu cannot directly use the 'edge' to clock the registers, as the design will become Async.
Hope you get it
Kr,
avi