# VHDL Questions and Answers – Function Kind Attributes

«
»

This set of VHDL Multiple Choice Questions & Answers (MCQs) focuses on “Function Kind Attributes”.

1. Which of the following is returned by the function kind attributes?
a) Value
b) Function
c) Signal
d) Array

Explanation: Function attributes return values to the designer about the types, arrays or signals used. The name doesn’t tell that the attribute will return some function. It returns the information related to the function.

2. You are given with the position number of a value within a type, which attribute will you use to find its value?
a) ‘POS(value)
b) ‘VAL(value)
c) ‘POSITION(value)
d) ‘VALUE(value)

Explanation: The ‘value’ specified as an argument to the attribute specifies the position number and there are only two attributes which are predefined in the VHDL among the four options given. In which ‘VAL(value) attribute is used to return the value from position number specified.

3. A value from a type is passed as an argument to the attribute to find its position number. Which attribute it should be?
a) ‘SUCC(value)
b) ‘PRED(value)
c) ‘VAL(value)
d) ‘POS(value)

Explanation: ‘POS(value) is an attribute used to return the position value within a type if the value is known. For example, if a value 63is defined on the first number and we write ‘POS(63), the value returned will be 1.

4. What is the function of ‘SUCC(value) attribute?
a) To return the value next to the value passed in argument of the attribute
b) To return the value previous to the value passed in argument of the attribute
c) To return the position of value next to the value passed in argument
d) To return the position of value next to the value passed in argument

Explanation: The attribute ‘SUCC(value) is used to return the next value defined in the type. The value written in the argument of the attribute will be taken as the reference and the next value from that is returned.

5. Which of the following describes the function of ‘PRED(value)?
a) To return the position of value next to the value passed in argument
b) To return the value next to the value passed in argument of the attribute
c) To return the value previous to the value passed in the argument
d) To return the position of value next to the value passed in argument

Explanation: ‘PRED(value) attribute is used to return the previous value to the value passed in argument. Here, PRED is a representation for preceding value. There is no attribute for returning the position of previous to the value passed as an argument.

6. Which of the following is equivalent to the ‘SUCC(value) attribute?
a) ‘PRED(value)
b) ‘LEFTOF(value)
c) ‘RIGHTOF(value)
d) ‘LEFT(value)

Explanation: ‘SUCC(value) attribute returns the value next to the value in the argument. Similarly, ‘RIGHTOF(value) returns the value in the type right to the value passed as a parameter to the attribute. Therefore, both are similar.

7. Which of the following is similar to ‘PRED(value) attribute?
a) ‘LEFTOF(value)
b) ‘RIGHTOF(value)
c) ‘RIGHT(value)
d) ‘LEFT(value)

Explanation: The value previous to the argument value is returned by the ‘PRED attribute. The same is done by ‘LEFTOF, it returns the value left to the argument which means the same as that of ‘PRED. However, LEFT is a value kind attribute used to return the leftmost value.

8. What would be the value of x and y in the example given below?

```TYPE color IS (red, yellow, green, blue, purple, orange)
VARIABLE x,y : color;
x := color’SUCC(green);
y := color’VAL(4)```

a) blue, green
b) blue, blue
c) 4, blue
d) blue, 4

Explanation: Since ‘SUCC attribute returns the succeeding value of the argument. In the argument, value green is used so the succeeding value is blue. Therefore, x will be blue. Also, ‘VAL will return the value at 4th position which is blue.

9. What would be the value of x and y?

```TYPE color IS (red, green, blue, yellow, purple, orange, black)
VARIABLE x : INTEGER;
VARIABLE y : color;
x &lt;= color'POS(green);
y &lt;= color'LEFTOF(green);```

a) red, green
b) green, red
c) red, 2
d) 2, red

Explanation: Since x is an integer type and is assigned the value returned by ‘POS attribute. The value returned will be the position of green value which is 2. Another variable y can take any value within type color. The value in the left of green is red.

10. Identify the value of variable x from the lines given below.

```SUBTYPE delay_time IS TIME RANGE 10 ns to 50 ns;
VARIABLE x := delay_time'BASE```

a) ns
b) time
c) 10 ns
d) 50 ns 