https://open-source-silicon.dev logo
Channels
aa
abcc
activity
adiabatonauts
analog-design
announce
announcements
b2aws
b2aws-tutorial
bag
basebands
beagleboard
bluetooth
board-respin
cadence-genus
cadence-innovus
cadence-spectre
cadence-virtuoso
caravan
caravel
caravel-board
chilechipmakers
chip-yard
chipignite
chipignite2206q_stanford_bringup
chisel
coalition-for-digital-environmental-sustainability
community_denmark_dtu
containers
courses
design-review
design-services
dffram
digital-design
digital-electronics-learners
discord-mods
dynamic-power-estimation
efabless
electric
events
fasoc
fault
foss-asic-tools
fossee-iitb-esim
fossee-iitb-google-sky130
fpga
funding
fuserisc
general
generative-ai-silicon-challenge
genius-vlsi
gf180
gf180mcu
hardware-beginners
help-
ieee-sscs-cac-23
ieee-sscs-dc-21q3
ieee-sscs-dc-22
ieee-sscs-dc-23
ihp-sg13g2
images
infiniband
j-core
japan-region
junk
klayout
latam_vlsi
layouteditor
lvs
lvs-analysis
magic
magical
maker-projects
maker-zone
microwatt
mpw-2-silicon
mpw-one-clean-short
mpw-one-silicon
neuro-mem
nydesign
open_pdks
open-pdk
openadiabaticlogic
openfpga
openhighqualityresonators
openlane
openlane_cloudrunner
openlane-development
openocd
openpositarithmetic
openpower
openram
openroad
opentitan
osu
pa-test-chip
paracells
pd-openlane-and-sky130
picosoc
pll
popy_neel
power
private-shuttle
rad-lab-silicon
radio
rdircd
reram
researchers
rf-mmw-design
rios
riscv
sdram
serdes
shuttle
shuttle-precheck
shuttle-status
silicon-photonics
silicon-validation
silicon-validation-private
sky130
sky130-ci
sky130-pv-workshop
sky65
sky90
skywater
sram
stdcelllib
strive
swerv
system-verilog-learners
tapeout-job
tapeout-pakistan
team-awesome
timing-closure
toysram
travis-ci
uvm-learners
vendor-synopsys
venn
verification-be
verification-fe
verilog-learners
vh2v
vhdl
vhdl-learners
vliw
vlsi_verilog_using_opensource_eda
vlsi_verilog_using_opensoure_eda
vlsi-learners-group
vlsi101
waveform-viewers
xls
xschem
xyce
zettascale
Powered by
Title
j

Juan Andres

03/11/2023, 7:40 PM
Does anyone know how I can correct my test bench to simulate a design taken from magic with a subcircuit?
l

Luis Henrique Rodovalho

03/11/2023, 8:21 PM
Where is the inverter subcircuit's spice file?
j

Juan Andres

03/11/2023, 8:21 PM
as the subcircuit is flattened, the transistors appear in the spice
l

Luis Henrique Rodovalho

03/11/2023, 8:23 PM
The subcircuit has only two terminals, VDD and GND. The other terminals aren't listed.
It seems it is a ring oscillator...
j

Juan Andres

03/11/2023, 8:24 PM
It is connected inside
Yes
l

Luis Henrique Rodovalho

03/11/2023, 8:27 PM
X0 vout1 vout3 GND GND inverter_blo
X1 vout2 vout1 GND GND inverter_blo
X2 vout3 vout2 GND GND inverter_blo
X3 vout3 vout2 VDD VDD inverter_blo
X4 vout1 vout3 VDD VDD inverter_blo
X5 vout2 vout1 VDD VDD inverter_blo
It has four terminals here in your testbench file. That is why it doesn't run.
You should use
X0 VDD GND inverter_blo
j

Juan Andres

03/11/2023, 8:28 PM
if I just call GND and VDD, which I think is what comes out of the block, it simulates but everything stays at 0, even though I initialize to 0
what could be the error?
l

Luis Henrique Rodovalho

03/11/2023, 8:29 PM
You should start any inner node with a preset voltage. Use
.ic X0.vout1 = 1
Your transient command should be:
tran 0.1n 50n 0.1n uic
j

Juan Andres

03/11/2023, 8:31 PM
what is uic?
l

Luis Henrique Rodovalho

03/11/2023, 8:31 PM
use initial condition
j

Juan Andres

03/11/2023, 8:43 PM
Yes that worked, but this command "nodeset x2.vout3=0" its same?
l

Luis Henrique Rodovalho

03/11/2023, 8:45 PM
I don't know if it works for transient simulations. It should. But it should not be set as 0, I think. nodeset and ic act different. Nodeset is too find the solution for OP and DC, but I don't know if it works as a initial condition for transient sims.
j

Juan Andres

03/11/2023, 8:46 PM
Well, I used nodeset with conditional 0, and it also works
l

Luis Henrique Rodovalho

03/11/2023, 8:48 PM
Good. Just be aware that for a real design, you must consider the width of the metal tracks, as they may not be able to handle the current.
j

Juan Andres

03/11/2023, 8:51 PM
thanks
@Luis Henrique Rodovalho Do you know how I can instantiate the block, taking into account that it has 9 outputs?
l

Luis Henrique Rodovalho

03/12/2023, 8:37 AM
it is the name of the instance, begining with x, then the names of each node at each pin, then the name of the subcircuit.