Hello. Can somebody help me find spice models for ...
# analog-design
a
Hello. Can somebody help me find spice models for gpiov2? I need them to run a simulation to see how do they behave under high speeds. If they do bad at 100MHz then will I be able to connect some logic to analog pads and get faster speeds?
t
They are in the open_pdks repository.
a
Thanks a lot! I was looking in skywater pdks and could not find it there. Thought that open_pdks didn't contain any cells. I was wrong. Thanks again!
I run the simulation with .include to "pdk_root/open_pdks/sky130/custom/sky130_fd_io/spice/sky130_fd_io.spice" and .lib to "pdk_root/sky130A/libs.tech/ngspice/sky130.lib.spice" But it complains about : Original line no.: 0, new internal line no.: 16390: Undefined number [mc_mm_switch] It seems this cells need to be installed, but after installation they simply don't exist in sky130.tech/refs folders. Am I doing something wrong?
Should I just extract the spice from magic file instead?
Nevermind, I set the .param mc_mm_switch=0 and now it works
Results: By connecting data to GPIOv2's OUT , VDDIO=2, capacito=7pf I got terrible results under 100MHz. May be I can get 1.8 only interface by directly connecting to analog pins?
Vddio=1.8*
t
What version of open_pdks are you using? Setting the mc_mm_switch parameter should no longer be necessary.
Maybe you can tell me what are all the connections you have to gpiov2, which is quite complicated.
a
I will try updating. Thanks for suggestion, totally forgot about versions
Again bigger problem is to get 100MHz GPIO working. Looks like it's possible for 1.8V if I can connect to PAD_A_ESD_0_H (something like that)
t
The GPIO pads are rated to 60MHz. Using pad_a_esd_0/1 is just a way of running an analog signal through the GPIO pad, bypassing all of the digital. You would not want to use the GPIO pad for high-speed circuits. The analog pads on the caravan chip are the ones to use. You should be able to get about a 5GHz bandwidth, in theory. In practice, you would want to add ESD circuitry to the pad, but then you can control the amount of ESD protection to keep it from cutting into your bandwidth budget.
a
Yeah I was thinking that too, but looks I couldn't figure out which ESD cells to connect to the pads. Also: I am unable to build open_pdks latest version. WIll give details in a moment
Caravel make pdk builds in a couple of seconds, but it's broken and results into a lot of No such file or directory errors. When building with openlane it works?
Checking that rn
So it is looking for _hd stdcells and I am using _hs std cells. Its fine. I will change it in config.tcl and see if it works. (it should be fine)
It is not fine. Current issue: child process exited abnormally while executing "exec grep "#Antenna violations:" [index_file $::env(fastroute_log_file_tag).log 0] -s | tail -1 | sed -r "s/.*\[^0-9\]//"" (procedure "global_routing_fastroute" line 16) invoked from within "global_routing_fastroute" (procedure "global_routing" line 10) invoked from within "global_routing" (procedure "run_routing" line 27) invoked from within "run_routing" (procedure "run_non_interactive_mode" line 19) invoked from within "run_non_interactive_mode {*}$argv" invoked from within "if { [info exists flags_map(-interactive)] || [info exists flags_map(-it)] } { puts_info "Running interactively" if { [info exists arg_values(-file)..." (file "./flow.tcl" line 223)
The "exec grep "#Antenna violations:" [index_file $::env(fastroute_log_file_tag).log 0] -s | tail -1 | sed -r "s/.*\[^0-9\]//"" crashes
How to fix that?
t
That's a question for the #openlane channel. Some people have managed to use the HS library, but there are specific settings needed; I don't know if what you changed in config.tcl is sufficient.
a
I posted there and the issue has been resolved. Thanks!