예, .el
파일에서는 verilog-library-flags
설정을 빼고, 대신 각 Verilog 파일의 Local Variables
섹션에서 설정할 수 있습니다. 이는 각 파일별로 필요한 설정을 적용할 수 있는 좋은 방법입니다.
최종 설정 파일 및 스크립트
.el
파일에서 verilog-library-flags
설정을 제거하고, 각 Verilog 파일에 Local Variables
섹션을 추가한 상태로 스크립트를 작성하겠습니다.
my-verilog-settings.el
;; my-verilog-settings.el
;; Verilog mode 설정
(require 'verilog-mode)
(add-to-list 'auto-mode-alist '("\\.v\\'" . verilog-mode))
(add-to-list 'auto-mode-alist '("\\.sv\\'" . verilog-mode))
(setq verilog-auto-newline nil
verilog-auto-endcomments nil
verilog-auto-lineup 'all
verilog-indent-level 3
verilog-indent-level-module 3
verilog-indent-level-declaration 3
verilog-indent-level-behavioral 3
verilog-indent-level-directive 1
verilog-case-indent 2
verilog-cexp-indent 2
verilog-indent-begin-after-if t
verilog-auto-lineup 'declarations
verilog-tab-always-indent t
verilog-auto-input-ignore-regexp "^(reset|clk)")
(defun my-verilog-auto ()
"자동으로 포트, 와이어 등을 생성하고 현재 버퍼에 저장합니다."
(verilog-auto)
(verilog-indent-buffer)
(save-buffer))
process_verilog.csh
#!/bin/csh
# 입력 파라미터 확인
if ($#argv != 2) then
echo "Usage: process_verilog.csh input_verilog_file output_verilog_file"
exit 1
endif
# 입력 파일과 출력 파일 변수 설정
set input_verilog_file = $1
set output_verilog_file = $2
# 디버깅을 위해 변수 출력
echo "Input file: $input_verilog_file"
echo "Output file: $output_verilog_file"
# 출력 파일로 입력 파일을 복사
cp $input_verilog_file $output_verilog_file
# Emacs 배치 모드에서 설정 파일을 로드하고 변환 작업을 수행
emacs --batch --no-site-file -l my-verilog-settings.el $output_verilog_file \
--eval "(verilog-mode)" \
--eval "(my-verilog-auto)" -kill
example1.sv 파일
Verilog 파일에 Local Variables
섹션을 추가합니다.
// example1.sv
// Your Verilog code here
// Local Variables:
// verilog-library-flags: ("-f filelist.f")
// End:
실행 방법
my-verilog-settings.el
파일을 현재 작업 디렉토리에 저장합니다.process_verilog.csh
스크립트를 작성하고 실행 가능하게 만듭니다.
chmod +x process_verilog.csh
example1.sv
파일에Local Variables
섹션을 추가합니다.- csh 스크립트를 실행하여 Verilog 파일을 변환합니다.
./process_verilog.csh example1.sv final1.sv
설명
my-verilog-settings.el
: Verilog 모드를 설정하고,my-verilog-auto
함수를 정의하여 포트, 와이어 등을 자동 생성하고 현재 버퍼를 저장합니다.process_verilog.csh
: 입력 파일을 출력 파일로 복사하고, Emacs 배치 모드를 사용하여my-verilog-settings.el
을 로드한 후,verilog-mode
를 활성화하고,my-verilog-auto
함수를 실행합니다.example1.sv
: Verilog 파일에Local Variables
섹션을 추가하여verilog-library-flags
설정을 포함합니다.
이렇게 하면 각 Verilog 파일마다 필요한 설정을 적용할 수 있으며, Emacs Lisp 설정 파일에서는 전역 설정만 유지할 수 있습니다.
'IT > ASIC | FPGA' 카테고리의 다른 글
VCS 컴파일 이전에 synopsys_sim.setup 파일 확인 (0) | 2024.08.13 |
---|---|
VCS delay zero 처리 - +delay_mode_zero +notimingcheck (0) | 2024.08.09 |
쉘 실행때 옵션에 따라서 다른 filelist 물고 실행하기 (0) | 2024.07.19 |
Verdi 옵션 - kdb,fsdb 물고 실행 (0) | 2024.07.01 |
tcl 멀티라인 지원 - 작성 내용이 너무 길어서 엔터치고 싶다! (0) | 2024.06.19 |