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
m

Matthew Guthaus

02/08/2023, 9:57 PM
My GPIOs are testing/characterizing now. My last problem: The JP6 jumper on the nucleo board was mashing into the spring pins of the nucleo hat board from the bottom. This was short circuiting a few signals (like gnd and CARAVEL_CSB) and causing problems. Solution: Put the hat board on but only halfway. If you don't put it on enough, you will get a Winbond SRAM not found error, if you put it too far it shorts out the pins. First try:
===================================================================
== LOW chain FAILED.   Valid IO = 0 thru 00.                      ==
== HIGH chain PASSED.  Valid IO = 19 thru 37.                     ==
===================================================================
t

Tim Edwards

02/08/2023, 10:06 PM
FYI, once you've got it running the configuration, if it's not passing, the two best things to do are (1) try other chips, and (2) try a lower voltage (down to about 1.43V; lower voltages tend to stabilize hold violations that are on the boundary) (
make run PART=xyz VOLTAGE=1.43
).
m

Matthew Guthaus

02/08/2023, 10:06 PM
Thanks. I was just going to try another chip, but I'll try the voltages first.
t

Tim Edwards

02/08/2023, 10:09 PM
Obviously if you're trying to characterize SRAM, you don't want to be limited to running at 1.43V; but you would only need the lower voltage right after reset to make sure the board conditions match the calibration. After that, you can set the voltage to whatever you want to using the Micropython routines on the Nucleo.
m

Matthew Guthaus

02/08/2023, 10:09 PM
Another great suggestion. Thank you.
Has anyone written anything that sweeps vdd yet?
t

Tim Edwards

02/08/2023, 10:23 PM
The openlane team did, which is how we landed on the current default value of 1.6V (which is also what the on-board LDO is set to on the caravel development board, if you switch the supply headers from "HAT" to "MAIN"). More chips could be tested at 1.6V than any other. But that was early work and I don't know if it applies any more. Anecdotally, I've found that generally, lower voltages work better, which makes sense, as lower voltages make the circuits run slower, which trends in the direction that resolves hold violations. Somewhere below about 1.43V, everything stops working.
m

Matthew Guthaus

02/08/2023, 10:24 PM
So maybe a bisect search between 1.4 and 1.6 🙂
I'm seeing a lot more of the LO chain pass at 1.45
In fact, LO chain passes.
🎉 1
Is there help somewhere on the Micropython routines available?
t

Tim Edwards

02/08/2023, 10:28 PM
Most of the scripts were written by @Marwan Abbas, but I've been regularly running
mpremote
and figuring out how to run the routines manually, so I can help.
The essential commands are in
io_config.py
and
nucleo_api.py
. What I do is, e.g.:
mpremote
from io_config import *
test = Test()
test.voltage = 1.8
test.powerup_sequence()
test.turn_off_devices()
The
mpremote
is from the Linux command line, and the rest is from the Micropython prompt.
👍 1
Dio()
is also a useful command for configuring individual pins:
my_pin = Dio("IO_3", True)
my_pin.set_state(False)
my_pin.get_value()
p

Philipp Gühring

02/08/2023, 10:47 PM
@Matthew Guthaus I would suggest to add retrying the GPIOs several times when you implement sweeping, since I am afraid that you will get lots of noise when you try the GPIOs just once per voltage step.
👍 1
m

Matthew Guthaus

02/08/2023, 10:48 PM
@Philipp Gühring I bet we could heat it up too actually... Kinda joking. 🙂
p

Philipp Gühring

02/08/2023, 10:48 PM
At least please please log the temperature of your tests, so that you can compare later.
m

Matthew Guthaus

02/08/2023, 10:51 PM
Is there a temp sensor on the nucleo board? I actually don't know what it is in this room
p

Philipp Gühring

02/08/2023, 10:51 PM
I was also thinking about doing temperature sweeping, but my hot-air station unfortunately only allows to define the temperature between 100°C and 500°C, not below 100°C, and it also does not allow to configure it by software yet.
g

gatecat

02/09/2023, 6:13 AM
On the subject of voltages, if we made a custom board for the rest of the chips, is there any problem forseen with running the caravel domain at 1.5V/1.6V and the user domain at 1.8V, assuming we have no unmitigatable hold violations in the user project?
t

Tim Edwards

02/09/2023, 3:19 PM
@gatecat: No, there should be no issues running Caravel at a lower voltage than the user project.