<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--Rendered using the Haskell Html Library v0.2--> <HTML ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE >ForSyDe.Shallow.Memory</TITLE ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css" ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript" ></SCRIPT ><SCRIPT TYPE="text/javascript" >window.onload = function () {setSynopsis("mini_ForSyDe-Shallow-Memory.html")};</SCRIPT ></HEAD ><BODY ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topbar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title" >ForSyDe-3.1.1: ForSyDe's Haskell-embedded Domain Specific Language.</TD ><TD CLASS="topbut" ><A HREF="src/ForSyDe-Shallow-Memory.html" >Source code</A ></TD ><TD CLASS="topbut" ><A HREF="index.html" >Contents</A ></TD ><TD CLASS="topbut" ><A HREF="doc-index.html" >Index</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="modulebar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><FONT SIZE="6" >ForSyDe.Shallow.Memory</FONT ></TD ><TD ALIGN="right" ><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="infohead" >Portability</TD ><TD CLASS="infoval" >portable</TD ></TR ><TR ><TD CLASS="infohead" >Stability</TD ><TD CLASS="infoval" >experimental</TD ></TR ><TR ><TD CLASS="infohead" >Maintainer</TD ><TD CLASS="infoval" >forsyde-dev@ict.kth.se</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Description</TD ></TR ><TR ><TD CLASS="doc" >This module contains the data structure and access functions for the memory model. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Synopsis</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AMemory" >Memory</A > a = <A HREF="#v%3AMem" >Mem</A > <A HREF="ForSyDe-Shallow-Memory.html#t%3AAdr" >Adr</A > (<A HREF="ForSyDe-Shallow-Vector.html#t%3AVector" >Vector</A > (<A HREF="ForSyDe-Shallow-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a))</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AAccess" >Access</A > a </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3ARead" >Read</A > <A HREF="ForSyDe-Shallow-Memory.html#t%3AAdr" >Adr</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AWrite" >Write</A > <A HREF="ForSyDe-Shallow-Memory.html#t%3AAdr" >Adr</A > a</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3AMemSize" >MemSize</A > = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3AAdr" >Adr</A > = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnewMem" >newMem</A > :: <A HREF="ForSyDe-Shallow-Memory.html#t%3AMemSize" >MemSize</A > -> <A HREF="ForSyDe-Shallow-Memory.html#t%3AMemory" >Memory</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmemState" >memState</A > :: <A HREF="ForSyDe-Shallow-Memory.html#t%3AMemory" >Memory</A > a -> <A HREF="ForSyDe-Shallow-Memory.html#t%3AAccess" >Access</A > a -> <A HREF="ForSyDe-Shallow-Memory.html#t%3AMemory" >Memory</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmemOutput" >memOutput</A > :: <A HREF="ForSyDe-Shallow-Memory.html#t%3AMemory" >Memory</A > a -> <A HREF="ForSyDe-Shallow-Memory.html#t%3AAccess" >Access</A > a -> <A HREF="ForSyDe-Shallow-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a</TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Documentation</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:Memory" ><A NAME="t%3AMemory" ></A ></A ><B >Memory</B > a </TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-Memory.html#Memory" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >The data type <TT ><A HREF="ForSyDe-Shallow-Memory.html#t%3AMemory" >Memory</A ></TT > is modeled as a vector. </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:Mem" ><A NAME="v%3AMem" ></A ></A ><B >Mem</B > <A HREF="ForSyDe-Shallow-Memory.html#t%3AAdr" >Adr</A > (<A HREF="ForSyDe-Shallow-Vector.html#t%3AVector" >Vector</A > (<A HREF="ForSyDe-Shallow-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a))</TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Memory')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:Memory" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > (<A HREF="ForSyDe-Shallow-Memory.html#t%3AMemory" >Memory</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow" >Show</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow" >Show</A > (<A HREF="ForSyDe-Shallow-Memory.html#t%3AMemory" >Memory</A > a)</TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:Access" ><A NAME="t%3AAccess" ></A ></A ><B >Access</B > a </TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-Memory.html#Access" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >The data type <TT ><A HREF="ForSyDe-Shallow-Memory.html#t%3AAccess" >Access</A ></TT > defines two access patterns. </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:Read" ><A NAME="v%3ARead" ></A ></A ><B >Read</B > <A HREF="ForSyDe-Shallow-Memory.html#t%3AAdr" >Adr</A ></TD ><TD CLASS="rdoc" >'Read adr' reads an address from the memory. </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:Write" ><A NAME="v%3AWrite" ></A ></A ><B >Write</B > <A HREF="ForSyDe-Shallow-Memory.html#t%3AAdr" >Adr</A > a</TD ><TD CLASS="rdoc" >'Write Adr a' writes a value into an address. </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Access')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:Access" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > (<A HREF="ForSyDe-Shallow-Memory.html#t%3AAccess" >Access</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow" >Show</A > a => <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow" >Show</A > (<A HREF="ForSyDe-Shallow-Memory.html#t%3AAccess" >Access</A > a)</TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:MemSize" ><A NAME="t%3AMemSize" ></A ></A ><B >MemSize</B > = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-Memory.html#MemSize" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:Adr" ><A NAME="t%3AAdr" ></A ></A ><B >Adr</B > = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-Memory.html#Adr" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:newMem" ><A NAME="v%3AnewMem" ></A ></A ><B >newMem</B > :: <A HREF="ForSyDe-Shallow-Memory.html#t%3AMemSize" >MemSize</A > -> <A HREF="ForSyDe-Shallow-Memory.html#t%3AMemory" >Memory</A > a</TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-Memory.html#newMem" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The function <TT ><A HREF="ForSyDe-Shallow-Memory.html#v%3AnewMem" >newMem</A ></TT > creates a new memory, where the number of entries is given by a parameter. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:memState" ><A NAME="v%3AmemState" ></A ></A ><B >memState</B > :: <A HREF="ForSyDe-Shallow-Memory.html#t%3AMemory" >Memory</A > a -> <A HREF="ForSyDe-Shallow-Memory.html#t%3AAccess" >Access</A > a -> <A HREF="ForSyDe-Shallow-Memory.html#t%3AMemory" >Memory</A > a</TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-Memory.html#memState" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The function <TT ><A HREF="ForSyDe-Shallow-Memory.html#v%3AmemState" >memState</A ></TT > gives the new state of the memory, after an access to a memory. A <TT ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead" >Read</A ></TT > operation leaves the memory unchanged. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:memOutput" ><A NAME="v%3AmemOutput" ></A ></A ><B >memOutput</B > :: <A HREF="ForSyDe-Shallow-Memory.html#t%3AMemory" >Memory</A > a -> <A HREF="ForSyDe-Shallow-Memory.html#t%3AAccess" >Access</A > a -> <A HREF="ForSyDe-Shallow-AbsentExt.html#t%3AAbstExt" >AbstExt</A > a</TD ><TD CLASS="declbut" ><A HREF="src/ForSyDe-Shallow-Memory.html#memOutput" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The function <TT ><A HREF="ForSyDe-Shallow-Memory.html#v%3AmemOutput" >memOutput</A ></TT > gives the output of the memory after an access to the memory. A <TT ><A HREF="ForSyDe-Shallow-Memory.html#v%3AWrite" >Write</A ></TT > operation gives an absent value as output. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="botbar" >Produced by <A HREF="http://www.haskell.org/haddock/" >Haddock</A > version 2.6.1</TD ></TR ></TABLE ></BODY ></HTML >