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
y

Yatharth Agarwal

04/24/2023, 9:01 PM
I have been checking the accuracy of the delay function, and from the definition of the function the implementation seems to be using the timer0 in single-shot countdown mode. I wrote this code to toggle the Low GPIO chain at
1ms
void main()
{
     // Management GPIO Configuration
    reg_gpio_mode1 = 1;
    reg_gpio_mode0 = 0;
    reg_gpio_ien = 1;
    reg_gpio_oe = 1;

    // User GPIO Configuration
    set_registers();
    gpio_config_io();

    while (1)
    {
        
            reg_mprj_datal = 0x00000000; // GPIO0 - GPIO31 High
            delay(10000);        // Delay
            reg_mprj_datal = 0xffffffff; // GPIO0 - GPIO31 Low
            delay(10000);        // Delay
        
    }
}
and from observing the output on a logic analyser it seems to be really off. I have attached a screenshot of the same. Seems like an interesting issue and would love to know the reason behind this. I appreciate any insights on the same.Thanks for all the insights and help.
t

Tim Edwards

04/25/2023, 1:04 PM
The counter/timer is implemented somewhere in LiteX, so the openlane development team that integrated the LiteX VexRISC core into Caravel would need to respond to this. @Marwan Abbas?
m

Marwan Abbas

04/25/2023, 1:39 PM
@Mohamed Hosni Abdalmonem Can you please take a look at this?
y

Yatharth Agarwal

05/04/2023, 12:45 PM
Any updates or information on this? Thanks for any information on the same.