ซีพียู FPGA, วิธีหาความเร็วสูงสุด?


14

ฉันเพิ่งเข้าสู่ FPGA และถ้าฉันเข้าใจถูกต้องคุณกำลังเชื่อมต่อประตูตรรกะเข้าด้วยกันโดยใช้รหัส ดังนั้นถ้าฉันออกแบบซีพียูใน Verilog มันควรเชื่อมต่อลอจิกเกตบางส่วนเข้าด้วยกันและทำงาน แต่ฉันจะรู้ได้อย่างไรว่าซีพียู DIY ของฉันสามารถทำงานได้เร็วแค่ไหน? มันขึ้นอยู่กับอะไร?


12
@ KingDuken ฉันอยากรู้เกี่ยวกับทางเลือกของ Verilog สำหรับการออกแบบ CPU ที่คุณนึกไว้ (ไม่ใช่ VHDL ฉันเข้าใจ :))?
ยูจีน Sh.

1
@ KingDuken นั่นไม่ใช่ปัญหาที่ฉันมีฉันได้สร้างซีพียูของฉันแล้วและมันเป็นสถาปัตยกรรมบนเขียงหั่นขนมและต้องการที่จะส่งไปยัง FPGA คำถามของฉันคือฉันจะคำนวณนาฬิกาความถี่สูงสุดสำหรับ CPU ของฉันได้อย่างไร จำกัด อะไรบ้าง

4
คุณอาจต้องการ google "การวิเคราะห์เวลาแบบคงที่"
The Photon

14
@ KingDuken ในฐานะคนที่ออกแบบ CPU สองตัวมันไม่ได้ใช้เวลานานขนาดนั้น คุณสามารถมีโปรเซสเซอร์ที่ใช้งานได้ใน 1-2 เดือนถ้าคุณรู้ว่าคุณกำลังทำอะไรอยู่
user110971

2
@KingDuken ความจริงแล้วสนุก: Sun / Oracle ได้เผยแพร่ซอร์สโค้ด Verilog ไปยังโปรเซสเซอร์ UltraSPARC T1 และ T2 ของพวกเขา ฉันบังเอิญเห็นคนหลายคนและพวกเขาทำงานทั้งหมด FYI พวกเขายังชนะรางวัล SPECint_rate2006! : D แสดงให้เห็นอย่างชัดเจนว่าเป็นไปไม่ได้ที่จะออกแบบ CPU ใน Verilog หรือ HDL อื่น ๆ ฉันได้ทำเพื่อตัวเองสองสามครั้งเป็นงานอดิเรกและมันก็เป็นไปไม่ได้เลยจริงๆ (เมื่อคุณทำเช่นนั้น)
Richard the Spacecat

คำตอบ:


29

ความเร็วของการออกแบบนั้นถูก จำกัด ด้วยหลายสิ่ง ที่ใหญ่ที่สุดมักจะเป็นความล่าช้าในการขยายพันธุ์ผ่านตรรกะรวมกันในการออกแบบของคุณเรียกว่าเส้นทางที่สำคัญ หากคุณใช้ FPGA ที่รวดเร็วและเขียน HDL ของคุณอย่างระมัดระวังคุณอาจตี 700 MHz ในสิ่งที่ต้องการ Virtex Ultrascale + สำหรับ FPGA ที่ต่ำกว่าเช่น Spartan 6 ตัวเลขที่สมเหตุสมผลอาจมากกว่า 250 MHz สิ่งนี้ต้องมีการวางท่อทุกที่เพื่อให้คุณมีจำนวนตรรกะขั้นต่ำที่แน่นอนที่สุดระหว่างส่วนประกอบที่เป็นลอจิคัล (ลดระดับตรรกะ), พัดลมต่ำ (ลดการโหลดองค์ประกอบตรรกะ) และไม่มีรังหนูติดขัด (เส้นทางเส้นทางที่มีประสิทธิภาพ)

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

