Basic cmos inverter, can you help a newby?

Hi - I’m at the beginning of learning ngspice+KiCad and my starting point was a basic CMOS inverter like below:

with the pulsed source, to generate a square wave, having as a spice model:
pulse(0 3.3 0 1u 1u 5m 5m)

and transient analysis defined by
.tran 100u 100m

The CMOS library I used is:

* IC nmos
.model cmosn	nmos(level=1 vto=0.5 kp=35.2e-6 gamma=0.91
+		cgso=210pF cgdo=210pF cj=4.9e-4 cjsw=245pF ld=3e-7 pb=0.94
+		tox=50n)

* IC pmos
.model cmosp	pmos(level=1 vto=0.5 kp=13.4e-6 gamma=0.64
+		cgso=210pF cgdo=210pF cj=2.3e-4 cjsw=117pF ld=3e-7 pb=0.90
+		tox=50n)

I hope nothing’s wrong, until now…

Issue is that when I run the simulation, I don’t have the square pulses I expected, but flat values in the 1-100ms time series:

Complete output below (where I can see the inverter working, see inv_out, compared to vin).
What am I missing?
Thanks in advance!

Compatibility modes selected: ps
Circuit: KiCad schematic
Doing analysis at TEMP = 27.000000 and TNOM = 27.000000
Warning: v_pulse: no DC value, transient time 0 value used
Initial Transient Solution
--------------------------
Node                                   Voltage
----                                   -------
inv_out                                    3.3
vin                                          0
+3v3                                       3.3
vcc2#branch                          -3.31e-12
v_pulse#branch                               0
 Reference value :  0.00000e+00
No. of Data Rows : 1086

My KiCad 6 project:
KiCad_simul.zip (54.1 KB)

Please have a look at your input voltage V_pulse: the ngspice manual says in chapter 4.1.1:

PULSE (V1 V2 TD TR TF PW PER NP)
Name Parameter Default Value Units
V1 Initial value - V , A
V2 Pulsed value - V , A
TD Delay time 0.0 sec
TR Rise time TSTEP sec
TF Fall time TSTEP sec
PW Pulse width TSTOP sec
PER Period TSTOP sec
NP Number of Pulses *) unlimited -

PW and PER are completely out of order in your project, they are constant within the simulation time of 1ms. Better have something like:
pulse(0 3.3 0 1u 1u 50u 100u) and
.tran 1u 1m
A final remark: the threshold voltage of a PMOS transistor is negative, so you might better have vto=-0.5 in .model cmosp. You see the difference when watching the output, which is leaky with positive PMOS threshold.

the syntax of your Vin is wrong, you are always at 0.
Try that y1=0 y2=3.3 td=0 tr=1u tf=1u tw=2m per=5m
it should work.

At generator V_pulse1, Parameter Sim.Params the per value gives the time of a complete period, the tw gives the high time. You set both times to 5m, means one period takes 5ms and during this time, the signal is high for 5ms (all the time).
You probably want to set per to 10m for 10ms.

Thanks all - I was sure I was overlooking at something in the PULSE definition!
@holger - I took the cmos.lib from models_ugr\modelos_subckt\fet, which is probably outdated.