nvim/UltiSnips/vhdl.snippets

80 lines
1.7 KiB
Plaintext

snippet addlib "add new library" A
library $1;
use $1.${2:`!p
if t[1] == "ieee":
snip.rv = "std_logic_1164"
else:
snip.rv = "package"`}.${3:all};
`!p
if t[1] == "ieee":
snip.rv = "use ieee.numeric_std.all;"
else:
snip.rv = ""`
$0
endsnippet
snippet entity "new entity"
-- Entity $1: ${2:$1}
entity ${1:Name} is
port(
$3`!p t[3] = t[3].replace(" : ", "\t:\t").replace("in ", "in\t").replace("out ", "out\t").replace(" ", "\t")`
);
end $1;
$0
endsnippet
snippet addPort "add a new Port to an entity" A
${1:name} : ${2:In/Out} ${3:std_logic}; -- ${4:What is this?}$0
endsnippet
snippet architecture "define an architecture"
-- Architecture $1 of $2: $3
architecture ${1:name} of ${2:Entity_name} is
${4:Konstanten, Typen, Signale}
begin
${5:Code}
end $1;
$0
endsnippet
snippet process "New Process in arch"
-- Process $1 ${3}
${1:Name} : process (${2}) -- runs only, when $2 changed
begin
$4
end process;
$0
endsnippet
snippet docstring "Header Comment" A
-- `!p snip.rv = fn`
-- Created on: `date`
-- Author(s): ${1:Nina Chloé Reiß}
-- Content: ${2: Entity `!p snip.rv = fn.split('.')[0]`}
$0
endsnippet
snippet _generic "Add a generic instruction" A
generic (${1:name} : ${2:integer} := ${3:8});$0
endsnippet
snippet std_logic_vector "Port is a vector" i
std_logic_vector(${1:1} downto ${2:0});$0
endsnippet
snippet vhmeta "VHDL Annotation" A
-- Comment from `whoami`: ${1:Description} => `date`
endsnippet
snippet vhtodo "VHDL Todo" A
-- TODO from `whoami`: ${1: What to do?} => `date`
endsnippet
snippet regflit "reg_idx from literal" iA
std_logic_vector(to_unsigned('${1:Literal}', reg_adr_size));
endsnippet
snippet fillvec "Stdout to fill a vector" A
(others => '0')
endsnippet