เมื่อทำ Toolchain ทำงานเพื่อกำหนดความเร็วสัญญาณนาฬิกาสูงสุดโปรดจำไว้ว่าเครื่องมือนั้นขับเคลื่อนด้วยการกำหนดเวลา: พวกเขาจะพยายามทำตามข้อ จำกัด ด้านเวลาที่กำหนด หากไม่มีการระบุข้อ จำกัด ด้านเวลาผลลัพธ์อาจไม่ดีนักเนื่องจากเครื่องมือจะไม่พยายามปรับการออกแบบให้มีความเร็วสูงสุด โดยทั่วไปเครื่องมือจะต้องทำงานหลายครั้งโดยมีข้อ จำกัด ช่วงเวลาของนาฬิกาที่แตกต่างกันเพื่อค้นหาความถี่สัญญาณนาฬิกาที่ทำได้สูงสุด

หากคุณสามารถเพิ่มประสิทธิภาพการออกแบบของคุณเพื่อให้เส้นทางที่สำคัญไม่ได้ จำกัด คุณจะพบข้อ จำกัด ในการสร้างและการกระจายสัญญาณนาฬิกา (PLLs, DCMs, บัฟเฟอร์ของนาฬิกาและมุ้งนาฬิกาทั่วโลก) ข้อ จำกัด เหล่านี้สามารถพบได้ในเอกสารข้อมูลชิ้นส่วน แต่การเข้าใกล้มันด้วยการออกแบบที่ไม่สำคัญนั้นเป็นเรื่องยาก ฉันใช้งาน Virtex Ultrascale ที่ความเร็ว 500 MHz แต่นี่เป็นเพียงตัวนับจำนวนหนึ่งเท่านั้นที่จะส่งสัญญาณกระตุ้นให้ส่วนประกอบอื่น ๆ


22

คุณสังเคราะห์การออกแบบของคุณในเทคโนโลยีเป้าหมาย (FPGA เฉพาะ) และให้เครื่องมือวิเคราะห์การกำหนดเวลาแบบสแตติกบอกให้คุณทราบว่าช่วงเวลาของนาฬิกาขั้นต่ำคืออะไร

หรือคุณเพิ่มข้อ จำกัด ในการออกแบบในตอนแรกจากนั้นเครื่องมือจะแจ้งให้คุณทราบว่ามีการตอบสนองหรือไม่


อะไรจะทำให้ข้อ จำกัด ไม่เป็นไปตาม ช่วงเวลาใดที่ จำกัด นาฬิกา มันขึ้นอยู่กับ FPGA ที่ฉันใช้หรือมันเหมือนกันสำหรับทั้งครอบครัวของ FPGA หรือไม่ (หรืออาจจะเป็นสำหรับ FPGA ทุกตัวที่มีอยู่?)

3
ขึ้นอยู่กับความเร็วของ FPGA และจำนวนตรรกะเชิง combinatorial ที่คุณใส่ระหว่าง FF ในการออกแบบของคุณ
Dave Tweed

9
@ appmaker1358 คุณลองอ่านแผ่นข้อมูลสำหรับ FPGA แล้วหรือยัง การจัดอันดับความเร็วเป็นหนึ่งในพารามิเตอร์ที่สำคัญที่สุดที่เรียกว่าในแผ่นข้อมูล
โฟตอน

2
ความเร็วจะถูก จำกัด โดยเส้นทางการจับเวลาที่ยาวที่สุดซึ่งจะเป็นการหน่วงเวลาการแพร่กระจายที่ยาวที่สุดผ่านตรรกะและการกำหนดเส้นทางระหว่างองค์ประกอบสองสถานะ (พลิก flops, RAM, ฯลฯ ) FPGA ที่แตกต่างกันจะมีพารามิเตอร์กำหนดเวลาที่แตกต่างกันดังนั้นการออกแบบจะบรรลุความเร็วที่แตกต่างกันของ FPGA มีบางส่วนของ FPGA ที่ จำกัด ความถี่อยู่ - ส่วนประกอบการกระจายสัญญาณนาฬิกาและ PLL มักจะมีข้อ จำกัด แต่ก็ยากที่จะเขียน HDL ที่ใกล้เคียงกับการออกแบบที่ไม่สำคัญ
alex.forencich

