OpenCores
URL https://opencores.org/ocsvn/pavr/pavr/trunk

Subversion Repositories pavr

[/] [pavr/] [trunk/] [doc/] [html/] [group__pavr__pipeline__int.html] - Rev 6

Compare with Previous | Blame | View Log

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Interrupts</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.2.16 -->
<center>
<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; <a class="qindex" href="pages.html">Related Pages</a> &nbsp; </center>
<hr><h1>Interrupts<br>
<small>
[<a class="el" href="group__pavr__pipeline.html">Pipeline details</a>]</small>
</h1><table border=0 cellpadding=0 cellspacing=0>
</table>
<dl compact><dt><b>
General</b><dd>
The Interrupt System can forcedly place calls into the pipeline stage s3, as a result of specific IO activity. <br>
 <br>
 </dl><dl compact><dt><b>
Implementation</b><dd>
The core of the Interrupt System is the Interrupt Manager module. It prioritizes the interrupt sources, checks if interrupts are enabled and if the pipeline is ready to process interrupts, and finally sends interrupt requests to the pipeline, together with the associated interrupt vector and other pipeline control signals. <br>
 <br>
 <div align="center">
<img src="pavr_hwres_int_01.gif" alt="pavr_hwres_int_01.gif">
</div>
<br>
 The pipeline acknowledges interrupt requests by forcing the Instruction Decoder to decode a call instruction, with the absolute jump address given by the Interrupt Manager. Next 2 instructions, that were already uselessly fetched, are flushed. <br>
 <br>
 The interrupt vectors are parameterized, and can be placed anywhere in the Program Memory. <br>
 Every interrupt has a parameterized priority. <br>
 In the present implementation, up to 32 interrupt sources are handled. <br>
 2 interrupt sources are implemented: <a class="el" href="group__pavr__hwres__iof__perif__int0.html">external interrupt 0</a> and <a class="el" href="group__pavr__hwres__iof__perif__t0.html">timer 0</a> interrupt. <br>
 <br>
 Because the Interrupt Manger shares much with the IO File, it is not built as a separate entity, but rather embedded into the IO File. The Interrupt Manager might be implemented as separate entity in a future version of pAVR. <br>
 <br>
 The interrupt latency is 5 clocks (1 clock needed by the interrupt manager and 4 clocks needed by the implicit call). <br>
 </dl><hr><address align="right"><small>Generated on Tue Dec 31 20:26:31 2002 for Pipelined AVR microcontroller by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 
width=110 height=53></a>1.2.16 </small></address>
</body>
</html>
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.