Skip to content

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

@d-m-bailey

Description

@d-m-bailey

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions