เนื่องจากปัญหาในซอฟต์แวร์ Quartus® II คุณอาจเห็นข้อผิดพลาดภายในนี้หากรหัส VHDL ของคุณอนุมานหน่วยความจําสองพอร์ตผสมความกว้างสองสัญญาณนาฬิกากับกระบวนการสําหรับพอร์ตที่กว้างขึ้นก่อนกระบวนการสําหรับพอร์ตที่แคบลง
ตัวอย่างเช่น:
portA_p : PROCESS (clk)
BEGIN
IF (rising_edge(clk)) THEN
IF we_a = '1' THEN
-- Write access
ram(addr_a / 2)(addr_a mod 2) := data_a;
-- Read during write on the same port returns NEW data
q_a <= data_a;
ELSE
-- Read returns OLD data
q_a <= ram(addr_a / 2)(addr_a mod 2);
END IF;
END IF;
END PROCESS portA_p;
portB_p : PROCESS (clk)
BEGIN
IF (rising_edge(clk)) THEN
IF we_b = '1' THEN
ram(addr_b) := data_b;
-- Read during write on the same port returns NEW data
q_b <= data_b;
ELSE
-- Read returns OLD data
q_b <= ram(addr_b);
END IF;
END IF;
END PROCESS portB_p;
เพื่อแก้ไขปัญหานี้ ให้ย้อนกลับลําดับของกระบวนการเพื่อให้กระบวนการสําหรับพอร์ตที่กว้างขึ้นปรากฏขึ้นก่อน
ปัญหานี้มีกําหนดเวลาให้แก้ไขในซอฟต์แวร์ Quartus II ในอนาคต