เอาต์พุตซิงโครนัสที่ปรับให้ตรงกลางตรงกลาง

author-image

โดย

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

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

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

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

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

นาฬิกา

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

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

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

ค่าความหน่วงสูงสุดของเอาต์พุตคือ (หน่วยที่ใช้/ 2) -ค่าการเบี่ยงเบนสูงสุด

ค่าความหน่วงต่ําสุดของเอาต์พุตคือ ค่าการเบี่ยงเบนสูงสุด - (1.5 * หน่วยที่จ่าย)

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

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

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


# Create a base clock on the input port of the FPGA, with a 10 ns period
create_clock -name input_clock -period 10 [get_ports clk_in]

# Create generated clocks on the PLL outputs
# Output clk[0] drives the data register
# Output clk[1] drives the output clock port with a 90 degree shift
create_generated_clock -name data_clock -source [get_pins pll|inclk[0]] \
[get_pins pll|clk[0]]
create_generated_clock -name clock_clock -phase 90 -source [get_pins pll|inclk[0] \
[get_pins pll|clk[1]]

# Create the generated clock on the output clock port of the FPGA
create_generated_clock -name output_clock -source [get_pins pll|clk[1]] \
[get_ports clk_out]

# Add maximum and minimum output delay constraints
# assuming a skew requirement of +/- 250ps
# Use the equations for the output delay values listed above
set_output_delay -max -clock output_clock [expr { (5 / 2) - 0.250 }] \
[get_ports data_out*]
set_output_delay -max -clock output_clock -clock_fall \
[expr { (5 / 2) - 0.250 }] [get_ports data_out*] -add
set_output_delay -min -clock output_clock [expr { (0.250 - (1.5 * 5) }] \
[get_ports data_out*]
set_output_delay -min -clock output_clock -clock_fall \
[expr { (0.250 - ( 1.5 * 5 ) }] [get_ports data_out*] -add

# Add false path exceptions for cross-clock transfers
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 -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]

 

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