3
นอกจากนี้คุณต้องเพิ่มข้อ จำกัด เกี่ยวกับเวลาด้วย การจัดวางและการกำหนดเส้นทางใช้ข้อ จำกัด ในการพิจารณาและดำเนินการเพื่อให้ตรงกับความต้องการ หากคุณไม่เพิ่มข้อ จำกัด ใด ๆ เครื่องมือจะไม่พยายามอย่างหนักและคุณจะไม่ได้ตัวเลขที่ดี
alex.forencich

13

ความเร็วที่ซีพียูของคุณจะทำงานนั้นจะขึ้นอยู่กับการหน่วงเวลาฟลอพ - ทู - ฟล็อปที่ยาวที่สุดในการออกแบบที่คุณสังเคราะห์ ความล่าช้าของ flop-to-flop จะรวม clock-to-Q, การเราติ้ง, ลอจิก / LUT และเวลาการตั้งค่าฟลอพ สิ่งเหล่านี้ถูกรวมเข้าด้วยกันเป็นเส้นทางที่สำคัญของเวลาของคุณซึ่งคุณสามารถตรวจสอบผลลัพธ์ของรายงานเวลาได้โดยใช้เครื่องมือบอกตำแหน่งและเส้นทาง

มีสาขาการออกแบบทั้งหมดที่อุทิศให้กับการสร้างสถาปัตยกรรมที่ลดความล่าช้านี้เพื่อให้ได้รับประโยชน์สูงสุดจากกระบวนการที่กำหนด - pipelining, การประมวลผลแบบขนาน, การดำเนินการเก็งกำไรและอื่น ๆ มันเป็นงานที่น่าสนใจที่เกี่ยวข้องกับงานเขียนว่าออนซ์สุดท้ายของการแสดงจาก FPGA (หรือสำหรับเรื่องนั้น ASIC)

ที่กล่าวว่าผู้ขาย FPGA จะให้คะแนนความเร็วที่แตกต่างกันสำหรับชิ้นส่วนของพวกเขาซึ่งสอดคล้องกับอัตรา MHz สูงสุด ตัวอย่างเช่น -2 Xilinx Artix เป็นส่วนที่ '250 MHz' พูดอย่างคร่าว ๆ ถึงแม้ว่ามันจะมีความสามารถในการเพิ่มสัญญาณนาฬิกาที่สูงขึ้น

เมื่อคุณโต้ตอบกับการสังเคราะห์ FPGA และเครื่องมือบอกตำแหน่งและเส้นทางคุณจะต้องให้ข้อ จำกัดสำหรับการออกแบบของคุณ สิ่งเหล่านี้บอกเครื่องมือให้เลื่อนการหน่วงเวลาการฟล็อพถึงฟลอพเป้าหมายที่คุณพยายามทำ ใน Quartus (Altera) และ Vivado (Xilinx) ข้อ จำกัด เหล่านี้ใช้ไวยากรณ์ที่เรียกว่า SDC ซึ่งย่อมาจาก Synopsys Design Constraints SDC นั้นเริ่มต้นจากโลก ASIC และได้รับการรับรองจากอุตสาหกรรม FPGA เช่นกัน ทำความรู้จักกับ SDC - มันจะช่วยให้คุณได้ผลลัพธ์ที่คุณต้องการ

Altera และ Xilinx มีชุมชนออนไลน์สำหรับความช่วยเหลือเกี่ยวกับวิธีการใช้ไวยากรณ์ SDC และหัวข้ออื่น ๆ

ถ้าคุณสนใจความเร็วคุณควรพิจารณา FPGA ที่มีมาโครของ CPU ในตัวเช่น Zynq


-2

CPU จะไม่ทำงานเร็วกว่านาฬิกาทั่วโลกดังนั้นจะมีขอบเขตบนว่าจะสามารถทำงานได้เร็วแค่ไหน โดยทั่วไปข้อมูลเกี่ยวกับอัตรานาฬิกาสูงสุดจะแสดงอยู่ในเอกสารข้อมูลทางเทคนิค FGPA

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.