ข้อจํากัดของการป้อนข้อมูลที่ปรับให้สอดคล้องกับ Edge-Source-Synchronous

author-image

โดย

อินพุตอินพุตต้นทางมีข้อจํากัดในลักษณะเดียวกันกับอินพุตอินพุตซิงโครนัสของระบบ FPGAจะได้รับสัญญาณนาฬิกาและใช้นาฬิกาดังกล่าวเพื่อแลกข้อมูลอินพุต ในส่วนต่อประสานซอร์สซิงโครนัสที่ปรับให้ชิดขอบ การเปลี่ยนนาฬิกาจะเกิดขึ้นในเวลาเดียวกันกับการเปลี่ยนข้อมูล รูปภาพที่ 1 แสดงอินเทอร์เฟซอินพุตซิงโครนัสแหล่งข้อมูลตัวอย่าง

รูปภาพที่ 1 อินพุตอินพุตต้นทางซิงโครนัส

ใช้ขั้นตอนต่อไปนี้เพื่อจํากัดการเชื่อมต่ออินพุตซอร์สซิงโครนัสที่ปรับให้สอดคล้องกับ Edge:

  1. สร้างนาฬิกาเสมือน ฐาน และที่สร้างขึ้น

  2. เพิ่มข้อจํากัดความล่าช้าในการป้อนข้อมูล

  3. เพิ่มข้อยกเว้นพาธเท็จเพื่อแยกพาธที่ไม่ถูกต้องออกจากการวิเคราะห์และการรายงานเวลา

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับขั้นตอนเหล่านี้ หรือการคํานวณและข้อจํากัดที่อธิบายไว้ด้านล่าง โปรดดู 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]

เนื้อหาในหน้านี้เป็นการผสมผสานระหว่างการแปลเนื้อหาต้นฉบับภาษาอังกฤษโดยมนุษย์และคอมพิวเตอร์ เนื้อหานี้จัดทำขึ้นเพื่อความสะดวกของคุณและเพื่อเป็นข้อมูลทั่วไปเท่านั้นและไม่ควรอ้างอิงว่าสมบูรณ์หรือถูกต้อง หากมีความขัดแย้งใด ๆ ระหว่างเวอร์ชันภาษาอังกฤษของหน้านี้กับคำแปล เวอร์ชันภาษาอังกฤษจะมีผลเหนือกว่าและควบคุม ดูเวอร์ชันภาษาอังกฤษของหน้านี้