Wow. Thank you guys so much for your answers!!
This is the best forum ever
Reducing temp and/or making Vsb=0 in M2 didn't help.
But removing channel length modulation did
The models on cmosedu.com are level 3 and I didn't know how to remove CLM
in a level 3 model, so I made them level 1 and added LAMBDA=0.
There is no more current mismatch between the 2 branches and I finally managed to get the 0-current state
or the 20u state depending on my .nodeset statement.
If you don't mind, I am gonna take advantage of the opportunity
The way I understand the circuit, Id1 and Id2 follow 2 different curves with respect to Vg,n.
This 2 curves only meet a 2 points with Id1=Id2=0 or Id1=Id2=20u
This behavior is confirmed by the following simulation
When using a P current mirror to enforce Id1=Id2, I understand a startup circuit is necessary to prevent the circuit to settle to the 0-current equilibrium.
So my question is: if, instead of a P current mirror with a 1:1 ratio, we choose something different, like 1:1.5,
is a startup circuit still necessary? Is this not exactly why I couldn't get the 0-state in the simulation myself?
I confess it is not very clear why a startup circuit is absolutely necessary here.
Baker himself use a transistor W/L=10/100 in the startup which I guess it would be nice to avoid.
Anyway, thanks again very much to both of you for your answers
Pif