%! Acronyms \newacronym{ascii}{ASCII}{American Standard Code for Information Interchange} \newacronym{api}{API}{Application Programming Interface} \newacronym{abi}{ABI}{Application Binary Interface} \newacronym{asic}{ASIC}{Application-Specific Integrated Circuit} \newacronym{axi}{AXI}{Advanced eXtensible Interface} \newacronym{bram}{BRAM}{Random Access Memory Block} \newacronym{crc}{CRC}{Cyclic Redundancy Check} \newacronym{dpi}{DPI}{Direct Programming Interface} \newacronym{dsp}{DSP}{Digital Signal Processing Block} \newacronym{dut}{DUT}{Design Under Test} \newacronym{eda}{EDA}{Electronic Design Automation} \newacronym{ffI}{FFI}{Foreign Function Interface} \newacronym{fft}{FFT}{Fast Fourier Transform} \newacronym{fifo}{FIFO}{First In First Out} \newacronym{fpga}{FPGA}{Field Programmable Gate Array} \newacronym{fpu}{FPU}{Floating-Point Unit} \newacronym{fsm}{FSM}{Finite State Machine} \newacronym{gpu}{GPU}{Graphics Processor Unit} \newacronym{gui}{GUI}{Graphical User Interface} \newacronym{hdl}{HDL}{Hardware Description Language} \newacronym{hls}{HLS}{High Level Synthesis} \newacronym{hpc}{HPC}{High-Performance Computing} \newacronym{ide}{IDE}{Integrated Design Environment} \newacronym{ieee}{IEEE}{Institute of Electrical and Electronics Engineers} \newacronym{io}{IO}{Input/Output} \newacronym{iot}{IoT}{Internet of Things} \newacronym{ip}{IP}{Intellectual Property} \newacronym{IR}{IR}{Intermediate Representation} \newacronym{lcs}{LCS}{Language Change Specification} \newacronym{lut}{LUT}{Look-Up Table} \newacronym{mac}{MAC}{Multiply Adder Core} \newacronym{macc}{MACC}{Multiply ACcumulate Core} \newacronym{mwe}{MWE}{Minimal Working Example} \newacronym{pci}{PCI}{Peripheral Component Interconnect} \newacronym{psl}{PSL}{Property Specification Language} \newacronym{rtl}{RTL}{Register-Transfer Level} \newacronym{soc}{SoC}{System on a Chip} \newacronym{sopc}{SoPC}{System on a Programmable Chip} \newacronym{uart}{UART}{Universal Asynchronous Receiver-Transmitter} \newacronym{uut}{UUT}{Unit Under Test} \newacronym{vhdl}{VHDL}{\glslink{vhsic}{VHSIC} Hardware Description Language} \newacronym{vhpi}{VHPI}{VHDL Procedural Interface} \newacronym{vhsic}{VHSIC}{Very High Speed Integrated Circuit} \newacronym{vlsi}{VLSI}{Very Large Scale Integration} %! Symbols \newglossaryentry{pi}{type=symbols,name={\ensuremath{\mathbf\pi}},sort=pi,description={ratio of circumference of circle to its diameter}} %! Glossary \setglossarypreamble{ For the purposes of this document, the following terms and definitions apply. These and other terms within \gls{ieee} standards are found in the IEEE Standards Dictionary Online available at: \href{http://dictionary.ieee.org/}{dictionary.ieee.org}. An \gls{ieee} account is required for access to the dictionary, and one can be created at no charge on the dictionary sign-in page. This glossary contains brief, informal descriptions for a number of terms and phrases used to define this language. The complete, formal definition of each term or phrase is provided in the main body of the standard. For each entry, the relevant clause or subclause numbers in the text are given. Some descriptions refer to multiple clauses in which the single concept is discussed; for these, the clause number containing the definition of the concept is given in italics. Other descriptions contain multiple clause numbers when they refer to multiple concepts; for these, none of the clause numbers are italicized. } %\newglossaryentry{}{name={},description={}} \newglossaryentry{AbsoluteDesignHierarchySearchString}{name={absolute design hierarchy search string},description={A search string provided to the vhpi\_handle\_by\_name function that represents the full name of an object in the design hierarchy information model}} \newglossaryentry{AbsoluteLibrarySearchString}{name={absolute library search string},description={A search string provided to the vhpi\_handle\_by\_name function that represents the full name of an object in the library information model}} \newglossaryentry{AbstractClass}{name={abstract class},description={A class that cannot be the most specialized class of any object}} \newglossaryentry{AbstractLiteral}{name={abstract literal},description={A literal of the universal\_real abstract type or the universal\_integer abstract type}} \newglossaryentry{AccessMode}{name={access mode},description={The mode in which a file object is opened, which can be either read-only or write-only. The access mode depends on the value supplied to the Open\_Kind parameter}} \newglossaryentry{AccessType}{name={access type},description={A type that provides access to an object of a given type. Access to such an object is achieved by an access value returned by an allocator; the access value is said to designate the object}} \newglossaryentry{AccessValue}{name={access value},description={A value of an access type. This value is returned by an allocator and designates an object (which will be a variable) of a given type. A null access value designates no object. An access value can only designate an object created by an allocator; it cannot designate an object declared by an object declaration}} \newglossaryentry{ActionCallback}{name={action callback},description={A callback whose trigger event relates to occurrence of phases of tool execution and other aspects of tool execution}} \newglossaryentry{ActiveDriver}{name={active driver},description={A driver that acquires a new value during a simulation cycle regardless of whether the new value is different from the previous value}} \newglossaryentry{Actual}{name={actual},description={An expression, a port, a signal, a variable, a subtype, a subprogram, or a package associated with a formal port, formal parameter, or formal generic}} \newglossaryentry{Aggregate}{name={aggregate},description={ (A) The kind of expression, denoting a value of a composite type. The value is specified by giving the value of each of the elements of the composite type. Either a positional association or a named association will be used to indicate which value is associated with which element. (B) A kind of target of a variable assignment statement or signal assignment statement assigning a composite value. The target is then said to be in the form of an aggregate}} \newglossaryentry{Alias}{name={alias},description={An alternate name for a named entity}} \newglossaryentry{Allocator}{name={allocator},description={An operation used to create anonymous, variable objects accessible by means of access values}} \newglossaryentry{Analysis}{name={analysis},description={The syntactic and semantic analysis of source code in a VHDL design file and the insertion of intermediate form representations of design units into a design library}} \newglossaryentry{AnalysisPhase}{name={analysis phase},description={ That phase of tool execution in which analysis of a design file occurs}} \newglossaryentry{Anonymous}{name={anonymous},description={The undefined simple name of an item, which is created implicitly. The base type of a numeric type or an array type is anonymous; similarly, the object denoted by an access value is anonymous}} \newglossaryentry{ApplicationContext}{name={application context},description={The application context of a class specifies whether objects of the class may exist in either or both of the library information model or the design hierarchy information model, and as a consequence, when the object is accessible to VHPI programs}} \newglossaryentry{ApplicationName}{name={application name},description={An identifier that, jointly with an object library name, uniquely identifies a foreign application}} \newglossaryentry{Appropriate}{name={appropriate},description={A prefix is said to be appropriate for a type if the type of the prefix is the type considered, or if the type of the prefix is an access type whose designated type is the type considered}} \newglossaryentry{ArchitectureBody}{name={architecture body},description={A body associated with an entity declaration to describe the internal organization or operation of a design entity. An architecture body is used to describe the behavior, dataflow, or structure of a design entity}} \newglossaryentry{ArrayObject}{name={array object},description={An object of an array type}} \newglossaryentry{ArrayType}{name={array type},description={A type, the value of which consists of elements that are all of the same subtype (and hence, of the same type). Each element is uniquely distinguished by an index (for a one-dimensional array) or by a sequence of indexes (for a multidimensional array). Each index will be a value of a discrete type and shall lie in the correct index range}} \newglossaryentry{AscendingRange}{name={ascending range},description={A range L to R}} \newglossaryentry{ASCII}{name={ASCII},description={American Standard Code for Information Interchange. The package Standard contains the definition of the type CHARACTER, the first 128 values of which represent the ASCII character set}} \newglossaryentry{AssertionViolation}{name={assertion violation},description={A violation that occurs when the condition of an assertion statement evaluates to false}} \newglossaryentry{AssociatedDriver}{name={associated driver},description={The single driver for a signal in the (explicit or equivalent) process statement containing the signal assignment statement}} \newglossaryentry{AssociatedIndividually}{name={associated individually},description={A property of a formal port, generic constant, or parameter of a composite type with respect to some association list. A composite formal whose association is defined by multiple association elements in a single association list is said to be associated individually in that list. The formats of such association elements will denote non-overlapping subelements or slices of the formal}}