RTimothyEdwards / netgen

Netgen complete LVS tool for comparing SPICE or verilog netlists
Other
109 stars 25 forks source link

Calling an verilog module from spice no longer works. #94

Open d-m-bailey opened 2 months ago

d-m-bailey commented 2 months ago

Up to netgen 1.5.269, it's possible to call a verilog module from a spice netlist. Here are the results of the verilog cell compare.

Class XL_brownout_dig (0):  Merged 155 parallel devices.
Class brownout_dig (1):  Merged 155 parallel devices.
Subcircuit summary:
Circuit 1: XL_brownout_dig                                                        |Circuit 2: brownout_dig                                                           
----------------------------------------------------------------------------------|----------------------------------------------------------------------------------
XL_sky130_fd_sc_hd__decap_6 (4->1)                                                |sky130_fd_sc_hd__decap_6 (4->1)                                                   
XL_sky130_fd_sc_hd__fill_2 (22->1)                                                |sky130_fd_sc_hd__fill_2 (22->1)                                                   
XL_sky130_fd_sc_hd__and3_1 (2)                                                    |sky130_fd_sc_hd__and3_1 (2)                                                       
XL_sky130_fd_sc_hd__fill_1 (30->1)                                                |sky130_fd_sc_hd__fill_1 (30->1)                                                   
XL_sky130_fd_sc_hd__inv_2 (4)                                                     |sky130_fd_sc_hd__inv_2 (4)                                                        
XL_sky130_fd_sc_hd__dfstp_1 (13)                                                  |sky130_fd_sc_hd__dfstp_1 (13)                                                     
XL_sky130_fd_sc_hd__clkbuf_4 (9)                                                  |sky130_fd_sc_hd__clkbuf_4 (9)                                                     
XL_sky130_fd_sc_hd__buf_2 (12)                                                    |sky130_fd_sc_hd__buf_2 (12)                                                       
XL_sky130_fd_sc_hd__tapvpwrvgnd_1 (27->1)                                         |sky130_fd_sc_hd__tapvpwrvgnd_1 (27->1)                                            
XL_sky130_fd_sc_hd__decap_3 (36->1)                                               |sky130_fd_sc_hd__decap_3 (36->1)                                                  
XL_sky130_fd_sc_hd__and3b_1 (7)                                                   |sky130_fd_sc_hd__and3b_1 (7)                                                      
XL_sky130_ef_sc_hd__decap_12 (17->1)                                              |sky130_ef_sc_hd__decap_12 (17->1)                                                 
XL_sky130_fd_sc_hd__decap_4 (13->1)                                               |sky130_fd_sc_hd__decap_4 (13->1)                                                  
XL_sky130_fd_sc_hd__decap_8 (14->1)                                               |sky130_fd_sc_hd__decap_8 (14->1)                                                  
XL_sky130_fd_sc_hd__a21o_1 (2)                                                    |sky130_fd_sc_hd__a21o_1 (2)                                                       
XL_sky130_fd_sc_hd__conb_1 (2)                                                    |sky130_fd_sc_hd__conb_1 (2)                                                       
XL_sky130_fd_sc_hd__o21a_1 (1)                                                    |sky130_fd_sc_hd__o21a_1 (1)                                                       
XL_sky130_fd_sc_hd__xor2_1 (3)                                                    |sky130_fd_sc_hd__xor2_1 (3)                                                       
XL_sky130_fd_sc_hd__a21oi_1 (10)                                                  |sky130_fd_sc_hd__a21oi_1 (10)                                                     
XL_sky130_fd_sc_hd__xnor2_1 (2)                                                   |sky130_fd_sc_hd__xnor2_1 (2)                                                      
XL_sky130_fd_sc_hd__nand2_1 (4)                                                   |sky130_fd_sc_hd__nand2_1 (4)                                                      
XL_sky130_fd_sc_hd__or2_1 (2)                                                     |sky130_fd_sc_hd__or2_1 (2)                                                        
XL_sky130_fd_sc_hd__buf_1 (2)                                                     |sky130_fd_sc_hd__buf_1 (2)                                                        
XL_sky130_fd_sc_hd__nor3b_1 (6)                                                   |sky130_fd_sc_hd__nor3b_1 (6)                                                      
XL_sky130_fd_sc_hd__clkbuf_1 (3)                                                  |sky130_fd_sc_hd__clkbuf_1 (3)                                                     
XL_sky130_fd_sc_hd__nor2_2 (1)                                                    |sky130_fd_sc_hd__nor2_2 (1)                                                       
XL_sky130_fd_sc_hd__clkbuf_2 (1)                                                  |sky130_fd_sc_hd__clkbuf_2 (1)                                                     
XL_sky130_fd_sc_hd__and2_1 (4)                                                    |sky130_fd_sc_hd__and2_1 (4)                                                       
XL_sky130_fd_sc_hd__a31o_1 (3)                                                    |sky130_fd_sc_hd__a31o_1 (3)                                                       
XL_sky130_fd_sc_hd__nor3_1 (2)                                                    |sky130_fd_sc_hd__nor3_1 (2)                                                       
XL_sky130_fd_sc_hd__or3b_1 (1)                                                    |sky130_fd_sc_hd__or3b_1 (1)                                                       
XL_sky130_fd_sc_hd__and2b_1 (1)                                                   |sky130_fd_sc_hd__and2b_1 (1)                                                      
XL_sky130_fd_sc_hd__dlymetal6s2s_1 (6)                                            |sky130_fd_sc_hd__dlymetal6s2s_1 (6)                                               
XL_sky130_fd_sc_hd__and4_2 (1)                                                    |sky130_fd_sc_hd__and4_2 (1)                                                       
XL_sky130_fd_sc_hd__clkbuf_16 (3)                                                 |sky130_fd_sc_hd__clkbuf_16 (3)                                                    
XL_sky130_fd_sc_hd__o31a_1 (1)                                                    |sky130_fd_sc_hd__o31a_1 (1)                                                       
XL_sky130_fd_sc_hd__dfrtp_1 (3)                                                   |sky130_fd_sc_hd__dfrtp_1 (3)                                                      
XL_sky130_fd_sc_hd__and4_1 (2)                                                    |sky130_fd_sc_hd__and4_1 (2)                                                       
XL_sky130_fd_sc_hd__a21boi_1 (1)                                                  |sky130_fd_sc_hd__a21boi_1 (1)                                                     
XL_sky130_fd_sc_hd__dlygate4sd3_1 (4)                                             |sky130_fd_sc_hd__dlygate4sd3_1 (4)                                                
XL_sky130_fd_sc_hd__a22o_1 (1)                                                    |sky130_fd_sc_hd__a22o_1 (1)                                                       
XL_sky130_fd_sc_hd__nor2_1 (1)                                                    |sky130_fd_sc_hd__nor2_1 (1)                                                       
XL_sky130_fd_sc_hd__nand2b_1 (1)                                                  |sky130_fd_sc_hd__nand2b_1 (1)                                                     
Number of devices: 129                                                            |Number of devices: 129                                                            
Number of nets: 138                                                               |Number of nets: 138                                                               
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Netlists match uniquely.

