Hauptseite

VHDL Coding mit vim

19. März 2009 von

Es gibt zwar das ein oder andere mehr oder weniger gute vim-Plugin für VHDL, doch die meisten beschränken sich auf einige Mappings, Abkürzungen und Ähnliches. Es gibt jedoch eine sehr schöne Anleitung von Andreas Müller, wie man sein vim wirklich gut zum Coden von VHDL nutzen kann. Darin werden verschiedene Plugins, Mappings … beschrieben.

Dort wird unter Anderem das Taglist-Plugin verwendet. Um es nutzen zu können, muss Exuberant Ctags installiert sein, was man unter Ubuntu einfach per

apt-get install exuberant-ctags

installieren kann.

In der Anleitung steht bereits eine ctags-Konfigurationsdatei zur Verfügung. Sie wird einfach unter ~/.ctags gespeichert. Diese Datei habe ich in dem Abschnitt von VHDL um folgende Zeile erweitert um auch die Port Mappings anzuzeigen:

--regex-vhdl=/^[ \t]*([^ \t:]+)[ \t]*:[ \t]*[a-z0-9_]+[ \t]+port[ \t]*map[ \t]*\(/\1/m,port maps/i

Zusätzlich muss dafür die Definition von g:tlist_vhdl_settings in der .vimrc abgeändert werden (mehr zur .vimrc weiter unten):

let g:tlist_vhdl_settings   = 'vhdl;d:package declarations;b:package bodies;e:entities;a:architecture specifications;t:type declarations;p:processes;f:functions;m:port maps;r:procedures'

Hier die entsprechenden Zeilen der .vimrc für VHDL, die ich (mehr oder weniger) übernommen habe:

" VHDL Stuff
if has("autocmd")
	filetype plugin indent on
"	filetype dependent settings
	au Filetype vhdl call FT_vhdl()
else
	set autoindent
endif 
 
function FT_vhdl()
	if exists("+omnifunc")
		setlocal omnifunc=syntaxcomplete#Complete
	endif
	setlocal errorformat=ERROR:%.%#\ -\ \"\%f\"\ Line\ %l.\ %m,%EERROR:%m,%C\[%f(%l)\]:\ %m,%C%m,%Z%m
	let g:vhdl_indent_genportmap=0
"	for taglist
	let g:tlist_vhdl_settings   = 'vhdl;d:package declarations;b:package bodies;e:entities;a:architecture specifications;t:type declarations;p:processes;f:functions;m:port maps;r:procedures'
endfunction

Das Errorformat ist bisher kaum getestet. Verbesserungsvorschläge sind daher gern gesehen.
Mehr zum Thema Makefiles und Compilieren (eigentlich Synthetisieren, Mappen,…) gibts hier.

Die anderen Ideen von Andreas habe ich vorerst nicht übernommen, da mir dies im Moment reicht.


Schlagworte: ,



Kommentieren

Kommentarlinks könnten nofollow frei sein.


Bloggeramt.de frisch gebloggt Blogverzeichnis - Blog Verzeichnis bloggerei.de