Operators Assignment Operators Logical Operators Relational Operators Shift

  • Slides: 26
Download presentation
Operators • • Assignment Operators Logical Operators Relational Operators Shift Operators Adding Operators Multiplying

Operators • • Assignment Operators Logical Operators Relational Operators Shift Operators Adding Operators Multiplying Operators Miscellaneous Operators 6/5/2021 DSD, USIT, GGSIPU 1

Assignment Operators • Used to assign values to signals, variables and constants. <= Used

Assignment Operators • Used to assign values to signals, variables and constants. <= Used to assign a value to a Signal : = Used to assign a value to a variable, constant, or Generic Must be the same size and type => Used to assign values to individual vector elements or with OTHERS. 6/5/2021 DSD, USIT, GGSIPU 2

Logical Operators • The seven Logical Operators – AND – OR – NAND are

Logical Operators • The seven Logical Operators – AND – OR – NAND are not associative – NOR are not associative – XOR – XNOR – NOT ; highest precedence over the others 6/5/2021 DSD, USIT, GGSIPU 3

Relational Operator • • = Equality /= inequality < <= > >= Must be

Relational Operator • • = Equality /= inequality < <= > >= Must be one-dimensional discrete array of the same type. 6/5/2021 DSD, USIT, GGSIPU 4

Shift Operators • • • Sll Srl Sla Sra Rol Ror 6/5/2021 Shift left

Shift Operators • • • Sll Srl Sla Sra Rol Ror 6/5/2021 Shift left logical Shift right logical Shift left arithmetic Shift right arithmetic Rotate left Rotate Right DSD, USIT, GGSIPU 5

 • A = 10101100 • B <= rol a, -2; • B =

• A = 10101100 • B <= rol a, -2; • B = 10110011 • B <= 00111011 • B <= sla a, 3 b <= 01100000 • B<= sra a, 2 b <= 11101011 • RLC : Rotate Left with carry • RRC : Rotate Right with carry • Carry : 1 B <= Rlc a, 2 B <= 10110011 carry : 0 6/5/2021 DSD, USIT, GGSIPU 6

Adding Operators • + • • & • • • addition subtraction Concatenation Example:

Adding Operators • + • • & • • • addition subtraction Concatenation Example: A = 1010 B = 1000 C <= a & b; c = 10101000 C <= b & a; c : = 10001010 6/5/2021 DSD, USIT, GGSIPU 7

Multiplying Operators • • * / Mod Rem 6/5/2021 Multiplication Division modulus Remainder DSD,

Multiplying Operators • • * / Mod Rem 6/5/2021 Multiplication Division modulus Remainder DSD, USIT, GGSIPU 8

Miscellaneous Operators • Abs • ** • Not 6/5/2021 Absolute Exponentiation negation DSD, USIT,

Miscellaneous Operators • Abs • ** • Not 6/5/2021 Absolute Exponentiation negation DSD, USIT, GGSIPU 9

Attributes • An attributes is a value, function, type, range, signal or a constant

Attributes • An attributes is a value, function, type, range, signal or a constant that may be associated with one or more names within a VHDL description. – Two types of attributes • User defined attributes • Predefined attributes 6/5/2021 DSD, USIT, GGSIPU 10

Classes of attributes 1. Value attributes 2. Function attributes : Return a constant value

Classes of attributes 1. Value attributes 2. Function attributes : Return a constant value : Call a function that return a value 3. Signal Attributes 4. Type Attributes 5. Range attributes : Creates a new implicit signal : Return a type : Returns a range To use a attribute the “’” (apostrophe) construct must be employed 6/5/2021 DSD, USIT, GGSIPU 11

Type Attributes • T’Base Returns the base type of datatype it is attached to

Type Attributes • T’Base Returns the base type of datatype it is attached to example: Natural’base returns integer • T’Left Returns left value specified in type declaration Example: Integer’Left is – 2147483647 Bit’left is ‘ 0’ 6/5/2021 DSD, USIT, GGSIPU 12

 • T’right Returns right value specified in type declaration Example: Integer’right is 2147483647

• T’right Returns right value specified in type declaration Example: Integer’right is 2147483647 bit’right is ‘ 1’ • T’high Returns largest value specified in declaration Example: Type bit 8 is 255 downto 0 bit 8’high is 255 6/5/2021 DSD, USIT, GGSIPU 13

 • T’low Returns smallest value specified in declaration Example: Type bit 8 is

• T’low Returns smallest value specified in declaration Example: Type bit 8 is 255 downto 0; bit 8’low is 0; • T’pos(x) Returns position number of argument in type (first position is 0) Example: Type color is (red, green, blue, orange); color’pos(green) is 1; 6/5/2021 DSD, USIT, GGSIPU 14

 • T’val(x) Returns value in type at specified position number Example: Type color

