|
NAMEvbe
See the file man1/alc_origin.1. DESCRIPTIONThis document describes the ALLIANCE VHDL subset for behavioural data flow descriptions. CONCURRENT STATEMENTS
Allowed concurrent statements are: simple signal assignment
conditional signal assignment selected signal assignment concurrent assert statement block statement BUSES
The above constraint may be felt as a hard restriction when designing distributed controlled hardware (precharged line, distributed multiplexer, etc ...). To hurdle this, VHDL uses a special feature: guarded-resolved signals. A resolved signal is a signal declared with a resolved subtype (see vhdl(5)). A resolved subtype is a type combined with a resolution function. A resolved signal can be assigned by multiple signal assignments. Depending on the value of each driver, the resolution function determines the effective value of the signal. A guarded signal is a resolved signal with drivers that can be disconected. A guarded signal must be assigned inside a block statement through a guarded signal assignment. A distributed multiplexer may be described as : signal Distributed_Mux : mux_bit bus; begin first_driver_of_mux : block (Sel1 = '1') begin LATCHES and REGISTERS
Rising edge triggered D flip flop : signal Reg : reg_bit register; begin flip_flop : block (ck = '1' and not ck'STABLE) begin Level sensitive latch: signal Reg : reg_bit register; begin latch : block (ck = '1') begin In both cases, the guard expression must depend only on one signal if the description is to be processed by the logic synthetizer (boom + boog). The following operators are only supported: not, and, or, xor, nor, nand, &, =, /= They can be applied on all types supported by the subset. Other standard VHDL operators (+, -, >, <, ...) have not been implemented in the present release. TIMING
After clauses in block statements (for guarded signal assignments) are not supported for sequential elements (signals of kind register), but supported for bus elements (signals of kind bus). This is because the VHDL default disconnection time is null and this can generate unexpected behavior for sequential elements. In selected signal assignment, only uniform delays are supported (the same After clause in all assignments). Transport option is not supported. All delays are inertial delays. ASSERT STATEMENT
Assert statements are ignored by the logic synthesis tool. DON'T CARE
An output can be assigned to the value 'D' (don't care). This is taken into account by the logic synthesis tool in the optimization process. When the value of an output is 'D' the logic synthesis tool may turn it into a '1' or a '0'. A 'D' value is understood as a '0' by the logic simulator (asimut). ARRAIES
EXAMPLESHere is the description of an adder with an accumulator register. entity add_accu is port ( SEE ALSOvhdl(5), vst(5), boom(1), loon(1), boog(1), asimut(1), proof(1) See the file man1/alc_bug_report.1.
|