blob: 99d3cf9de61afb94cc44075e9168cb525e89fbcc [file] [log] [blame]
<!---
# SPDX-FileCopyrightText: 2020 Efabless Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# SPDX-License-Identifier: Apache-2.0
-->
------------------------------------------------
Caravel
irq testbench
------------------------------------------------
This testbench demonstrates how to use the interrupts on the
picoRV32. It uses the internal picoRV32 counter to set up an
interval timer. At each timer expiration, an interrupt is
generated, and the assembler code in start.S runs and captures
data from a routine emulating a Digilent PMOD MIC-3 microphone
module. Data are accumulated in a ring buffer reserved in the
top of memory. The main loop of the program queries the
current ring buffer position, reads the data there, and
displays the value on the GPIO (upper 16 of the lower 32 GPIO
channels).