beautypg.com

Specifying flow control, Array subscript operator, Array subscript operator –26 – Altera Nios II C2H Compiler User Manual

Page 66

background image

3–26

9.1

Altera Corporation

Nios II C2H Compiler User Guide

November 2009

Memory Accesses

Example 3–17

connects the variable

x

in function

myfunc

to the memory

module named

sdram

with an arbitration share of 16.

Example 3–17. Pragma Specifying Arbitration Share

#pragma altera_accelerate connect_variable myfunc/x to sdram \
arbitration_share 16

Specifying Flow Control
Avalon-MM transfers with flow control force a master port to obey flow
control signals controlled by a slave port. For example, a slave FIFO might
assert flow control signals to prevent write transfers when the FIFO
memory is full. The C2H Compiler provides a flow control pragma which
enables flow control for all master ports related to a specific pointer
variable.

The flow control pragma is defined as follows:

#pragma altera_accelerate \
enable_flow_control_for_pointer \
<

function name

>/<

variable name

>

The flow control pragma must be placed in the same file as the function
to be accelerated, but outside the function. <function name> and
<variable name> are the exact names of the accelerated function and the
pointer variable.

f

For details about Avalon-MM flow control, refer to the

Avalon Memory-

Mapped Interface Specification

.

Array Subscript Operator

The C2H Compiler converts array subscript operations to equivalent
pointer dereferences, and then translates the pointer dereferences to
hardware. An array is a pointer with abstractions of length and
dimension. The value of an array type is defined to be a pointer to its first
element. The C language specification defines the array subscript
operator as follows:

The definition of the subscript operator

[]

is that

E1[E2]

is identical to

(*((E1)+(E2)))

.

By this definition, any array subscripting (indexing) operation can be
expressed in terms of an indirection (pointer dereference) operation.