-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy path.vimrc
65 lines (50 loc) · 2.17 KB
/
.vimrc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
" Copyright 2018 Tymoteusz Blazejczyk
"
" Licensed under the Apache License, Version 2.0 (the "License");
" you may not use this file except in compliance with the License.
" You may obtain a copy of the License at
"
" http://www.apache.org/licenses/LICENSE-2.0
"
" Unless required by applicable law or agreed to in writing, software
" distributed under the License is distributed on an "AS IS" BASIS,
" WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
" See the License for the specific language governing permissions and
" limitations under the License.
let current_dir = expand('<sfile>:p:h')
let verilog_includes = split(globpath(current_dir, '**/rtl/**/*.vh'), '\n')
let verilog_files = split(globpath(current_dir, '**/rtl/**/*.v'), '\n')
let systemverilog_includes = split(globpath(current_dir, '**/rtl/**/*.svh'), '\n')
let systemverilog_packages = split(globpath(current_dir, '**/rtl/**/*_pkg.sv'), '\n')
let systemverilog_files = split(globpath(current_dir, '**/rtl/**/*.sv'), '\n')
let verilator_sources = []
for systemverilog_package in systemverilog_packages
call add(verilator_sources, fnamemodify(systemverilog_package, ":p"))
endfor
let verilator_includes = []
for verilog_include in verilog_includes
call add(verilator_includes, fnamemodify(verilog_include, ":p:h"))
endfor
for verilog_file in verilog_files
call add(verilator_includes, fnamemodify(verilog_file, ":p:h"))
endfor
for systemverilog_include in systemverilog_includes
call add(verilator_includes, fnamemodify(systemverilog_include, ":p:h"))
endfor
for systemverilog_file in systemverilog_files
call add(verilator_includes, fnamemodify(systemverilog_file, ":p:h"))
endfor
let dict = {}
for verilator_include in verilator_includes
let dict[verilator_include] = ''
endfor
let verilator_includes = keys(dict)
let verilator_options = []
call add(verilator_options, '-Wall --top-module logic_dummy')
for verilator_include in verilator_includes
call add(verilator_options, '-I' . verilator_include)
endfor
for verilator_source in verilator_sources
call add(verilator_options, verilator_source)
endfor
let g:syntastic_systemverilog_compiler_options = join(verilator_options, ' ')