Subcircuit pins:
Circuit 1: XL_brownout_dig                                                        |Circuit 2: brownout_dig                                                           
----------------------------------------------------------------------------------|----------------------------------------------------------------------------------
osc_ck                                                                            |osc_ck                                                                            
dcomp                                                                             |dcomp                                                                             
ena                                                                               |ena                                                                               
force_ena_rc_osc                                                                  |force_ena_rc_osc                                                                  
force_dis_rc_osc                                                                  |force_dis_rc_osc                                                                  
force_short_oneshot                                                               |force_short_oneshot                                                               
brout_filt                                                                        |brout_filt                                                                        
otrip[2]                                                                          |otrip[2]                                                                          
vtrip[2]                                                                          |vtrip[2]                                                                          
otrip[1]                                                                          |otrip[1]                                                                          
vtrip[0]                                                                          |vtrip[0]                                                                          
otrip[0]                                                                          |otrip[0]                                                                          
vtrip[1]                                                                          |vtrip[1]                                                                          
otrip_decoded[1]                                                                  |otrip_decoded[1]                                                                  
otrip_decoded[2]                                                                  |otrip_decoded[2]                                                                  
otrip_decoded[4]                                                                  |otrip_decoded[4]                                                                  
otrip_decoded[0]                                                                  |otrip_decoded[0]                                                                  
osc_ena                                                                           |osc_ena                                                                           
outb_unbuf                                                                        |outb_unbuf                                                                        
otrip_decoded[7]                                                                  |otrip_decoded[7]                                                                  
otrip_decoded[3]                                                                  |otrip_decoded[3]                                                                  
otrip_decoded[5]                                                                  |otrip_decoded[5]                                                                  
otrip_decoded[6]                                                                  |otrip_decoded[6]                                                                  
timed_out                                                                         |timed_out                                                                         
vtrip_decoded[3]                                                                  |vtrip_decoded[3]                                                                  
vtrip_decoded[5]                                                                  |vtrip_decoded[5]                                                                  
vtrip_decoded[6]                                                                  |vtrip_decoded[6]                                                                  
vtrip_decoded[1]                                                                  |vtrip_decoded[1]                                                                  
vtrip_decoded[2]                                                                  |vtrip_decoded[2]                                                                  
vtrip_decoded[4]                                                                  |vtrip_decoded[4]                                                                  
vtrip_decoded[0]                                                                  |vtrip_decoded[0]                                                                  
vtrip_decoded[7]                                                                  |vtrip_decoded[7]                                                                  
VGND                                                                              |VGND                                                                              
VPWR                                                                              |VPWR                                                                              
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Cell pin lists are equivalent.
Device classes XL_brownout_dig and brownout_dig are equivalent.

