Visible to Intel only — GUID: rfn1521051248991
Ixiasoft
Visible to Intel only — GUID: rfn1521051248991
Ixiasoft
12.2. Kernel Attributes for Configuring Local and Private Memory Systems
Attribute | Description |
---|---|
register | Specifies that the local variable must be implemented in a register. |
memory | Specifies that the local variable must be implemented in a memory system. Including the memory kernel attribute is equivalent to declaring the local variable with the __local qualifier. |
numbanks(N) N is an integer value. |
Specifies that the memory system implementing the local variable must have N banks, where N is a power-of-2 integer value greater than zero. |
bankwidth(N) N is an integer value. |
Specifies that the memory system implementing the local variable must have banks that are N bytes wide, where N is a power-of-2 integer value greater than zero. |
singlepump | Specifies that the memory system implementing the local variable must be single pumped. |
doublepump | Specifies that the memory system implementing the local variable must be double pumped. |
numreadports(N) N is an integer value. |
Specifies that the memory system implementing the local variable must have N read ports, where N is an integer value greater than zero. |
numwriteports(N) N is an integer value. |
Specifies that the memory system implementing the local variable must have N write ports, where N is an integer value greater than zero. |
merge("label", "direction") | Forces two or more variables to be implemented in the same memory system. label is an arbitrary string. Assign the same label to all variables that you want to merge. Specify direction as either width or depth to identify whether the memories should be merged width-wise or depth-wise, respectively. |
bank_bits(b 0 , b 1 , ..., b n ) | Forces the memory system to split into 2n banks, with {b 0 , b 1 , ..., b n } forming the bank-select bits.
Important: b 0 , b 1 , ..., b n must be consecutive, positive integers.
If you specify the numbanks(n) attribute without the bank_bits attribute, the bank-select bits default to the least significant bits (that is, 0, 1, ..., log2(numbanks)-1). |
Example Use Case | Syntax |
---|---|
Implements a variable in a register | |
Implements a memory system with eight banks, each with a width of 8 bytes | |
Implements a double-pumped memory system with one 128-byte wide bank, one write port, and four read ports | |