* SPICE netlist
V_INPUT LAMP_PLUS LAMP_MINUS PULSE(38 57 1 100m 100m 2 4) AC 0
R_BUCK_LOAD LAMP_PLUS LAMP_MINUS 5
C_BUCK_OUT LAMP_PLUS NC_01 470
V_5V_RAIL NC_02 NC_03 5 AC 0
R_LAMP LAMP_PLUS LAMP_MINUS 15
R_PULLDOWN LAMP_PLUS LAMP_MINUS 10k
R_GATE LAMP_PLUS LAMP_MINUS 150
R_DRAIN_LOAD LAMP_PLUS LAMP_MINUS 1
C_LOAD_FILTER LAMP_PLUS NC_04 10
R1_DIVIDER LAMP_MINUS 0 120k
R2_DIVIDER LAMP_MINUS 0 10k
B_THRESHOLD_DETECT NC_05 NC_06 V=if(V(LAMP_MINUS)>3.66, 5, 0) AC 0
B_ADC_DELAY NC_07 NC_08 V=delay(V(LAMP_MINUS), 10m) AC 0
B_FLASH_GENERATOR NC_09 NC_10 V=if(V(LAMP_MINUS)>2.5, if((time-int(time/0.5)*0.5)<0.25, 5, 0), 5) AC 0
B_GATE_DRIVER LAMP_MINUS NC_11 V=V(LAMP_MINUS)*V(LAMP_MINUS)/5 AC 0
M_LOAD_SWITCH NC_12 LAMP_MINUS LAMP_MINUS LAMP_MINUS RFP30N06LE l=1u w=100u
R_SENSE_LOAD 0 0 1Meg
R_THRESH_LOAD 0 0 1Meg
R_FLASH_LOAD 0 0 1Meg
R_GATE_LOAD 0 0 1Meg
R_DRIVE_LOAD 0 0 1Meg
R_MOSFET_LOAD 0 0 1Meg

