Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[SOLVED] Problem in including vhdl 2008 in project created in Vivado with tcl script

Status
Not open for further replies.

Cesar0182

Member level 5
Joined
Feb 18, 2019
Messages
85
Helped
0
Reputation
0
Reaction score
0
Trophy points
6
Activity points
825
Greetings ... comment I am trying to create a project in vhdl from a tcl script in Vivado 2017.3, but I have problems when adding a source file, apparently it contains valid code lines only in vhdl 2008, therefore it is generating following errors.

Code:
---------------------------------------------------------------------------------
Starting RTL Elaboration : Time (s): cpu = 00:00:07 ; elapsed = 00:00:07 . Memory (MB): peak = 660.898 ; gain = 0.000
---------------------------------------------------------------------------------
ERROR: [Synth 8-995] hotlink_sdma_base is illegal in an expression [C:/ProgramData/Teradyne/FPGA/VivadoProjects/RSBsdApp0x3020Revid_0x4_02_IEA/fpgas/g1/build/src/g1_applic_top_vhdl.vhd:30]
ERROR: [Synth 8-944] 0 definitions of operator "sll" match here [C:/ProgramData/Teradyne/FPGA/VivadoProjects/RSBsdApp0x3020Revid_0x4_02_IEA/fpgas/g1/build/src/g1_applic_top_vhdl.vhd:30]
ERROR: [Synth 8-4696] default expression of interface object is not globally static [C:/ProgramData/Teradyne/FPGA/VivadoProjects/RSBsdApp0x3020Revid_0x4_02_IEA/fpgas/g1/build/src/g1_applic_top_vhdl.vhd:30]
ERROR: [Synth 8-995] hotlink_sdma_base is illegal in an expression [C:/ProgramData/Teradyne/FPGA/VivadoProjects/RSBsdApp0x3020Revid_0x4_02_IEA/fpgas/g1/build/src/g1_applic_top_vhdl.vhd:31]
ERROR: [Synth 8-944] 0 definitions of operator "sll" match here [C:/ProgramData/Teradyne/FPGA/VivadoProjects/RSBsdApp0x3020Revid_0x4_02_IEA/fpgas/g1/build/src/g1_applic_top_vhdl.vhd:31]
ERROR: [Synth 8-4696] default expression of interface object is not globally static [C:/ProgramData/Teradyne/FPGA/VivadoProjects/RSBsdApp0x3020Revid_0x4_02_IEA/fpgas/g1/build/src/g1_applic_top_vhdl.vhd:31]
ERROR: [Synth 8-955] hotlink_sdma_base cannot be used within its own interface list [C:/ProgramData/Teradyne/FPGA/VivadoProjects/RSBsdApp0x3020Revid_0x4_02_IEA/fpgas/g1/build/src/g1_applic_top_vhdl.vhd:29]
INFO: [Synth 8-2810] unit g1_applic_top_vhdl ignored due to previous errors [C:/ProgramData/Teradyne/FPGA/VivadoProjects/RSBsdApp0x3020Revid_0x4_02_IEA/fpgas/g1/build/src/g1_applic_top_vhdl.vhd:27]
---------------------------------------------------------------------------------
Finished RTL Elaboration : Time (s): cpu = 00:00:07 ; elapsed = 00:00:08 . Memory (MB): peak = 660.898 ; gain = 0.000
---------------------------------------------------------------------------------
RTL Elaboration failed
INFO: [Common 17-83] Releasing license: Synthesis
3 Infos, 19 Warnings, 0 Critical Warnings and 8 Errors encountered.
synth_design failed
ERROR: [Common 17-69] Command failed: Synthesis failed - please see the console or run log file for details

This error refers to the following lines, valid only in vhdl 2008.

Code:
entity g1_applic_top_vhdl is
GENERIC (         
             Hotlink_SDMA_Base     : integer := 0;
             used_engine_mask      : std_logic_vector(31 downto 0) := (X"000000FF" SLL Hotlink_SDMA_Base) OR '0';	
             used_wbus_chan_mask   : std_logic_vector(25 downto 0) := ("00000000000000000011111111" SLL Hotlink_SDMA_Base) OR '0'	                
);	
    PORT (
                ...
                    );
end g1_applic_top_vhdl;

architecture Behavioral of g1_applic_top_vhdl is
begin 
...
hotlink_ta_d <= OR ota_hotlink; 
...
end Behavioral ;

I would also like to mention that the previous lines of code were translated from the following lines in verilog.
Code:
parameter Hotlink_SDMA_Base = 0;  // Define the first SDMA engine used by HOTLINK instance 0.
parameter [31:0] used_engine_mask = 8'hff << Hotlink_SDMA_Base  | 1'b0;   // Set 8 bits = 4 Hotlink ports * 2 engines
arameter [25:0] used_wbus_chan_mask = 8'hff << Hotlink_SDMA_Base  | 1'b0;  // Set 8 bits = 4 Hotlink ports * 2 wbus_chans
wire hotlink_ta_d = | ota_hotlink;

Can someone please help me with this problem, thanks in advance.

I also attach the tcl script that I am using (in line 78 I add g1_applic_top_vhdl.vhd)
 

Attachments

  • implement.tcl.rar
    2.8 KB · Views: 83

you need to add the -vhdl2008 argument to any read_vhdl command that has a 2008 VHDL file.
Can I also recommend you move to at least 2017.4 (preferably 2018.3. Note - do not get 2018.1). 2017.2/3 had some pretty bad vhdl2008 bugs.
 

Can I also recommend you move to at least 2017.4 (preferably 2018.3. Note - do not get 2018.1). 2017.2/3 had some pretty bad vhdl2008 bugs.
2017.4 is good.
Otherwise jump to 2018.3, 2018.2 has a nasty memory leak problem for its simulation engine (xsimk) for Windows.
 

Thanks for the help TrickyDicky ... to tell you that for the moment I must keep my version alive, because I am working together with other people with this same version, anyway thanks for the information.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top