AHDL

Node Declaration



AHDL supports two types of nodes: NODE and TRI_STATE_NODE.

Both types are all-purpose variable types used to store signals that have not been declared in the Subdesign Section or elsewhere in the Variable Section. Therefore, a variable of either type can be used on the left or right of an equation.

Both NODE and TRI_STATE_NODE are similar to the INPUT, OUTPUT, and BIDIR port types of the Subdesign Section, in that they represent a single wire that propagates signals.

NOTE Compiler-generated names that contain the tilde (~) character may appear in the compilation database for a project. If you back-annotate the assignments in the database, these names will then appear in the project's Compiler Settings File (.csf). The tilde character is reserved for Compiler-generated names only; you cannot use it in your own pin, node, and group names.

The following example shows a Node Declaration:

SUBDESIGN node_ex
(
	in1, in2  : INPUT;
	oe1, oe2  : INPUT;
	out       : OUTPUT;
	io        : BIDIR;
)

VARIABLE
	n : NODE;
	t : TRI_STATE_NODE;
BEGIN
	t = TRI(in1, oe1);
	t = TRI(in2, oe2);  % t is bus of tri_stated in1 and tri_stated in2 %
	n = LCELL(t);
	out = n;				  % out = LCELL(t) %
	io = t;

END;

 

NODE and TRI_STATE_NODE differ in that multiple assignments to them yield different results:

 

The following primitives and signals can feed TRI_STATE_NODE nodes:


Back to Top

- PLDWorld -

 

Created by chm2web html help conversion utility.