you can get a line Pd=1 for any value of Pfa, you can get this with simulation, if the channel is perfect and the SNR is high. the ligne Pd=1 for any value of Pfa is the ideal one. But in application we assime low SNR, so we try to approach this ligne Pd=1.
The answer is that no, it is impossible to get PD=1 and PF=0. A line called the receiver operating characteristic (ROC) separates feasible and unfeasible detectors. This line
is usually far from the top left hand corner. The only 2 ways to approach PD=1 and PF=0
is to either let the SNR approach infinity (which amounts to considering the vanishing noise case) or to take an infinite number of observations.
In case, the number of samples taken is very large then the value of Pd may approach unity for a lower value of Pf. But in that case the sensing time would be higher and the throughput of secondary will decrease.
In practice, we wish to have such a detector when Pfa=0 Pd is 1. As it is mentioned above this is only possible when SNR goes to infinity which it does not happen in reality. I suggest you check your simulations as you might have some bugs in code.