mirror of https://github.com/efabless/caravel.git
e9f023f9fa
* added PDK_VARIENT variable * changed variable name to PDK * resolve issue Co-authored-by: Marwan Abbas <marwan@ciic.c.catx-ext-efabless.internal> |
||
---|---|---|
.. | ||
Makefile | ||
README | ||
custom_ops.S | ||
irq.c | ||
irq_tb.v | ||
sections.lds | ||
start.S |
README
<!--- # 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).