Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
16596 Discussions

'Illegal directional connection'error in Quartus 8.0

Altera_Forum
Honored Contributor II
1,549 Views

Hi all. 

Recently I compile a project in Quartus 8.0, it comes out the errors: 

Error: Illegal directional connection from the node "WPI_MODEL:inst|AnalogFault:I52|data_out[2]" to the pin "XD[2]"  

 

while compile in Quartus 5.0, it's Ok. 

 

I look for a long time but find nothing. 

Could somebody help me for this situation?Thanks a lot.
0 Kudos
7 Replies
Altera_Forum
Honored Contributor II
542 Views

I don't know what an "Illegal directional connection" exactly is. Is it a compiler or fitter error message? 

 

I would primarly look for the logic definition and possibly defined pin attributes and other specific assignments. I also would try with a newer Quartus version, e.g. a stable 9.0.
0 Kudos
Altera_Forum
Honored Contributor II
542 Views

 

--- Quote Start ---  

I don't know what an "Illegal directional connection" exactly is. Is it a compiler or fitter error message? 

 

I would primarly look for the logic definition and possibly defined pin attributes and other specific assignments. I also would try with a newer Quartus version, e.g. a stable 9.0. 

--- Quote End ---  

 

 

 

In my project,I define a 'INOUT' , and the project is well run in Quartus 5.0.Now I want to compile in Quartus 8.0, during the systhesis it get errors. 

Best Regards!
0 Kudos
Altera_Forum
Honored Contributor II
542 Views

I have defined a 'inout' in top module  

data : INOUT std_logic_vector (15 downto 0);  

and then I call a component and use the data as bidiretional interface. 

port map 

(data_in=>data, 

data_out=>data,).
0 Kudos
Altera_Forum
Honored Contributor II
542 Views

I don't know the port type of data_out, but this most likely can't work. You'll need a tristate driver interface. 

 

port map (data_in=>data, data_out=>data_o); data <= data_o when (enable_condition) else (others => 'z'); 

 

P.S.: If data_out is of the output type, and you simply want to override the inout character of data (permanently enable the output buffer), there may be technical problem of the Quartus compiler. In this case, try to insert a dummy signal between data_out and data.
0 Kudos
Altera_Forum
Honored Contributor II
542 Views

 

--- Quote Start ---  

I don't know the port type of data_out, but this most likely can't work. You'll need a tristate driver interface. 

 

port map (data_in=>data, data_out=>data_o); data <= data_o when (enable_condition) else (others => 'z'); 

 

P.S.: If data_out is of the output type, and you simply want to override the inout character of data (permanently enable the output buffer), there may be technical problem of the Quartus compiler. In this case, try to insert a dummy signal between data_out and data. 

--- Quote End ---  

 

Thanks a lot! 

data_out is defined as 'output', I still confused that my project is no problem during Quartus 5.0 environment.I doubt that the version of Quartus 8.0 don't support some VHDL grammar anymore.
0 Kudos
Altera_Forum
Honored Contributor II
542 Views

Besides I am not familiar with VHDL, so I'm not sure 

port map( 

data<= data_o when (enable_condition) else (others=>'z') 

can be complied without errors or warnings. 

Thank you very much!
0 Kudos
Altera_Forum
Honored Contributor II
542 Views

you cant compile it directly into a port map.  

 

data<= data_o when (enable_condition) else (others=>'z') 

 

data would the the top level I/O, with data_o being a temporary signal inside the architecture. 

0 Kudos
Reply