@Philippe is correct. You need to assign pulse_a to some value, 0 or 1 when you define the signal. Add this: signal pulse_a: std_logic := '0'; and it will work.
You said that you're forcing it low in iSim. Well guess what? When you force it low, it stays low! So your code won't be able to change it!
EDIT: You should also be assigning pulse_count to some initial value.