Я недавно начал использовать обильные ctags и emacs для кодирования verilog & system verilog и просмотра кода.В настоящее время я генерирую теги с помощью команды
ctags -e -R --tag-relative=yes --langmap=verilog:.v.vh.sv.svh
Мой код содержит множество макросов `define, которые все указаны в определенных заголовочных файлах с расширением" .vh "&" .svh ".Например, заголовочный файл с именем foo.vh имеет следующий код
`define WIDTH_ADDRESS 32;
, а файл top.v вызывает макрос следующим образом
input [`WIDTH_ADDRESS - 1 : 0] InAddress;
При просмотре файла top.v с использованием emacs, есть ли способ, с помощью которого я могу перейти непосредственно к определению макроса в файле foo.vh ?
Я уже некоторое время использую M-x tags-search <RET> WIDTH_ADDRESS <RET>
, но он переходит к довольно нескольким другим экземплярам `WIDTH_ADDRESS в других файлах перед тем, как добраться до файла foo.vh.
После некоторых исследований я увиделопция для указания заголовочных файлов, используя опцию -h
с ctags во время генерации тегов.Однако я не мог заставить его работать, и я предполагаю, что с моей стороны была какая-то синтаксическая ошибка.
Прежде всего, есть ли какие-нибудь заметные преимущества указания файла заголовка с использованием опции -h
?Если да, то каков правильный синтаксис для указания заголовочных файлов?Также я могу указать emacs, чтобы сначала просмотреть эти заголовочные файлы (файлы с расширением ".vh" & ". Svh") перед анализом других файлов (с расширением ".v" & ".sv")