|HOME |ABOUT |ARTICLES |ACK |FEEDBACK |TOC |LINKS |BLOG |JOBS |


Tutorials



DUT COMMUNICATION

Connecting To Hdl:



OpenVera can communicate to HDL in the following ways.

# Interface Declaration
# Interface Signal Connection
# Virtual Port Signal Connection
# signal_connect() System Function
# Referencing Signals
# Retrieving Signal Properties
# HDL Tasks



Interface Declaration :



The interface specification is used to group Vera signals by clock domain. Each interface may include, at most, one input signal of type CLOCK. The non-clock signals defined in an interface are sampled and driven on the edges of this clock. If an input signal of type CLOCK is not designated, then the interface signals are synchronized using SystemClock.

These are examples of signal declarations with various signal types:


EXAMPLE : interface declaration
interface abd {
input clk CLOCK;
input [31:0] address PSAMPLE #-1;
inout [7:0] data PSAMPLE #-1 PHOLD #1;
output rdy PHOLD #1;
output sig_out PHOLD NHOLD #1;
inout [7:0] data PSAMPLE NSAMPLE #-1 PHOLD NHOLD #1;
}


Direct Hdl Node Connection:



A Vera interface signal can be connected to any user-specified HDL signal in a design using the hdl_node option.


EXAMPLE : hdl_node
hdl_node CLOCK "hdl_path";

Blocking And Non-Blocking Drives:



Blocking drives suspend Vera execution until the statement completes. Note that the clock edge (NHOLD or PHOLD) that the drive signal is associated with is used for counting synchronized edges during suspension. Once the statement completes, Vera execution resumes.Non-blocking drives schedule the drive at a future synchronized edge and Vera execution continues. When the specified synchronized edge occurs, the drive is executed.


EXAMPLE : Blocking and Nonblocking
@2 ram_bus.data = 1; // blocking drive
a = b;
@2 ram_bus.data <= 1; // non-blocking drive
a = b;
Index
Introduction
Data Types
Linked List
Operators Part 1
Operators Part 2
Operators Part 3
Operator Precedence
Control Statements
Procedures And Methods
Interprocess
Fork Join
Shadow Variables
Fork Join Control
Wait Var
Event Sync
Event Trigger
Semaphore
Regions
Mailbox
Timeouts
Oop
Casting
Randomization
Randomization Methods
Constraint Block
Constraint Expression
Variable Ordaring
Aop
Predefined Methods
String Methods
Queue Methods
Dut Communication
Functional Coverage

Report a Bug or Comment on This section - Your input is what keeps Testbench.in improving with time!





<< PREVIOUS PAGE

TOP

NEXT PAGE >>

copyright © 2007-2017 :: all rights reserved www.testbench.in::Disclaimer