• T’val(x) Returns value in type at specified position number Example: Type color is (red, green, blue, orange); color’val(3) is orange; • T’succ(x) Returns the successor to the value passed in Example: Type color is (red, green, blue, orange); color’succ(green) is blue; 6/5/2021 DSD, USIT, GGSIPU 15

 • T’pred(x) Returns the predecessor to the value passed in Example: Type color

• T’pred(x) Returns the predecessor to the value passed in Example: Type color is (red, green, blue, orange); color’pred(blue) is green; • T’leftof(x) Returns the value to the left of the value passed in Example: Type color is (red, green, blue, orange); color’leftof(blue) is green 6/5/2021 DSD, USIT, GGSIPU 16

 • T’rightof(x) Returns the value to the right of the value passed in

• T’rightof(x) Returns the value to the right of the value passed in Example: Type color is (red, green, blue, orange); color’rightof(blue) is orange; Type s is (1, 0, 0, 1) S’rightof(1) 6/5/2021 DSD, USIT, GGSIPU 17

Signal attributes • S’event – Function returning a boolean that identifies if signal S

Signal attributes • S’event – Function returning a boolean that identifies if signal S has a new value assigned onto this signal (I. e. value is different that last value) – Returns TRUE when an event occurs on s. – If clk’event then ……. – if clk just changed in value than… – Wait until clk’event and clk=‘ 1’ ; -- rising edge of clock 6/5/2021 DSD, USIT, GGSIPU 18

Signal attribute (cont. . ) • S’stable – Implicit signal of Boolean type. This

Signal attribute (cont. . ) • S’stable – Implicit signal of Boolean type. This implicit signal has the value TRUE when an event (change in value) has not occurred on signal S for T time units and the value FALSE otherwise. If time is omitted, it defaults to 0 ns. – Returns TRUE if no event has occurred on s – If s’stable(40 ns) then – met set up time 6/5/2021 DSD, USIT, GGSIPU 19

S’active • S’active – Function returning a boolean that identifies if signal S had

S’active • S’active – Function returning a boolean that identifies if signal S had a new assignment made onto it (whether the value of the assignment is the SAME or DIFFERENT). – Returns TRUE if s = ‘ 1’ – If s’active then……. – New assignment of S – Wait on s’active; – Wait until s’active; 6/5/2021 DSD, USIT, GGSIPU 20

Signal attribute (cont. . ) • S’quiet <time> – This implicit signal has the

Signal attribute (cont. . ) • S’quiet <time> – This implicit signal has the value TRUE when the signal has been quiet (I. e. no activity or signal assignment) for T time units, and the value FALSE otherwise. If time is omitted, it defaults to 0 ns. – Returns TRUE if no event has occurred during the time specified – If s’quiet(40 ns) then – Really quiet, not even an assignment of the same value during the last T time units. 6/5/2021 DSD, USIT, GGSIPU 21

Signal attributes (cont. . ) • S’Last_event – Function returning the amount of time

Signal attributes (cont. . ) • S’Last_event – Function returning the amount of time that has elapsed since the last event (change in value) occurred on signal S. If there was no previous event, it returns Time’high (The maximum value for time) – Returns the time elapsed since last event – Variable : Tsince. Last. Event: time; – …. – Tsince. Last. Event : s’last_event; 6/5/2021 DSD, USIT, GGSIPU 22

 • S’Last_active – Returns the time elapsed since last s=‘ 1’ 6/5/2021 DSD,

• S’Last_active – Returns the time elapsed since last s=‘ 1’ 6/5/2021 DSD, USIT, GGSIPU 23

Signal attribute (cont. ) • S’last_value – Returns the value of s before the

Signal attribute (cont. ) • S’last_value – Returns the value of s before the last event • S’transaction – Signal of type bit that changes for every transaction on s • S’delayed<time> – Signal same as s delayed by specified time 6/5/2021 DSD, USIT, GGSIPU 24

User-defined Attributes • Syntax • Attribute Declaration: – ATTRIBUTE attribute_name: attribute_type; • Attribute specification:

User-defined Attributes • Syntax • Attribute Declaration: – ATTRIBUTE attribute_name: attribute_type; • Attribute specification: – ATTRIBUTE attribute_name of target_name : class is value; Where: Attribute_type : any data type (bit, std_logic etc) Class : type, signal, function etc. Value : ‘ 0’, 27, “ 000101110” , etc 6/5/2021 DSD, USIT, GGSIPU 25

Generic • Generic is a way of specifying a generic parameter – A static

Generic • Generic is a way of specifying a generic parameter – A static parameter that can be easily modified and adapted to different applications. – A generic statement, when employed must be declared in the entity. Syntax: Generic (parameter_name : parameter_type: = parameter_value); 6/5/2021 DSD, USIT, GGSIPU 26