เนื่องจากปัญหาในซอฟต์แวร์ Intel® Quartus® Prime Pro Edition หากคุณสร้างเมกะคอร์ IP ที่มี VHDL ถูกเลือก ไว้ คุณอาจพบข้อผิดพลาดเหล่านี้เมื่อคอมไพล์สําหรับการจําลอง:
# ** ข้อผิดพลาด: ..vhd: (vcom-1133) Type ที่ไม่ตรงกันที่พบในพอร์ต "
# ในส่วนประกอบ "ส่วนประกอบ " ประเภทพอร์ตคือ "ieee.std_logic_1164.STD_LOGIC"
# ในนิติบุคคล "" ประเภทพอร์ตคือ "ieee.std_logic_1164.STD_LOGIC_VECTOR"
ในการหลีกเลี่ยงปัญหานี้ คุณต้องแก้ไข RTL ที่สร้างขึ้นและจับคู่ประเภทข้อมูลทั้งในอินสแตนซ์สูงสุดและเทสเบนช์
ตัวอย่างเช่น สําหรับโมดูลที่ชื่อ "FP_TEST" คุณจะทําสิ่งต่อไปนี้:
ทําการเปลี่ยนแปลงต่อไปนี้ใน tb_tb.vhd
จาก:
RTL ของสถาปัตยกรรม FP_TEST_tb คือ
FP_TEST ส่วนประกอบคือ
พอร์ต (
a : in std_logic_vector(63 downto 0) := (อื่นๆ => 'X'); -- a
areset : ใน std_logic := 'X'; --รี เซ็ต
b : in std_logic_vector(63 downto 0) := (อื่นๆ => 'X'); --B
clk : ใน std_logic := 'X' -- clk
opSel : ใน std_logic := 'X'; -- opSel
q : out std_logic_vector(63 downto 0) -- q
);
FP_TEST ส่วนประกอบปลายทาง
...
fp_test_inst : FP_TEST ส่วนประกอบ
แผนผังพอร์ต (
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
);
ถึง:
RTL ของสถาปัตยกรรม FP_TEST_tb คือ
FP_TEST ส่วนประกอบคือ
พอร์ต (
a : in std_logic_vector(63 downto 0) := (อื่นๆ => 'X'); -- a
areset : ใน std_logic := 'X'; --รี เซ็ต
b : in std_logic_vector(63 downto 0) := (อื่นๆ => 'X'); --B
clk : ใน std_logic := 'X' -- clk
opSel : ใน std_logic_vector(0 downto 0) := (อื่นๆ => 'X'); -- opSel
q : out std_logic_vector(63 downto 0) -- q
);
FP_TEST ส่วนประกอบปลายทาง
fp_test_inst : FP_TEST ส่วนประกอบ
แผนผังพอร์ต (
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
);
และทําการเปลี่ยนแปลงต่อไปนี้ในโมดูล .vhd
จาก:
FP_TEST ขององค์กรคือ
พอร์ต (
a : in std_logic_vector(63 downto 0) := (อื่นๆ => '0'); -- a.a
areset : ใน std_logic := '0' -- areset.reset
b : in std_logic_vector(63 downto 0) := (อื่นๆ => '0'); -- b.b
clk : ใน std_logic := '0' -- clk.clk
opSel : ใน std_logic := '0' -- opSel.opSel
q : out std_logic_vector(63 downto 0) -- q.q
);
FP_TEST ขององค์กรปลายทาง
rtl ของสถาปัตยกรรม FP_TEST คือ
FP_TEST_altera_fp_functions_160_xhvb5va ส่วนประกอบคือ
พอร์ต (
clk : ใน std_logic := 'X' -- clk
areset : ใน std_logic := 'X'; --รี เซ็ต
a : in std_logic_vector(63 downto 0) := (อื่นๆ => 'X'); -- a
b : in std_logic_vector(63 downto 0) := (อื่นๆ => 'X'); --B
Q : out std_logic_vector(63 downto 0); --Q
opSel : ใน std_logic := 'X' -- opSel
);
FP_TEST_altera_fp_functions_160_xhvb5va ส่วนประกอบปลายทาง
ถึง:
FP_TEST ขององค์กรคือ
พอร์ต (
a : in std_logic_vector(63 downto 0) := (อื่นๆ => '0'); -- a.a
areset : ใน std_logic := '0' -- areset.reset
b : in std_logic_vector(63 downto 0) := (อื่นๆ => '0'); -- b.b
clk : ใน std_logic := '0' -- clk.clk
opSel : ใน std_logic_vector(0 downto 0) := (อื่นๆ => '0'); -- opSel.opSel
q : out std_logic_vector(63 downto 0) -- q.q
);
FP_TEST ขององค์กรปลายทาง
rtl ของสถาปัตยกรรม FP_TEST คือ
FP_TEST_altera_fp_functions_160_xhvb5va ส่วนประกอบคือ
พอร์ต (
clk : ใน std_logic := 'X' -- clk
areset : ใน std_logic := 'X'; --รี เซ็ต
a : in std_logic_vector(63 downto 0) := (อื่นๆ => 'X'); -- a
b : in std_logic_vector(63 downto 0) := (อื่นๆ => 'X'); --B
Q : out std_logic_vector(63 downto 0); --Q
opSel : ใน std_logic_vector(0 downto 0) := (คนอื่นๆ => 'X') -- opSel
);
FP_TEST_altera_fp_functions_160_xhvb5va ส่วนประกอบปลายทาง
มีกําหนดที่จะแก้ไขในซอฟต์แวร์ Intel® Quartus® Prime รุ่นใหม่ในอนาคต