ข้อจํากัดของผลลัพธ์ที่ปรับให้สอดคล้องกับ Edge-Source-Synchronous

author-image

โดย

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

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

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

  1. สร้างนาฬิกาพื้นฐานและที่สร้างขึ้น
  2. เพิ่มข้อจํากัดความล่าช้าของเอาต์พุต
  3. เพิ่มข้อยกเว้นพาธเท็จเพื่อแยกพาธที่ไม่ถูกต้องออกจากการวิเคราะห์และการรายงานเวลา

สําหรับรายละเอียดเพิ่มเติมเกี่ยวกับขั้นตอนเหล่านี้ หรือการคํานวณและข้อจํากัดที่อธิบายไว้ด้านล่าง โปรดดูข้อจํากัดและการวิเคราะห์ Source-Synchronous Interfaces (PDF)

นาฬิกา

ต้องระบุสัญญาณนาฬิกาฐานบนพอร์ตอินพุตของFPGA

ต้องระบุนาฬิกาที่สร้างขึ้นบนเอาต์พุตลูปแบบล็อกเฟส (PLL) ทั้งหมด เอาต์พุตซิงโครนัสที่จัดให้มีอัตราข้อมูลเป็นสองเท่าของ Edge จะปรับสัญญาณนาฬิกาเอาต์พุตให้สอดคล้องกับสัญญาณนาฬิกาข้อมูล

ต้องระบุนาฬิกาที่สร้างขึ้นบนพอร์ตนาฬิกาเอาต์พุตของFPGA นาฬิกาที่สร้างขึ้นคือข้อมูลอ้างอิงสัญญาณนาฬิกาสําหรับค่าความล่าช้าของเอาต์พุตสําหรับบัสข้อมูล

ข้อจํากัดความล่าช้าของเอาต์พุต

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

ค่าความล่าช้าสูงสุดของเอาต์พุตคือระยะเวลาสัญญาณนาฬิกา - ค่าการเบลอสูงสุด

ค่าความหน่วงต่ําสุดของเอาต์พุตคือค่าการเบลอสูงสุด

ข้อยกเว้นพาธเท็จ

ในตัวอย่างที่ Edge-aligned นี้ ข้อมูลจะถูกถ่ายโอนตามทรานซิชันที่เพิ่มขึ้นและลดลง และการเปลี่ยนผ่านของนาฬิกาปลายทาง ใช้ข้อยกเว้นพาธเท็จเพื่อลดการเปลี่ยนผ่านนาฬิกาที่เพิ่มขึ้นและลดลง เนื่องจากข้อมูลจะไม่ถูกถ่ายโอนในการเปลี่ยนผ่านนาฬิกาบนขอบตรงข้าม

ไฟล์ SDC ตัวอย่าง

# สร้างสัญญาณนาฬิกาฐานบนพอร์ตอินพุตของFPGA ด้วยระยะเวลา 10 ns
create_clock -name input_clock -period 10 [get_ports clk_in]

# สร้างสัญญาณนาฬิกาที่สร้างขึ้นบนเอาต์พุต PLL
# Output clk[0] จะขับเคลื่อนพอร์ต
สัญญาณนาฬิกาเอาต์พุต
create_generated_clock -name data_clock -source [get_pins pll|inclk[0]] \
[get_pins pll|clk[0]] create_generated_clock
-name clock_clock -source [get_pins pll|inclk[0] \
[get_pins pll|clk[1]]

# สร้างนาฬิกาที่สร้างขึ้นบนพอร์ตนาฬิกาเอาต์พุตของcreate_generated_clock FPGA
-name output_clock -source [get_pins pll|clk[1]] \
[get_ports clk_out]

# เพิ่มข้อจํากัดการหน่วงเวลาเอาต์พุตสูงสุดและต่ําสุด #
โดยที่ข้อกําหนดของความเร็วที่ +/- 250ps #
ใช้สมการสําหรับค่าหน่วงเวลาเอาต์พุตที่แสดงอยู่เหนือ
output_clock set_output_delay -max -clock [expr { 10 - 0.250 }] \
[get_ports data_out*]
set_output_delay -max -clock output_clock -clock_fall \
[expr { 10 - 0.250 }] [get_ports data_out*] -add
set_output_delay -min -output_clock 0.250 [get_ports data_out*] set_output_delay
-min -clock output_clock -clock_fall 0.250 \
[get_ports data_out*]

-add #เพิ่มข้อยกเว้นพาธเท็จสําหรับการถ่ายโอนข้ามนาฬิกา set_false_path
-setup -end -rise_from [get_clocks data_clock] \
-fall_to [get_clocks output_clock]
set_false_path -setup -end -fall_from [get_clocks data_clock] \
-rise_to [get_clocks output_clock]
set_false_path -hold -end -end -rise_from [get_clocks data_clock] \
-fall_to [get_clocks output_clock]
set_false_path -hold -end -fall_from [get_clocks data_clock] \
-rise_to [get_clocks output_clock]

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