From netgen 1.5.270 these are the results

Class XL_brownout_dig (0):  Merged 155 parallel devices.
Class brownout_dig (1):  Merged 155 parallel devices.
Subcircuit summary:
Circuit 1: XL_brownout_dig                                                        |Circuit 2: brownout_dig                                                           
----------------------------------------------------------------------------------|----------------------------------------------------------------------------------
XL_sky130_fd_sc_hd__decap_6 (4->1)                                                |sky130_fd_sc_hd__decap_6 (4->1)                                                   
XL_sky130_fd_sc_hd__fill_2 (22->1)                                                |sky130_fd_sc_hd__fill_2 (22->1)                                                   
XL_sky130_fd_sc_hd__and3_1 (2)                                                    |sky130_fd_sc_hd__and3_1 (2)                                                       
XL_sky130_fd_sc_hd__fill_1 (30->1)                                                |sky130_fd_sc_hd__fill_1 (30->1)                                                   
XL_sky130_fd_sc_hd__inv_2 (4)                                                     |sky130_fd_sc_hd__inv_2 (4)                                                        
XL_sky130_fd_sc_hd__dfstp_1 (13)                                                  |sky130_fd_sc_hd__dfstp_1 (13)                                                     
XL_sky130_fd_sc_hd__clkbuf_4 (9)                                                  |sky130_fd_sc_hd__clkbuf_4 (9)                                                     
XL_sky130_fd_sc_hd__buf_2 (12)                                                    |sky130_fd_sc_hd__buf_2 (12)                                                       
XL_sky130_fd_sc_hd__tapvpwrvgnd_1 (27->1)                                         |sky130_fd_sc_hd__tapvpwrvgnd_1 (27->1)                                            
XL_sky130_fd_sc_hd__decap_3 (36->1)                                               |sky130_fd_sc_hd__decap_3 (36->1)                                                  
XL_sky130_fd_sc_hd__and3b_1 (7)                                                   |sky130_fd_sc_hd__and3b_1 (7)                                                      
XL_sky130_ef_sc_hd__decap_12 (17->1)                                              |sky130_ef_sc_hd__decap_12 (17->1)                                                 
XL_sky130_fd_sc_hd__decap_4 (13->1)                                               |sky130_fd_sc_hd__decap_4 (13->1)                                                  
XL_sky130_fd_sc_hd__decap_8 (14->1)                                               |sky130_fd_sc_hd__decap_8 (14->1)                                                  
XL_sky130_fd_sc_hd__a21o_1 (2)                                                    |sky130_fd_sc_hd__a21o_1 (2)                                                       
XL_sky130_fd_sc_hd__conb_1 (2)                                                    |sky130_fd_sc_hd__conb_1 (2)                                                       
XL_sky130_fd_sc_hd__o21a_1 (1)                                                    |sky130_fd_sc_hd__o21a_1 (1)                                                       
XL_sky130_fd_sc_hd__xor2_1 (3)                                                    |sky130_fd_sc_hd__xor2_1 (3)                                                       
XL_sky130_fd_sc_hd__a21oi_1 (10)                                                  |sky130_fd_sc_hd__a21oi_1 (10)                                                     
XL_sky130_fd_sc_hd__xnor2_1 (2)                                                   |sky130_fd_sc_hd__xnor2_1 (2)                                                      
XL_sky130_fd_sc_hd__nand2_1 (4)                                                   |sky130_fd_sc_hd__nand2_1 (4)                                                      
XL_sky130_fd_sc_hd__or2_1 (2)                                                     |sky130_fd_sc_hd__or2_1 (2)                                                        
XL_sky130_fd_sc_hd__buf_1 (2)                                                     |sky130_fd_sc_hd__buf_1 (2)                                                        
XL_sky130_fd_sc_hd__nor3b_1 (6)                                                   |sky130_fd_sc_hd__nor3b_1 (6)                                                      
XL_sky130_fd_sc_hd__clkbuf_1 (3)                                                  |sky130_fd_sc_hd__clkbuf_1 (3)                                                     
XL_sky130_fd_sc_hd__nor2_2 (1)                                                    |sky130_fd_sc_hd__nor2_2 (1)                                                       
XL_sky130_fd_sc_hd__clkbuf_2 (1)                                                  |sky130_fd_sc_hd__clkbuf_2 (1)                                                     
XL_sky130_fd_sc_hd__and2_1 (4)                                                    |sky130_fd_sc_hd__and2_1 (4)                                                       
XL_sky130_fd_sc_hd__a31o_1 (3)                                                    |sky130_fd_sc_hd__a31o_1 (3)                                                       
XL_sky130_fd_sc_hd__nor3_1 (2)                                                    |sky130_fd_sc_hd__nor3_1 (2)                                                       
XL_sky130_fd_sc_hd__or3b_1 (1)                                                    |sky130_fd_sc_hd__or3b_1 (1)                                                       
XL_sky130_fd_sc_hd__and2b_1 (1)                                                   |sky130_fd_sc_hd__and2b_1 (1)                                                      
XL_sky130_fd_sc_hd__dlymetal6s2s_1 (6)                                            |sky130_fd_sc_hd__dlymetal6s2s_1 (6)                                               
XL_sky130_fd_sc_hd__and4_2 (1)                                                    |sky130_fd_sc_hd__and4_2 (1)                                                       
XL_sky130_fd_sc_hd__clkbuf_16 (3)                                                 |sky130_fd_sc_hd__clkbuf_16 (3)                                                    
XL_sky130_fd_sc_hd__o31a_1 (1)                                                    |sky130_fd_sc_hd__o31a_1 (1)                                                       
XL_sky130_fd_sc_hd__dfrtp_1 (3)                                                   |sky130_fd_sc_hd__dfrtp_1 (3)                                                      
XL_sky130_fd_sc_hd__and4_1 (2)                                                    |sky130_fd_sc_hd__and4_1 (2)                                                       
XL_sky130_fd_sc_hd__a21boi_1 (1)                                                  |sky130_fd_sc_hd__a21boi_1 (1)                                                     
XL_sky130_fd_sc_hd__dlygate4sd3_1 (4)                                             |sky130_fd_sc_hd__dlygate4sd3_1 (4)                                                
XL_sky130_fd_sc_hd__a22o_1 (1)                                                    |sky130_fd_sc_hd__a22o_1 (1)                                                       
XL_sky130_fd_sc_hd__nor2_1 (1)                                                    |sky130_fd_sc_hd__nor2_1 (1)                                                       
XL_sky130_fd_sc_hd__nand2b_1 (1)                                                  |sky130_fd_sc_hd__nand2b_1 (1)                                                     
Number of devices: 129                                                            |Number of devices: 129                                                            
Number of nets: 138                                                               |Number of nets: 138                                                               
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Netlists match uniquely with port errors.