* LTspice schematic (.asc)
Version 4
SHEET 1 1024 624
WIRE -512 -280 -512 -312
WIRE -384 -280 -512 -280
WIRE -256 -280 -384 -280
WIRE -128 -280 -256 -280
WIRE 0 -280 -128 -280
WIRE 128 -280 0 -280
WIRE 256 -280 128 -280
WIRE 384 -280 256 -280
WIRE 512 -280 384 -280
WIRE -512 -232 -512 -280
WIRE -384 -232 -384 -280
WIRE -256 -232 -256 -280
WIRE -128 -232 -128 -280
WIRE 0 -232 0 -280
WIRE 128 -232 128 -280
WIRE 256 -232 256 -280
WIRE 384 -232 384 -280
WIRE 512 -232 512 -280
WIRE -512 -120 -512 -152
WIRE -384 -120 -384 -152
WIRE -384 -120 -512 -120
WIRE -256 -120 -256 -152
WIRE -256 -120 -384 -120
WIRE -128 -120 -128 -152
WIRE -128 -120 -256 -120
WIRE 0 -120 0 -152
WIRE 0 -120 -128 -120
WIRE 128 -120 128 -152
WIRE 128 -120 0 -120
WIRE 256 -120 256 -152
WIRE 256 -120 128 -120
WIRE 384 -120 384 -152
WIRE 384 -120 256 -120
WIRE 512 -120 512 -152
WIRE 512 -120 384 -120
WIRE -512 -72 -512 -120
WIRE -416 -72 -512 -72
WIRE -288 -72 -416 -72
WIRE -160 -72 -288 -72
WIRE -32 -72 -160 -72
WIRE 96 -72 -32 -72
WIRE 224 -72 96 -72
WIRE 352 -72 224 -72
WIRE 480 -72 352 -72
WIRE -416 -24 -416 -72
WIRE -288 -24 -288 -72
WIRE -160 -24 -160 -72
WIRE -32 -24 -32 -72
WIRE 96 -24 96 -72
WIRE 224 -24 224 -72
WIRE 352 -24 352 -72
WIRE 480 -24 480 -72
WIRE -416 88 -416 56
WIRE -288 88 -288 56
WIRE -288 88 -416 88
WIRE -160 88 -160 56
WIRE -160 88 -288 88
WIRE -32 88 -32 56
WIRE -32 88 -160 88
WIRE 96 88 96 56
WIRE 96 88 -32 88
WIRE 224 88 224 56
WIRE 224 88 96 88
WIRE 352 88 352 56
WIRE 352 88 224 88
WIRE 480 88 480 56
WIRE 480 88 352 88
WIRE -416 136 -416 88
WIRE -160 152 -160 88
WIRE -32 152 -32 88
WIRE 96 152 96 88
WIRE 224 152 224 88
WIRE 352 152 352 88
WIRE 480 152 480 88
WIRE -160 264 -160 232
WIRE -32 264 -32 232
WIRE -32 264 -160 264
WIRE 96 264 96 232
WIRE 96 264 -32 264
WIRE 224 264 224 232
WIRE 224 264 96 264
WIRE 352 264 352 232
WIRE 352 264 224 264
WIRE 480 264 480 232
WIRE 480 264 352 264
WIRE -160 312 -160 264
FLAG -416 136 0
FLAG -512 -312 VIN
FLAG 512 -280 LAMP_PLUS
FLAG 480 -72 LAMP_MINUS
FLAG -256 -280 VCC_5V
FLAG -160 312 0
FLAG -160 -72 SENSE
FLAG 96 -72 THRESHOLD
FLAG 224 -72 FLASH_CTRL
FLAG 352 -72 GATE_DRIVE
SYMBOL voltage -512 -248 R0
SYMATTR Value2 AC 0
SYMATTR InstName V_INPUT
SYMATTR Value PULSE(38 57 1 100m 100m 2 4)
SYMBOL res -400 -248 R0
SYMATTR InstName R_BUCK_LOAD
SYMATTR Value 5
SYMBOL cap -272 -248 R0
SYMATTR InstName C_BUCK_OUT
SYMATTR Value 470u
SYMBOL voltage -144 -248 R0
SYMATTR Value2 AC 0
SYMATTR InstName V_5V_RAIL
SYMATTR Value 5
SYMBOL res -16 -248 R0
SYMATTR InstName R_LAMP
SYMATTR Value 15
SYMBOL res 112 -248 R0
SYMATTR InstName R_PULLDOWN
SYMATTR Value 10k
SYMBOL res 240 -248 R0
SYMATTR InstName R_GATE
SYMATTR Value 150
SYMBOL res 368 -248 R0
SYMATTR InstName R_DRAIN_LOAD
SYMATTR Value 1
SYMBOL cap 496 -248 R0
SYMATTR InstName C_LOAD_FILTER
SYMATTR Value 10u
SYMBOL res -432 -40 R0
SYMATTR InstName R1_DIVIDER
SYMATTR Value 120k
SYMBOL res -304 -40 R0
SYMATTR InstName R2_DIVIDER
SYMATTR Value 10k
SYMBOL bv -176 -40 R0
SYMATTR Value2 AC 0
SYMATTR InstName B_THRESHOLD_DETECT
SYMATTR Value V=if(V(sense)>3.66, 5, 0)
SYMBOL bv -48 -40 R0
SYMATTR Value2 AC 0
SYMATTR InstName B_ADC_DELAY
SYMATTR Value V=delay(V(threshold), 10m)
SYMBOL bv 80 -40 R0
SYMATTR Value2 AC 0
SYMATTR InstName B_FLASH_GENERATOR
SYMATTR Value V=if(V(flash_ctrl)>2.5, if((time-int(time/0.5)*0.5)<0.25, 5, 0), 5)
SYMBOL bv 208 -40 R0
SYMATTR Value2 AC 0
SYMATTR InstName B_GATE_DRIVER
SYMATTR Value V=V(flash_ctrl)*V(gate_drive)/5
SYMBOL nmos 432 -152 R0
SYMATTR Value2 l=1u w=100u
SYMATTR InstName M_LOAD_SWITCH
SYMATTR Value RFP30N06LE
SYMBOL res -176 136 R0
SYMATTR InstName R_SENSE_LOAD
SYMATTR Value 1Meg
SYMBOL res -48 136 R0
SYMATTR InstName R_THRESH_LOAD
SYMATTR Value 1Meg
SYMBOL res 80 136 R0
SYMATTR InstName R_FLASH_LOAD
SYMATTR Value 1Meg
SYMBOL res 208 136 R0
SYMATTR InstName R_GATE_LOAD
SYMATTR Value 1Meg
SYMBOL res 336 136 R0
SYMATTR InstName R_DRIVE_LOAD
SYMATTR Value 1Meg
SYMBOL res 464 136 R0
SYMATTR InstName R_MOSFET_LOAD
SYMATTR Value 1Meg
WIRE 96 -24 96 -72
WIRE 96 8 96 -24
WIRE 96 8 160 8
WIRE 160 8 160 -24
WIRE 160 -24 224 -24