diff --git a/init.el b/init.el
index fd29021a4979a411dde028661f8289410e8519ed..4cebb9a2996e319d4fb533de8385adbab87d07fe 100644
--- a/init.el
+++ b/init.el
@@ -83,6 +83,7 @@
   (require 'prog-python)
   (require 'prog-haskell)
   (require 'prog-lisp)
+  (require 'prog-verilog)
   (require 'init-org)
   (require 'apps)
 
diff --git a/lisp/prog-lisp.el b/lisp/prog-lisp.el
index 3694347dbab2451c29541fd8745c95740503817a..06057f07a18726a4b8061dd21ca041673af68b72 100644
--- a/lisp/prog-lisp.el
+++ b/lisp/prog-lisp.el
@@ -8,10 +8,6 @@
   :ensure t
   :commands run-geiser)
 
-(use-package parinfer-rust-mode
-  :ensure t
-  :hook emacs-lisp-mode scheme-mode common-lisp-mode)
-
 (use-package lispy-mode
   :ensure lispy
   :hook emacs-lisp-mode
diff --git a/lisp/prog-verilog.el b/lisp/prog-verilog.el
new file mode 100644
index 0000000000000000000000000000000000000000..939dd321214713e3fa4f63f380a646f0f4ddcc2a
--- /dev/null
+++ b/lisp/prog-verilog.el
@@ -0,0 +1,26 @@
+;;; prog-verilog.el --- programming verilog configurations
+;;; Commentary:
+;;; Code:
+(use-package verilog-mode
+  :ensure nil
+  :defer t
+  :mode ("\\.[ds]?va?h?\\'" . verilog-mode)
+  :config
+  (setq 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-auto-newline             t
+        verilog-auto-indent-on-newline   t
+        verilog-tab-always-indent        t
+        verilog-auto-endcomments         t
+        verilog-minimum-comment-distance 40
+        verilog-indent-begin-after-if    t
+        verilog-auto-lineup              'declarations
+        verilog-linter                   "my_lint_shell_command"
+        ))
+
+(provide 'prog-verilog)
+;;; prog-verilog.el ends here