Merge pull request #543 from BooneJS/master
Add SystemVerilog language snippets
This commit is contained in:
commit
5b5633359d
127
snippets/systemverilog.snippets
Normal file
127
snippets/systemverilog.snippets
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
# if statement
|
||||||
|
snippet if
|
||||||
|
if (${1}) begin
|
||||||
|
${0}
|
||||||
|
end
|
||||||
|
# If/else statements
|
||||||
|
snippet ife
|
||||||
|
if (${1}) begin
|
||||||
|
${2}
|
||||||
|
end
|
||||||
|
else begin
|
||||||
|
${1}
|
||||||
|
end
|
||||||
|
# Else if statement
|
||||||
|
snippet eif
|
||||||
|
else if (${1}) begin
|
||||||
|
${0}
|
||||||
|
end
|
||||||
|
#Else statement
|
||||||
|
snippet el
|
||||||
|
else begin
|
||||||
|
${0}
|
||||||
|
end
|
||||||
|
# While statement
|
||||||
|
snippet wh
|
||||||
|
while (${1}) begin
|
||||||
|
${0}
|
||||||
|
end
|
||||||
|
# Repeat Loop
|
||||||
|
snippet rep
|
||||||
|
repeat (${1}) begin
|
||||||
|
${0}
|
||||||
|
end
|
||||||
|
# Foreach Loopo
|
||||||
|
snippet fe
|
||||||
|
foreach (${1}) begin
|
||||||
|
${0}
|
||||||
|
end
|
||||||
|
# Do-while statement
|
||||||
|
snippet dowh
|
||||||
|
do begin
|
||||||
|
${0}
|
||||||
|
end while (${1});
|
||||||
|
# Case statement
|
||||||
|
snippet case
|
||||||
|
case (${1})
|
||||||
|
{$2}: begin
|
||||||
|
${0}
|
||||||
|
end
|
||||||
|
default: begin
|
||||||
|
end
|
||||||
|
endcase
|
||||||
|
# CaseZ statement
|
||||||
|
snippet casez
|
||||||
|
casez (${1})
|
||||||
|
{$2}: begin
|
||||||
|
${0}
|
||||||
|
end
|
||||||
|
default: begin
|
||||||
|
end
|
||||||
|
endcase
|
||||||
|
# Combinational always block
|
||||||
|
snippet alc
|
||||||
|
always_comb begin ${1:: statement_label}
|
||||||
|
${0}
|
||||||
|
end $1
|
||||||
|
# Sequential logic
|
||||||
|
snippet alff
|
||||||
|
always_ff @(posedge ${1:clk}) begin ${2:: statement_label}
|
||||||
|
${0}
|
||||||
|
end $2
|
||||||
|
# Latched logic
|
||||||
|
snippet all
|
||||||
|
always_latch begin ${1:: statement_label}
|
||||||
|
${0}
|
||||||
|
end $1
|
||||||
|
# Module block
|
||||||
|
snippet mod
|
||||||
|
module ${1:module_name} (${2});
|
||||||
|
${0}
|
||||||
|
endmodule : $1
|
||||||
|
# Class
|
||||||
|
snippet cl
|
||||||
|
class ${1:module_name};
|
||||||
|
// data or class properties
|
||||||
|
${0}
|
||||||
|
|
||||||
|
// initialization
|
||||||
|
function new();
|
||||||
|
endfunction : new
|
||||||
|
|
||||||
|
endmodule : $1
|
||||||
|
# Typedef structure
|
||||||
|
snippet types
|
||||||
|
typedef struct {
|
||||||
|
${0}
|
||||||
|
} ${1:name_t};
|
||||||
|
# Program block
|
||||||
|
snippet prog
|
||||||
|
program ${1:program_name} ();
|
||||||
|
${0}
|
||||||
|
endprogram : $1
|
||||||
|
# Interface block
|
||||||
|
snippet intf
|
||||||
|
interface ${1:program_name} ();
|
||||||
|
// nets
|
||||||
|
${0}
|
||||||
|
// clocking
|
||||||
|
|
||||||
|
// modports
|
||||||
|
|
||||||
|
endinterface : $1
|
||||||
|
# Clocking Block
|
||||||
|
snippet clock
|
||||||
|
clocking ${1:clocking_name} @(${2:posedge} ${3:clk});
|
||||||
|
${0}
|
||||||
|
endclocking : $1
|
||||||
|
# Covergroup construct
|
||||||
|
snippet cg
|
||||||
|
covergroup ${1:group_name} @(${2:posedge} ${3:clk});
|
||||||
|
${0}
|
||||||
|
endgroup : $1
|
||||||
|
# Package declaration
|
||||||
|
snippet pkg
|
||||||
|
package ${1:package_name};
|
||||||
|
${0}
|
||||||
|
endpackage : $1
|
Loading…
Reference in New Issue
Block a user