Subcircuit pins:
Circuit 1: XL_brownout_dig                                                        |Circuit 2: brownout_dig                                                           
----------------------------------------------------------------------------------|----------------------------------------------------------------------------------
osc_ck                                                                            |osc_ck                                                                            
dcomp                                                                             |dcomp                                                                             
ena                                                                               |ena                                                                               
force_ena_rc_osc                                                                  |force_ena_rc_osc                                                                  
force_dis_rc_osc                                                                  |force_dis_rc_osc                                                                  
force_short_oneshot                                                               |force_short_oneshot                                                               
brout_filt                                                                        |brout_filt                                                                        
otrip[2]                                                                          |otrip[2]                                                                          
vtrip[2]                                                                          |vtrip[2]                                                                          
otrip[1]                                                                          |otrip[1]                                                                          
vtrip[0]                                                                          |vtrip[0]                                                                          
otrip[0]                                                                          |otrip[0]                                                                          
vtrip[1]                                                                          |vtrip[1]                                                                          
otrip_decoded[1]                                                                  |otrip_decoded[1]                                                                  
otrip_decoded[2]                                                                  |otrip_decoded[2]                                                                  
otrip_decoded[4]                                                                  |otrip_decoded[4]                                                                  
otrip_decoded[0]                                                                  |otrip_decoded[0]                                                                  
osc_ena                                                                           |osc_ena                                                                           
outb_unbuf                                                                        |outb_unbuf                                                                        
otrip_decoded[7]                                                                  |otrip_decoded[7]                                                                  
otrip_decoded[3]                                                                  |otrip_decoded[3]                                                                  
otrip_decoded[5]                                                                  |otrip_decoded[5]                                                                  
otrip_decoded[6]                                                                  |otrip_decoded[6]                                                                  
timed_out                                                                         |timed_out                                                                         
vtrip_decoded[3]                                                                  |vtrip_decoded[3]                                                                  
vtrip_decoded[5]                                                                  |vtrip_decoded[5]                                                                  
vtrip_decoded[6]                                                                  |vtrip_decoded[6]                                                                  
vtrip_decoded[1]                                                                  |vtrip_decoded[1]                                                                  
vtrip_decoded[2]                                                                  |vtrip_decoded[2]                                                                  
vtrip_decoded[4]                                                                  |vtrip_decoded[4]                                                                  
vtrip_decoded[0]                                                                  |vtrip_decoded[0]                                                                  
vtrip_decoded[7]                                                                  |vtrip_decoded[7]                                                                  
VGND                                                                              |VGND                                                                              
VPWR                                                                              |VPWR                                                                              
(no matching pin)                                                                 |proxy1                                                                            
(no matching pin)                                                                 |proxy2                                                                            
(no matching pin)                                                                 |proxy3                                                                            
(no matching pin)                                                                 |proxy4                                                                            
(no matching pin)                                                                 |proxy5                                                                            
(no matching pin)                                                                 |proxy6                                                                            
(no matching pin)                                                                 |proxy7                                                                            
(no matching pin)                                                                 |proxy8                                                                            
(no matching pin)                                                                 |proxy9                                                                            
(no matching pin)                                                                 |proxy10                                                                           
(no matching pin)                                                                 |proxy11                                                                           
(no matching pin)                                                                 |proxy12                                                                           
(no matching pin)                                                                 |proxy13                                                                           
(no matching pin)                                                                 |proxy14                                                                           
(no matching pin)                                                                 |proxy15                                                                           
(no matching pin)                                                                 |proxy16                                                                           
(no matching pin)                                                                 |proxy17                                                                           
(no matching pin)                                                                 |proxy18                                                                           
(no matching pin)                                                                 |proxy19                                                                           
(no matching pin)                                                                 |proxy20                                                                           
(no matching pin)                                                                 |proxy21                                                                           
(no matching pin)                                                                 |proxy22                                                                           
(no matching pin)                                                                 |proxy23                                                                           
(no matching pin)                                                                 |proxy24                                                                           
(no matching pin)                                                                 |proxy25                                                                           
(no matching pin)                                                                 |proxy26                                                                           
(no matching pin)                                                                 |proxy27                                                                           
(no matching pin)                                                                 |proxy28                                                                           
(no matching pin)                                                                 |proxy29                                                                           
(no matching pin)                                                                 |proxy30                                                                           
(no matching pin)                                                                 |proxy31                                                                           
(no matching pin)                                                                 |proxy32                                                                           
(no matching pin)                                                                 |proxy33                                                                           
(no matching pin)                                                                 |proxy34                                                                           
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Cell pin lists are equivalent.
Device classes XL_brownout_dig and brownout_dig are equivalent.
  Flattening non-matched subcircuits XL_brownout_dig brownout_dig

