อินพุตอินพุตต้นทางมีข้อจํากัดในลักษณะเดียวกันกับอินพุตอินพุตซิงโครนัสของระบบ FPGAจะได้รับสัญญาณนาฬิกาและใช้นาฬิกาดังกล่าวเพื่อแลกข้อมูลอินพุต ในส่วนต่อประสานซอร์สซิงโครนัสที่ปรับให้ชิดขอบ การเปลี่ยนนาฬิกาจะเกิดขึ้นในเวลาเดียวกันกับการเปลี่ยนข้อมูล รูปภาพที่ 1 แสดงอินเทอร์เฟซอินพุตซิงโครนัสแหล่งข้อมูลตัวอย่าง
ใช้ขั้นตอนต่อไปนี้เพื่อจํากัดการเชื่อมต่ออินพุตซอร์สซิงโครนัสที่ปรับให้สอดคล้องกับ Edge:
-
สร้างนาฬิกาเสมือน ฐาน และที่สร้างขึ้น
-
เพิ่มข้อจํากัดความล่าช้าในการป้อนข้อมูล
-
เพิ่มข้อยกเว้นพาธเท็จเพื่อแยกพาธที่ไม่ถูกต้องออกจากการวิเคราะห์และการรายงานเวลา
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับขั้นตอนเหล่านี้ หรือการคํานวณและข้อจํากัดที่อธิบายไว้ด้านล่าง โปรดดู href="/literature/an/an433.pdf">AN 433: ข้อจํากัดและการวิเคราะห์ Source-Synchronous Interfaces (PDF)
นาฬิกา
นาฬิกาเสมือนจําลองจะจําลองนาฬิกาในอุปกรณ์ภายนอกที่ขับเคลื่อนการลงทะเบียนข้อมูลเพื่อส่งข้อมูลไปยังFPGA
ต้องระบุสัญญาณนาฬิกาฐานบนพอร์ตอินพุตของFPGA สัญญาณนาฬิกาฐานจะบ่งบอกลักษณะของนาฬิกาที่สัญญาณนาฬิกาเข้าของFPGA
ต้องระบุนาฬิกาที่สร้างขึ้นบนเอาต์พุตลูปแบบล็อกเฟส (PLL) ทั้งหมด ในอินพุตอินพุตแบบ Source-aligned source-synchronous Interface PLL ต้องเปลี่ยนสัญญาณนาฬิกาที่ได้รับ 90 องศาเพื่อตอบสนองข้อกําหนดการจับเวลาภายในของการลงทะเบียนการจับข้อมูล
ข้อจํากัดการหน่วงเวลาการป้อนข้อมูล
คุณสามารถใช้ข้อมูลจําเพาะการเบลอสูงสุดเพื่อคํานวณค่าความล่าช้าของอินพุต ข้อมูลจําเพาะการเบลอสูงสุดจะบ่งบอกถึงความผันแปรของเวลาที่อนุญาตสําหรับบัสข้อมูลแต่ละบิตที่จะมาถึงที่FPGA
ค่าความหน่วงสูงสุดของอินพุตคือค่าการเบลอสูงสุด
ค่าความหน่วงต่ําสุดของอินพุตคือ -ค่าการเบี่ยงเบนสูงสุด
ข้อยกเว้นพาธเท็จ
ในตัวอย่างที่ Edge-aligned นี้ ข้อมูลจะถูกถ่ายโอนตามทรานซิชันที่เพิ่มขึ้นและลดลง และการเปลี่ยนผ่านของนาฬิกาปลายทาง ใช้ข้อยกเว้นพาธเท็จเพื่อลดการเปลี่ยนผ่านนาฬิกาที่เพิ่มขึ้นและลดลง เนื่องจากข้อมูลจะไม่ถูกถ่ายโอนในการเปลี่ยนผ่านนาฬิกาบนขอบตรงข้าม
ไฟล์ SDC ตัวอย่าง
# สร้างนาฬิกาเสมือนเพื่ออธิบายสัญญาณนาฬิกาข้อมูลใน # อุปกรณ์ภายนอก create_clock -name virt_clk -ระยะเวลา 10 # สร้างนาฬิกาพื้นฐานบนพอร์ตอินพุตของFPGA ด้วยระยะเวลา 10 ns create_clock -name input_clock -period 10 [get_ports clk_in] # สร้างนาฬิกาที่สร้างขึ้นบนเอาต์พุต PLL create_generated_clock -name data_clock -source [get_pins pll|inclk[0]] \ -phase 90 [get_pins pll|clk[0]] # เพิ่มค่าสูงสุด และข้อจํากัดการหน่วงเวลาอินพุตต่ําสุด # โดยสมมติให้มีข้อกําหนดแบบเบ็ดเสร็จ +/- 250ps # ใช้สมการสําหรับค่าหน่วงเวลาอินพุตที่แสดงรายการสูงกว่า set_input_delay -max -clock virt_clk 0.250 [get_ports data_in*] set_input_delay -min -clock virt_clk - 0.250 [get_ports data_in*] set_input_delay -max-clock virt_clk -clock_fall \ 0.250 [get_ports data_in*] -add set_input_delay -min -clock virt_clk -clock_fall \ -0.250 [get_ports data_in*] -add # เพิ่มข้อยกเว้นพาธเท็จสําหรับการโอนย้ายข้ามนาฬิกา set_false_path -setup -end -rise_from [get_clocks virt_clk] \ -fall_to [get_clocks data_clock] set_false_path -setup -end -fall_from [get_clocks virt_clk] \ -rise_to [get_clocks data_clock] set_false_path -hold -end -rise_from [get_clocks virt_clk] \ -rise_to [get_clocks data_clock] set_false_path -hold-end -fall_from [get_clocks virt_clk] \ -fall_to [get_clocks data_clock]