Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
language:introduction [2022/05/13 08:27] rajit |
language:introduction [2022/05/13 08:31] (current) rajit |
||
---|---|---|---|
Line 98: | Line 98: | ||
consider the following definition of '' | consider the following definition of '' | ||
- | < | + | < |
defproc bitbucket(a1of2 d) | defproc bitbucket(a1of2 d) | ||
{ | { | ||
Line 114: | Line 114: | ||
result in the following message: | result in the following message: | ||
- | < | + | < |
bitbucket b; | bitbucket b; | ||
a1of2 c; | a1of2 c; | ||
b.p = c.d0; | b.p = c.d0; | ||
+ | </ | ||
+ | < | ||
-[ERROR]-> | -[ERROR]-> | ||
</ | </ | ||
Line 143: | Line 145: | ||
circuits. The simplest way to create an array is shown below. | circuits. The simplest way to create an array is shown below. | ||
- | < | + | < |
bool x[10]; | bool x[10]; | ||
a1of2 y[5][3]; | a1of2 y[5][3]; | ||
Line 155: | Line 157: | ||
be specified as shown below | be specified as shown below | ||
- | < | + | < |
bool w[4..7]; // create Booleans w[4], ..., w[7] | bool w[4..7]; // create Booleans w[4], ..., w[7] | ||
</ | </ | ||
Line 164: | Line 166: | ||
block. Consider the following instantiation: | block. Consider the following instantiation: | ||
- | < | + | < |
bool x[10]; | bool x[10]; | ||
bool x[12..14]; | bool x[12..14]; | ||
Line 174: | Line 176: | ||
following, on the other hand, is not valid. | following, on the other hand, is not valid. | ||
- | < | + | < |
bool x[10]; | bool x[10]; | ||
bool x[9..14]; | bool x[9..14]; | ||
Line 191: | Line 193: | ||
below. | below. | ||
- | < | + | < |
bool x[10]; | bool x[10]; | ||
bool x[12..14]; | bool x[12..14]; | ||
Line 205: | Line 207: | ||
succeed, and their shapes also have to be compatible. | succeed, and their shapes also have to be compatible. | ||
- | < | + | < |
bool x[12]; | bool x[12]; | ||
bool w[4][3]; | bool w[4][3]; | ||
x=w; | x=w; | ||
+ | </ | ||
+ | < | ||
-[ERROR]-> | -[ERROR]-> | ||
Types `bool[12]' | Types `bool[12]' | ||
Line 215: | Line 219: | ||
The following are examples of valid connections: | The following are examples of valid connections: | ||
- | < | + | < |
bool x[10]; | bool x[10]; | ||
bool x[10..12]; | bool x[10..12]; | ||
Line 235: | Line 239: | ||
carry chain for a ten bit ripple-carry adder. | carry chain for a ten bit ripple-carry adder. | ||
- | < | + | < |
fulladder fa[10]; | fulladder fa[10]; | ||
(i : 9 : fa[i].co=fa[i+1].ci; | (i : 9 : fa[i].co=fa[i+1].ci; | ||
Line 253: | Line 257: | ||
indices are connected to '' | indices are connected to '' | ||
- | < | + | < |
bool x[10], y[10], z[10]; | bool x[10], y[10], z[10]; | ||
Line 284: | Line 288: | ||
instance, ACT files will tend to begin with | instance, ACT files will tend to begin with | ||
- | < | + | < |
bool Reset, | bool Reset, | ||
</ | </ | ||
Line 306: | Line 310: | ||
within the namespace. | within the namespace. | ||
- | < | + | < |
namespace lib { | namespace lib { | ||
export defchan a1of2 <: chan(bool) (bool d0,d1,a) { ... } | export defchan a1of2 <: chan(bool) (bool d0,d1,a) { ... } | ||
Line 329: | Line 333: | ||
Namespaces can be nested. For instance, we could have: | Namespaces can be nested. For instance, we could have: | ||
- | < | + | < |
namespace processor { | namespace processor { | ||
namespace lib { | namespace lib { | ||
- | | + | |
} | } | ||
Line 347: | Line 351: | ||
'' | '' | ||
- | < | + | < |
namespace processor { | namespace processor { | ||
namespace lib { | namespace lib { | ||
- | | + | |
} | } | ||
Line 357: | Line 361: | ||
processor:: | processor:: | ||
+ | </ | ||
+ | < | ||
-[ERROR]-> | -[ERROR]-> | ||
| | ||
Line 365: | Line 371: | ||
exporting the namespace itself. | exporting the namespace itself. | ||
- | < | + | < |
namespace processor { | namespace processor { | ||
export namespace lib { | export namespace lib { | ||
- | | + | |
} | } | ||
Line 404: | Line 410: | ||
'' | '' | ||
- | < | + | < |
import " | import " | ||
... | ... | ||
Line 426: | Line 432: | ||
the namespaces, and could create naming conflicts (e.g. multiple | the namespaces, and could create naming conflicts (e.g. multiple | ||
definition of types having the same name---an error). To solve this | definition of types having the same name---an error). To solve this | ||
- | problem, one can do the following: | + | problem, one can do the following: |
- | < | + | < |
import " | import " | ||
open lib -> lib1; | open lib -> lib1; | ||
Line 448: | Line 454: | ||
because not all types might be exported! In this case we can say: | because not all types might be exported! In this case we can say: | ||
- | < | + | < |
import " | import " | ||
open processor:: | open processor:: | ||
Line 469: | Line 475: | ||
hierarchy. The import statement | hierarchy. The import statement | ||
- | < | + | < |
import processor:: | import processor:: | ||
</ | </ | ||
Line 475: | Line 481: | ||
is equivalent to the following: | is equivalent to the following: | ||
- | < | + | < |
import " | import " | ||
</ | </ |