The proxy pins are causing a mismatch.

The screen output also has this relevant info

Verilog placeholder module brownout_dig replaced by module definition

Subcircuit pins:
Circuit 1: _PLACEHOLDER_                   |Circuit 2: brownout_dig                    
-------------------------------------------|-------------------------------------------
(no matching pin)                          |1                                          
(no matching pin)                          |2                                          
(no matching pin)                          |3                                          
(no matching pin)                          |4                                          
(no matching pin)                          |5                                          
(no matching pin)                          |6                                          
(no matching pin)                          |7                                          
(no matching pin)                          |8                                          
(no matching pin)                          |9                                          
(no matching pin)                          |10                                         
(no matching pin)                          |11                                         
(no matching pin)                          |12                                         
(no matching pin)                          |13                                         
(no matching pin)                          |14                                         
(no matching pin)                          |15                                         
(no matching pin)                          |16                                         
(no matching pin)                          |17                                         
(no matching pin)                          |18                                         
(no matching pin)                          |19                                         
(no matching pin)                          |20                                         
(no matching pin)                          |21                                         
(no matching pin)                          |22                                         
(no matching pin)                          |23                                         
(no matching pin)                          |24                                         
(no matching pin)                          |25                                         
(no matching pin)                          |26                                         
(no matching pin)                          |27                                         
(no matching pin)                          |28                                         
(no matching pin)                          |29                                         
(no matching pin)                          |30                                         
(no matching pin)                          |31                                         
(no matching pin)                          |32                                         
(no matching pin)                          |33                                         
(no matching pin)                          |34                                         
brout_filt                                 |(no matching pin)                          
dcomp                                      |(no matching pin)                          
ena                                        |(no matching pin)                          
force_dis_rc_osc                           |(no matching pin)                          
force_ena_rc_osc                           |(no matching pin)                          
force_short_oneshot                        |(no matching pin)                          
osc_ck                                     |(no matching pin)                          
osc_ena                                    |(no matching pin)                          
outb_unbuf                                 |(no matching pin)                          
timed_out                                  |(no matching pin)                          
VPWR                                       |(no matching pin)                          
VGND                                       |(no matching pin)                          
otrip[2]                                   |(no matching pin)                          
otrip[1]                                   |(no matching pin)                          
otrip[0]                                   |(no matching pin)                          
otrip_decoded[7]                           |(no matching pin)                          
otrip_decoded[6]                           |(no matching pin)                          
otrip_decoded[5]                           |(no matching pin)                          
otrip_decoded[4]                           |(no matching pin)                          
otrip_decoded[3]                           |(no matching pin)                          
otrip_decoded[2]                           |(no matching pin)                          
otrip_decoded[1]                           |(no matching pin)                          
otrip_decoded[0]                           |(no matching pin)                          
vtrip[2]                                   |(no matching pin)                          
vtrip[1]                                   |(no matching pin)                          
vtrip[0]                                   |(no matching pin)                          
vtrip_decoded[7]                           |(no matching pin)                          
vtrip_decoded[6]                           |(no matching pin)                          
vtrip_decoded[5]                           |(no matching pin)                          
vtrip_decoded[4]                           |(no matching pin)                          
vtrip_decoded[3]                           |(no matching pin)                          
vtrip_decoded[2]                           |(no matching pin)                          
vtrip_decoded[1]                           |(no matching pin)                          
vtrip_decoded[0]                           |(no matching pin)                          
---------------------------------------------------------------------------------------

Here's a test case. test-mixed-signal.tgz

tar xzf test-mixed-signal.tgz
cd test-mixed-signal
netgen -batch source lvs.script 2>&1 | tee lvs.log
RTimothyEdwards commented 1 month ago

@d-m-bailey : This isn't a valid LVS setup. You are providing a netlist which has an instance of subcircuit "brownout_dig", for which you have pin connections but no pin names, so there's no way to determine the pin order. To that you attach a verilog module of "brownout_dig" which lists pin names but bears no relationship to the pin order of any SPICE netlist. So there's absolutely no way for netgen to determine what order the pins of "brownout_dig" are supposed to be in the SPICE netlist. You probably need an additional SPICE file with a black-box entry for the "brownout_dig" subcircuit that provides the pin names and order.

d-m-bailey commented 1 month ago

@RTimothyEdwards Thanks for checking. What is the best way to handle verilog files called from spice files? Maybe use a spice subckt stub that has the pins in the order expected by the calling instance and then override it with the verilog netlist later (keeping the original port order).

In the current setup, I have manually verified that the spice instance nets correspond to the order of the verilog pins. But as you say, there is no way to programmatically verify that this is correct.