1

I am writing a self-checking VHDL testbench, and I want to monitor an internal signal of the design that is not routed to a port. I want to use external signals to allow the testbench to see these signals, but Vivado is giving me syntax errors. The syntax errors just say "Error near '<' and '>'". I am aiming to declare this signal in my architecture like this:

alias DATA is <<signal .tb_filename.design_filename.signal_name : std_logic_vector(31 downto 0) >>;

Is this the correct way to use external names?

Matthew Taylor
  • 13,365
  • 3
  • 17
  • 44
Aegabberty
  • 11
  • 1
  • 1
    Have you given the right switch to you compiler to tell it you're wanting to use VHDL-2008? – Matthew Taylor Jun 30 '20 at 12:42
  • @MatthewTaylor, yes. I am using Vivado 2019 and my project target is set to VHDL so I believe it should automatically support VHDL 2008. – Aegabberty Jun 30 '20 at 12:51
  • 1
    No. Vivado needs to be told. Vivado considers VHDL-2008 to be a separate language option to VHDL. You need to set it up for each file in the source options. – Matthew Taylor Jun 30 '20 at 12:54
  • 1
    Vivado loads files as VHDL93 by default (it claims 2002, but its not). You either have to set it manually in the gui, or if you're using tcl `read_vhdl -vhdl2008 ` when creating the project. If you want to set everything in a project to 2008 then try `set_property FILE_TYPE {VHDL 2008} [get_files *.vhd]`. Also good luck with VHDL2008 in the simulator - support is lacking while the synthesis support is finally pretty good. – Tricky Jun 30 '20 at 13:13
  • If you are still having problems, check out post: https://stackoverflow.com/questions/48347200/vhdl-2008-cant-drive-a-signal-with-an-alias-of-an-external-name also, "tb_filname" should be the testbench entity name and "design_filename" should be the instance label of the design file entity. – Jim Lewis Jun 30 '20 at 23:36
  • UG900 Logic Simulation v2019.1 Appendix C Table C-1 Supported features of VHDL 2008 (IEEE1076-2008 Says it should be supported, the feature is called `Hierarchical references to signal` therein. The syntax in the example matches your question. –  Jul 01 '20 at 05:44

0 Answers0