En raison d’un problème dans le logiciel Intel® Quartus® Prime Pro Edition, si vous générez un mégacore IP avec VHDL sélectionné, vous pouvez rencontrer ces erreurs lors de la compilation pour la simulation :
# ** Erreur : ..vhd< votre numéro de ligne> : (vcom-1133) Type de décalage trouvé sur le port < votre port> ».
# Dans le composant « », le type de port est « ieee.std_logic_1164.STD_LOGIC ».
# Dans l’entité « < votre entité de niveau inférieur> », le type de port est « ieee.std_logic_1164.STD_LOGIC_VECTOR ».
Pour contourner ce problème, vous devez modifier le RTL généré et correspondre aux types de données dans l’instance supérieure et le testbench.
Par exemple, pour un module appelé « FP_TEST », vous procédez comme suit :
Apporter les modifications suivantes à _tb.vhd
De:
architecture rtl de FP_TEST_tb est
FP_TEST composants est
port (
a : dans std_logic_vector (63 downto 0) := (autres = > « X ») ; --Un
areset : in std_logic := « X » ; --Réinitialiser
b : dans std_logic_vector (63 downto 0) := (autres = > « X ») ; --B
lk : dans std_logic := « X » ; --Clk
opSel : en std_logic : = « X » ; -- opSel
q : hors std_logic_vector (63 downto 0) -- q
);
FP_TEST des composants finux ;
...
fp_test_inst : FP_TEST composant
carte de port (
a => fp_test_inst_a_bfm_conduit_a, -- a.a
areset => fp_test_inst_areset_bfm_reset_reset, -- areset.reset
b => fp_test_inst_b_bfm_conduit_b, -- b.b
clk => fp_test_inst_clk_bfm_clk_clk, -- clk.clk
opSel => fp_test_inst_opsel_bfm_conduit_opsel(0), -- opSel.opSel
q => fp_test_inst_q_q -- q.q
);
À:
architecture rtl de FP_TEST_tb est
FP_TEST composants est
port (
a : dans std_logic_vector (63 downto 0) := (autres = > « X ») ; --Un
areset : in std_logic := « X » ; --Réinitialiser
b : dans std_logic_vector (63 downto 0) := (autres = > « X ») ; --B
lk : dans std_logic := « X » ; --Clk
opSel : en std_logic_vector (0 downto 0) := (autres => « X ») ; -- opSel
q : hors std_logic_vector (63 downto 0) -- q
);
FP_TEST des composants finux ;
fp_test_inst : FP_TEST composant
carte de port (
a => fp_test_inst_a_bfm_conduit_a, -- a.a
areset => fp_test_inst_areset_bfm_reset_reset, -- areset.reset
b => fp_test_inst_b_bfm_conduit_b, -- b.b
clk => fp_test_inst_clk_bfm_clk_clk, -- clk.clk
opSel => fp_test_inst_opsel_bfm_conduit_opsel, -- opSel.opSel
q => fp_test_inst_q_q -- q.q
);
Et effectuez les modifications suivantes dans < votre module>.vhd
De:
entité FP_TEST est
port (
a : dans std_logic_vector (63 downto 0) : = (autres = > « 0 » ; --Aa
areset : in std_logic := « 0 » ; -- areset.reset
b : dans std_logic_vector (63 downto 0) := (autres => '0') ; --B.b
lk : en std_logic : = « 0 » ; - clk.clk
opSel : en std_logic : = « 0 » ; -- opSel.opSel
q : out std_logic_vector(63 downto 0) -- q.q
);
FP_TEST d’entité finale ;
architecture rtl de FP_TEST est
FP_TEST_altera_fp_functions_160_xhvb5va composant est
port (
lk : dans std_logic := « X » ; --Clk
areset : in std_logic := « X » ; --Réinitialiser
a : dans std_logic_vector (63 downto 0) := (autres = > « X ») ; --Un
b : dans std_logic_vector (63 downto 0) := (autres = > « X ») ; --B
q : std_logic_vector (63 downto 0) ; --Q
opSel : en std_logic := « X » - opSel
);
FP_TEST_altera_fp_functions_160_xhvb5va des composants finux ;
À:
entité FP_TEST est
port (
a : dans std_logic_vector (63 downto 0) : = (autres = > « 0 » ; --Aa
areset : in std_logic := « 0 » ; -- areset.reset
b : dans std_logic_vector (63 downto 0) := (autres => '0') ; --B.b
lk : en std_logic : = « 0 » ; - clk.clk
opSel : en std_logic_vector (0 downto 0) := (autres = > « 0 ») ; -- opSel.opSel
q : out std_logic_vector(63 downto 0) -- q.q
);
FP_TEST d’entité finale ;
architecture rtl de FP_TEST est
FP_TEST_altera_fp_functions_160_xhvb5va composant est
port (
lk : dans std_logic := « X » ; --Clk
areset : in std_logic := « X » ; --Réinitialiser
a : dans std_logic_vector (63 downto 0) := (autres = > « X ») ; --Un
b : dans std_logic_vector (63 downto 0) := (autres = > « X ») ; --B
q : std_logic_vector (63 downto 0) ; --Q
opSel : in std_logic_vector(0 downto 0) := (autres => « X ») -- opSel
);
FP_TEST_altera_fp_functions_160_xhvb5va des composants finux ;
Cette date devrait être corrigée dans une prochaine version du logiciel Intel® Quartus® Prime.