4
ข้อ จำกัด เรื่องเวลาสำหรับวงจรซิงโครไนซ์บัส
ฉันเป็นวงจรซิงโครไนซ์บัสเพื่อส่งต่อการลงทะเบียนทั่วโดเมนนาฬิกา ฉันจะให้คำอธิบายที่ง่ายขึ้นโดยไม่ใช้ตรรกะการรีเซ็ตแบบอะซิงโครนัส ข้อมูลถูกสร้างขึ้นในหนึ่งนาฬิกา การอัพเดตมีขอบเขตนาฬิกา (อย่างน้อยหนึ่งโหล) เป็นจำนวนมาก: PROCESS (src_clk) BEGIN IF RISING_EDGE(clock) THEN IF computation_done THEN data <= computation; ready_spin <= NOT ready_spin; END IF; END IF; END PROCESS; สัญญาณควบคุมสำหรับข้อมูลใหม่ซึ่งเข้ารหัส NRZI (ดังนั้นคำที่ถูกต้องบนบัสจะสอดคล้องกับการเปลี่ยนสัญญาณควบคุม) สัญญาณควบคุมผ่านสายโซ่ DFF ซึ่งทำหน้าที่เป็นซิงโครไนซ์ PROCESS (dest_clk) BEGIN IF RISING_EDGE(dest_clk) THEN ready_spin_q3 <= ready_spin_q2; ready_spin_q2 <= ready_spin_q1; ready_spin_q1 <= ready_spin; END …