อินพุตอินพุตต้นทางมีข้อจํากัดในลักษณะเดียวกันกับอินพุตอินพุตซิงโครนัสของระบบ FPGAจะได้รับสัญญาณนาฬิกาและใช้นาฬิกาดังกล่าวเพื่อแลกข้อมูลอินพุต ในอินเทอร์เฟซที่ซิงโครนัสต้นทางที่จัดชิดกึ่งกลาง การเปลี่ยนนาฬิกาจะเกิดขึ้นตรงกลางของหน้าต่างข้อมูลที่ถูกต้อง รูปภาพที่ 1 แสดงอินเทอร์เฟซอินพุตซิงโครนัสแหล่งข้อมูลตัวอย่าง
ใช้ขั้นตอนต่อไปนี้เพื่อจํากัดอินพุตอินพุตซอร์สซิงโครนัสตรงกลาง:
- สร้างนาฬิกาเสมือน ฐาน และที่สร้างขึ้น
- เพิ่มข้อจํากัดความล่าช้าในการป้อนข้อมูล
- เพิ่มข้อยกเว้นพาธเท็จเพื่อแยกพาธที่ไม่ถูกต้องออกจากการวิเคราะห์และการรายงานเวลา
433: อินเทอร์เฟซการซิงค์กับแหล่งข้อมูลของการวิเคราะห์ (PDF)สําหรับส่วนติดต่อผู้ใช้ ( PDF)
นาฬิกา
นาฬิกาเสมือนจําลองจะจําลองนาฬิกาในอุปกรณ์ภายนอกที่ขับเคลื่อนการลงทะเบียนข้อมูลเพื่อส่งข้อมูลไปยังFPGA
ต้องระบุสัญญาณนาฬิกาฐานบนพอร์ตอินพุตของFPGA สัญญาณนาฬิกาฐานจะบ่งบอกลักษณะของนาฬิกาที่สัญญาณนาฬิกาเข้าของFPGA หากสัญญาณนาฬิกาอินพุตสอดคล้องกับข้อมูล คุณต้องใช้ตัวเลือก -waveform เพื่อระบุขอบนาฬิกาที่เพิ่มขึ้นและลดลงซึ่งสอดคล้องกับกะเฟสนาฬิกา
ต้องระบุนาฬิกาที่สร้างขึ้นบนเอาต์พุตลูปแบบล็อกเฟส (PLL) ทั้งหมด
ข้อจํากัดการหน่วงเวลาการป้อนข้อมูล
คุณสามารถใช้ข้อมูลจําเพาะการเบลอสูงสุดเพื่อคํานวณค่าความล่าช้าของอินพุต ข้อมูลจําเพาะการเบลอสูงสุดจะบ่งบอกถึงความผันแปรของเวลาที่อนุญาตสําหรับบัสข้อมูลแต่ละบิตที่จะมาถึงที่FPGA
ค่าความหน่วงสูงสุดของอินพุตคือค่าการเบลอสูงสุด
ค่าความหน่วงต่ําสุดของอินพุตคือ -ค่าการเบี่ยงเบนสูงสุด
ข้อยกเว้นพาธเท็จ
ในตัวอย่างที่จัดไว้ตรงกลางนี้ ข้อมูลจะถูกถ่ายโอนไปยังต้นทางที่เพิ่มขึ้นและลดลงและการเปลี่ยนผ่านของนาฬิกาปลายทาง ใช้ข้อยกเว้นพาธเท็จเพื่อลดการเปลี่ยนผ่านนาฬิกาที่เพิ่มขึ้นและลดลง เนื่องจากข้อมูลจะไม่ถูกถ่ายโอนในการเปลี่ยนผ่านนาฬิกาบนขอบตรงข้าม
SDC เสียก่อน
# create_clock Virt_clk virt_clk virt_clk FPGAใหม่ # FPGA FPGA 10 # จํานวน a input_clock create_clock 54555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 -waveform { 2.5 7.5 } [get_ports clk_in] # Get_pins pll create_generated_clock -name data_clock -source [get_pins pll|inclk[0]] \ [get_pins pll|clk[0]] # เพิ่มจํานวนเอฟเวอร์จิ้นสูงสุดและต่ําสุดของเอนจินทรานซิเบิลทวิตซ์ทวิตชิ่งทรานซิเบิล สําหรับอุปกรณ์ทั้งหมด set_input_delay [get_ports data_in*] set_input_delay -min -clock virt_clk 0.250 [get_ports data_in*] set_input_delay -min -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 fall_to set_false_path -setup -end -rise_from [get_clocks virt_clk get_clocks data_clock] set_false_path -end -end -fall_from [get_clocks virt_clk] \ -fall_to 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]