VHDL之concurrent之operators

 

Using operators

  Operators can be used to implement any combinational circuit. However, as will become apparent later, complex circuits are usually easier to write using sequential code, even if the circuit does not contain sequential logic.

  VHDL之concurrent之operators

 

Example  Multiplexer  

  VHDL之concurrent之operators

 1 ---------------------------------------

 2 LIBRARY ieee;

 3 USE ieee.std_logic_1164.all;

 4 ---------------------------------------

 5 ENTITY mux IS

 6 PORT ( a, b, c, d, s0, s1: IN STD_LOGIC;

 7     y: OUT STD_LOGIC);

 8 END mux;

 9 ---------------------------------------

10  ARCHITECTURE pure_logic OF mux IS

11  BEGIN

12   y <= (a AND NOT s1 AND NOT s0) OR

13      (b AND NOT s1 AND s0) OR

14      (c AND s1 AND NOT s0) OR

15      (d AND s1 AND s0);

16  END pure_logic;

17  ---------------------------------------

 

Miscellaneous operators

    **    Exponentiation

    abs      Absolute value

  The exponentiation operator has two operands. This operator is defined for any integer or floating point number. The right operand (exponent) must be of integer type. When the exponent is the positive integer, then the left operand is repeatedly multiplied by itself. When the exponent is the negative number, then the result is a reverse of exponentiation with the exponent equal to the absolute value of the right operand. If the exponent is equal to 0 the result will be 1.

  The abs operator has only one operand. It allows defining the operand's absolute value. The result is of the same type as the operand.

2 ** 8 = 256

3.8 ** 3 = 54.872

4 ** (-2) = 1 / (4**2) = 0.0625

 

你可能感兴趣的:(Concurrent)