VST(5)
β¨ VST β the vst page, bestie edition β¨
okay so welcome to vst, aka the VHDL structural subset π
this is a section-5 (file formats / conventions) page, and it's giving very specific. grab a boba, we're doing structural VHDL π§
πΈ ORIGIN πΈ
This software belongs to the ALLIANCE CAD SYSTEM, developed by the ASIM team at the LIP6 laboratory of UniversitΓ© Pierre et Marie CURIE, in Paris, France π«π·π«Ά
- Web:
http://asim.lip6.fr/recherche/alliance/ - E-mail:
alliance-users@asim.lip6.fr
π DESCRIPTION π
This document describes the ALLIANCE VHDL subset for structural descriptions. no cap, that's the whole vibe.
The declaration part of a structural description includes signal declarations and component declarations.
An internal signal can be declared of any type supported by the present VHDL subset except reg_bit and reg_vector. π« those two are not invited to the party.
A component must be declared with exactly the same port description as in its entity specification. what does that mean bestie? it means local ports are to be declared with the same name, the same type, the same kind, and in the same order. same energy, same order, no exceptions π₯
A structural description is a set of component instantiation statements. Instances' ports are connected to each other through signals in a port map specification. Both explicit and implicit port map specifications are supported by the ALLIANCE VHDL subset π
β οΈ heads up: the present version of the VHDL compiler does not allow unconnected ports β the open mode is not supported. π
Only the concatenation operator (&) can be used in the actual part (the effective signal connected to a formal port) of a port map specification. that's the only operator invited. periodt.
π EXAMPLES π
Here is the description of an adder with an accumulator register. iconic honestly.
entity add_accu is
port (
clk : in bit;
command : in bit;
data_in : in bit_vector (31 downto 0);
data_out : out bit_vector (31 downto 0);
cry_out : out bit;
vdd : in bit;
vss : in bit
);
end add_accu;
architecture structural of add_accu is
signal eff_data : bit_vector (31 downto 0); -- effective operande
signal adder_out : bit_vector (31 downto 0); -- adder's result
signal accu_out : bit_vector (31 downto 0); -- accumulator
component adder
port (a : in bit_vector (31 downto 0);
b : in bit_vector (31 downto 0);
res : out bit_vector (31 downto 0));
end component;
component and_32
port (a : in bit_vector (31 downto 0);
cmd : in bit;
res : out bit_vector (31 downto 0));
end component;
component falling_edge_reg
port (din : in bit_vector (31 downto 0);
clk : in bit;
dout : out bit_vector (31 downto 0));
end component;
begin
my_adder : adder
port map (a => eff_data, b => accu_out, res => adder_out);
my_mux : and_32
port map (cmd => command, a => accu_out, res => eff_data);
my_reg : falling_edge_reg
port map (din => adder_out, clk => clk, dout => accu_out);
end;
π¦ SEE ALSO π¦
go read those too, they're part of the lore π
π BUG REPORT π
This tool is under development at the ASIM department of the LIP6 laboratory. π·βοΈ
We need your feedback to improve documentation and tools. fr fr, they're literally asking β send the feedback, be the main character of the changelog π
and that's the whole page, bestie!! π this lil' gem came from ASIM/LIP6, dated October 1, 1997 (yes it's a 90s babe and it still eats), and it lives in the man pages as VST(5). stay slay, wire your ports correctly, and never leave one open π«Άβ¨πΈ
π¦ where this page comes from
- fedora 43: alliance-libs 5.1.1-35.20160506gitd8c05cd.fc42 Β· GPL-2.0-only
- fedora 43: alliance-libs 5.1.1-35.20160506gitd8c05cd.fc42 Β· GPL-2.0-only
- fedora 44: alliance-libs 5.1.1-35.20160506gitd8c05cd.fc42 Β· GPL-2.0-only
- fedora 44: alliance-libs 5.1.1-35.20160506gitd8c05cd.fc42 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms