Skip to content

Compilation

Gonzalo Larumbe edited this page Dec 19, 2023 · 4 revisions

Configuration

First make sure that compilation has been included in vhdl-ext-feature-list before running vhdl-ext-mode-setup.

vhdl-ext-compile-project-ghdl

This function uses the contents of vhdl-ext-project-alist to run a compilation of current project.

In the example below, the variable vhdl-ext-project-alist is set for the project axi_if_converter:

(setq vhdl-ext-project-alist
      ("axi_if_converter"
       :root "/home/gonz/Repos/larumbe/axi_if_converter"
       :files ("src/top/rtl/global_pkg.vhd"
               "src/misc/clk_div.vhd"
               "src/misc/clk_sync.vhd"
               "src/pattern_counter/rtl/pattern_counter.vhd"
               "src/input_buffer/rtl/input_buffer_pkg.vhd"
               "src/input_buffer/rtl/input_buffer.vhd"
               "src/core_fsm/rtl/core_fsm.vhd"
               "src/axi_lite_regs/rtl/axi_lite_regs.vhd"
               "src/axi_lite_master/rtl/axi_lite_master.vhd"
               "src/core_conv/rtl/core_converter.vhd"
               "src/top/rtl/axi_if_converter.vhd")
       ;; The ones below are used for GHDL-related features
       :worklib "xil_defaultlib"                    ; Defaults to `work' if not set
       :workdir "library/xil_defaultlib"            ; Output compilation directory for worklib
       :lib-search-path ("/opt/ghdl_Xilinx_lib/"))) ; Extra directories to look for compiled libraries
  • Filelist: must be ordered since it is how GHDL analysis expects it
  • Workdir: directory where work library will be compiled

vhdl-ext-compile-ghdl

This function is used under the hood by vhdl-ext-compile-project-ghdl. It is not interactive and is intended for more generic programatic uses. For example:

(vhdl-ext-compile-ghdl (concat "ghdl -s " buffer-file-name))

Notes

If you want a colorized output with the jump to error feature for other tools, such as Vivado, Quartus, Xcelium, QuestaSim, etc.., check the fpga package, which provides a similar functionality for major vendors.

Clone this wiki locally