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

MODELSIM error vsim-3807

Altera_Forum
Honored Contributor II
2,855 Views

Hi folks, 

 

I have recently encountered a problem which I have not seen before, even though I am following the same design/synth/sim flow as I usually do. Basically, when I go to RTL simulate in MODELSIM i get the VSIM-3807 error, on closer inspection it says I have type mismatch in one of my VHDL files. 

 

The VHDL file i have created has the following declarations: 

 

library IEEE; 

use IEEE.STD_LOGIC_1164.ALL; 

use IEEE.NUMERIC_STD.ALL; 

 

and I only use UNSIGNED and no STD_LOGIC_VECTORS although i do use STD_LOGIC. 

 

I have various megafunctions as well as a BSF file created from my own vhdl file all connected in a BDF. i then create a vhdl file from this BDF and include in the project and set as top level entity (the BDF file is not included in the project). And then I compile. 

 

When I examine the created vhd file against the errors shown in MODELSIM, i can see that the component port declarations used are STD_LOGIC_VECTOR even though in my original VHDL file they were defined as UNSIGNED.  

The declarations at the top of the vhd file created from my BDF does not include the IEEE.NUMERIC_STD.ALL; 

 

I don't understand why this type mismatch has occurred. 

 

Can anyone give me some hints please 

 

Many thanks in advance 

deBoogle
0 Kudos
3 Replies
Altera_Forum
Honored Contributor II
1,775 Views

when you convert from BSF to vhd it will make everything a std_logic/std_logic_vector, so any connections you will have to ensure there is an appropriate type conversion. 

 

Its one of the reasons why using the Quartus graphical editor is generally a bit rubbish.
0 Kudos
Altera_Forum
Honored Contributor II
1,775 Views

So we meet again Sir,  

 

i quite agree that the graphical editor is less than ideal. What I dont understand is that I have never come across this before? I have been using this design method for 2 years or so and this is the first time it has raised its ugly head. I wondered if there is some way to tell quartus to use a specific library and type when it converts the BDF to a vhd. But I couldnt find any info out there to do this... 

 

thanks for your help. 

deBoogle
0 Kudos
Altera_Forum
Honored Contributor II
1,775 Views

Theres two ways of converting: 

 

vhd -> bdf - accepts integers, std_logic_vectors and integer on ports (I think) 

bdf -> vhd - will assume everything is a std_logic_vector (or if you have a 2d array, it will use the custon std_logic_2d_array_t, so best avoided) 

 

There is no way to tell quartus to use any specific libraries. If you want to do anything other than the above, I suggest writing the code in VHDL (which is much better for version control and tool migration anyway!)
0 Kudos
Reply