เมื่อใช้Intel® FPGA IP Parallel Flash Loader จะมีคําอธิบายข้อจํากัดด้านเวลาสําหรับfpga_dataและfpga_dclkซึ่งเป็นการจํากัดเวลา PFL ในคู่มือผู้ใช้ Core Intel® FPGA IP Flash Loader แบบขนาน อย่างไรก็ตาม ข้อจํากัดในเวอร์ชันเอกสาร 2019.02.19 และก่อนหน้าไม่ถูกต้อง
หากต้องการจํากัดการกําหนดเวลาfpga_dataและfpga_dclkอย่างถูกต้อง ให้ใช้ข้อจํากัดด้านเวลาต่อไปนี้ ตามอัตราส่วนระหว่างสัญญาณนาฬิกาอินพุตและเอาต์พุต DCLK
[ เมื่ออัตราส่วนระหว่างสัญญาณนาฬิกาอินพุตและเอาต์พุต DCLK = 1 ]
# สร้างนาฬิกา
create_clock -name {pfl_clk} -period -waveform { 0.000 /2 } [get_ports {pfl_clk}]
# สร้างนาฬิกา
create_generated_clock -name {fpga_dclk} -source [get_ports {pfl_clk}] -master_clock {pfl_clk} -invert [get_ports {fpga_dclk}]
# ตั้งค่าความล่าช้าของเอาต์พุต
ข้อจํากัดด้านเวลา set_output_delay -add_delay -max -clock [get_clocks {fpga_dclk}] time [get_ports {fpga_data*}]
ข้อจํากัดด้านเวลาset_output_delay -add_delay -min [get_clocks {fpga_dclk}] [get_ports {fpga_data*}]
[ เมื่ออัตราส่วนระหว่างสัญญาณนาฬิกาอินพุตและเอาต์พุต DCLK > 1 ]
# สร้างนาฬิกา
create_clock -name {pfl_clk} -period -waveform { 0.000 /2 } [get_ports {pfl_clk}]
# สร้างนาฬิกา
create_generated_clock -name {} -source [get_ports {pfl_clk}] -divide_by -master_clock {pfl_clk} [get_registers {} ]
create_generated_clock -name {} -source [get_registers {}] -master_clock {} [get_ports {fpga_dclk}]
# ตั้งค่าความล่าช้าของเอาต์พุต
set_output_delay -add_delay -max -clock [get_clocks {}] -reference_pin [get_ports {fpga_dclk}] ข้อจํากัดด้านเวลา [get_ports {fpga_data*}]
set_output_delay -add_delay -min -clock [get_clocks {}] -reference_pin [get_ports {fpga_dclk}] ข้อจํากัดด้านเวลา<> [get_ports {fpga_data*}]
# ตั้งพาธมัลติวงจร
set_multicycle_path -setup -start -from [get_clocks {pfl_clk}] -ไปยัง [get_clocks {}] < Ratio ระหว่างสัญญาณนาฬิกาอินพุตและเอาต์พุต DCLK>/2
set_multicycle_path -hold -start -from [get_clocks {pfl_clk}] -ไปยัง [get_clocks {}] -1
• ในตัวอย่างนี้ จะใช้ชื่อพอร์ต PFL Intel FPGA IP Core
• การลงทะเบียน DCLK เป็นการลงทะเบียนเพื่อแบ่งpfl_clk ชื่อการลงทะเบียนมักจะเป็น "fpga_dclk_reg" คุณสามารถค้นหาการลงทะเบียนได้โดยติดตามปลายทางต้นทางจากพอร์ต fpga_dclk โดยใช้เครื่องมือ Technology Map Viewer
• Intel แนะนําให้ใช้ Timing Analyzer GUI เพื่อตรวจสอบข้อจํากัด
[ตัวอย่าง]
• สภาพ
o ระยะเวลาpfl_clk = 20ns (50MHz)
o อัตราส่วนระหว่างสัญญาณนาฬิกาอินพุตและเอาต์พุต DCLK = 2
• ข้อจํากัดด้านเวลา
# สร้างนาฬิกา
create_clock -name {pfl_clk} -period 20.000 -waveform { 0.000 10.000 } [get_ports {pfl_clk}]
# สร้างนาฬิกา
create_generated_clock -name {fpga_dclk_gen} -source [get_ports {pfl_clk}] -divide_by 2 -master_clock {pfl_clk} [get_registers {pfl:inst|altparallel_flash_loader:altparallel_flash_loader_component|alt_pfl:\PFL_CFI:pfl_cfi_inst|alt_pfl_cfg3:\CFG3:cfg|alt_pfl_cfg_fpga:alt_pfl_cfg_fpga|fpga_dclk_reg}]
create_generated_clock -name {fpga_dclk_pin} -source [get_registers {pfl_top:pfl_top_inst|altera_parallel_flash_loader:parallel_flash_loader_0|altparallel_flash_loader:altparallel_flash_loader_component|alt_pfl:\PFL_CFI:pfl_cfi_inst|alt_pfl_cfg3:\CFG3:cfg|alt_pfl_cfg_fpga:alt_pfl_cfg_fpga|fpga_dclk_reg}] -master_clock {fpga_dclk_gen} [get_ports {fpga_dclk}]
# ตั้งค่าความล่าช้าของเอาต์พุต
set_output_delay -add_delay -max -clock [get_clocks {fpga_dclk_gen}] -reference_pin [get_ports {fpga_dclk}] 5.500 [get_ports {fpga_data*}]
set_output_delay -add_delay -min -clock [get_clocks {fpga_dclk_gen}] -reference_pin [get_ports {fpga_dclk}] -1.000 [get_ports {fpga_data*}]
# ตั้งพาธมัลติวงจร
set_multicycle_path -setup -start -from [get_clocks {pfl_clk}] -ไปยัง [get_clocks {fpga_dclk_pin}] 1
set_multicycle_path -hold -start -from [get_clocks {pfl_clk}] -ไปยัง [get_clocks {fpga_dclk_pin}] 1