question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Failed to analyze multiport memory with RW:1 R:1

See original GitHub issue

I am having problems compiling a multiport SRAM with 1 read-write port and 1 read-only port. I am using the following config:

word_size = 2                                                                       
num_words = 16                                                                      
                                                                                    
num_rw_ports = 1                                                                    
num_r_ports = 1                                                                     
num_w_ports = 0                                                                     
                                                                                    
tech_name = "freepdk45"                                                             
nominal_corners_only = False                                                        
process_corners = ["TT"]                                                            
supply_voltages = [1.0]                                                             
temperatures = [25]                                                                 
                                                                                    
route_supplies = False                                                              
check_lvsdrc = False                                                                
                                                                                    
analytical_delay = False                                                            
                                                                                    
purge_temp = False                                                                  
                                                                                    
output_path = "."                                                                   
output_name = "sram_{0}_{1}_{2}".format(word_size, num_words, tech_name)                                                                                            

The problem is that the function parse_spice_list() is failing to parse the delay_sen1 measurement from the tmp/timing.lis file, i.e the output file from ngspice, when analysing the delays for read port 1. This is the error message in timing.lis:

Error: measure  delay_sen1  (TARG) : out of interval
.meas tran delay_sen1 trig v(clk1) val=0.5 fall=1 td=27.5n targ v(xsram_2_16_freepdk45.s_en0) val=0.5 rise=1 td=27.5n failed!

Unfortunately, the error was not caught earlier and parse_spice_list() continuously returns the string "Failed" rather than a floating-point number. This then causes the try_period() function to repeatedly fail, which in turn, forces find_min_period_one_port() into an infinite loop until a timeout occurs here.

Do you know how I can get around the problem with ngspice? Thanks!

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Comments:5 (2 by maintainers)

github_iconTop GitHub Comments

1reaction
mguthauscommented, Jul 3, 2020

@hznichol fixed this in 119bd946

1reaction
mguthauscommented, Jun 26, 2020

@hznichol can you take a look at this?

Read more comments on GitHub >

github_iconTop Results From Across the Web

University of New Hampshire Scholars' Repository
When a map, drawing or chart, etc., was part of the material being photographed the photographer followed a definite method in. "sectioning" the...
Read more >
DSP56300 Family Manual - NXP
result, an external read or write outside the 4M range could still go to the external memory. (depending on the settings of the...
Read more >
Array Synthesis in SystemC Hardware Compilation
In hardware, many multi-port memories have read-before-write behaviour, which means that a value that RTL SystemC RTL VHDL/Verilog EDIF is written does not ......
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found