Section 15.2

LRM-270

Change in Syntax 15-1 (changes in red and blue)

clocking_declaration ::=                                      // from Annex A.6.11

[ default ] clocking [ clocking_identifier ] clocking_event ;

{ clocking_item }

endclocking [ : clocking_identifier ]

LRM-219

Changes (changes in red and blue)

Syntax 15-1—Class Clocking block syntax (excerpt from Annex A)

LRM-265

Changes (changes in red and blue)

clocking ck1 @(posedge clk);

default input #1step output negedge; // legal

// outputs driven on the negedge clk

input ... ;

output ... ;

endclocking

 

clocking ck2 @(clk); // no edge specified!

default input #1step output negedge; // legal

input ... ;

output ... ;

endclocking

Section 15.10

LRM-262 LRM-271

Change in Syntax 15-2 (changes in red and blue)

cycle_delay ::= ## expression                            // from Annex A.6.11

  ## integral_number

| ## identifier

| ## ( expression )

LRM-271

Change (changes in red and blue)

## (j + 1);   // wait j+1 cycles (clocking events) using the default clocking

Section 15.11

LRM-270

Change in Syntax 15-3 (changes in red and blue)

clocking_declaration ::=                                      // from Annex A.6.11

[ default ] clocking [ clocking_identifier ] clocking_event ;

{ clocking_item }

endclocking [ : clocking_identifier ]

Section 15.14

LRM-250

Change in Syntax 15-4 (include ; on clocking_drive) (changes in red and blue)

statement_item ::=

...

| clocking_drive ;

LRM-262

Changes (changes in red and blue)

The expression (in the clocking_drive production) can be any valid expression that is assignment compatible with the type of the corresponding signal.

 

The event_count refers to the expression after the ## in the cycle_delay production and is an integral expression that optionally specifies the number of clocking events (i.e. cycles) that must pass before the statement executes. Specifying a non-zero event_count blocks the current process until the specified number of clocking events have elapsed, otherwise the statement executes at the current time. The event_count uses syntax similar to the cycle-delay operator (see Section 15.10), however, the synchronous drive uses the clocking block of the signal being driven and not the default clocking.