what the pop operation is doing exactly ? is it just remove the head of the stack bit regardless the D_in and shift all the other bits one position toward the head?
and if so what should be in the ‘empty’ bit or the tail of the stack ?
Do not worry about popping an empty stack or overfilling a stack.
That is a separate issue.
The focus is how to implement a stack in which the longest combinational path has constant length.