ทำไม FPGA จึงไม่แพร่หลาย


65

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



คุณอาจต้องการอ่านหัวข้อนี้: electronics.stackexchange.com/questions/4382/ …
Tom L.

43
เฮลิคอปเตอร์มีความยืดหยุ่นมากกว่ารถยนต์ดังนั้นทำไมทุกคนยังคงใช้รถยนต์เพื่อเดินทางไปทำงาน
Olin Lathrop

15
เพราะ บริษัท FPGA ทั้งหมดให้เครื่องมือที่เป็นกรรมสิทธิ์ที่น่ากลัวอย่างที่สุดแก่คุณที่มีช่วงการเรียนรู้ที่ยิ่งใหญ่และไม่สามารถเข้าถึงได้โดยนักพัฒนาส่วนใหญ่ แทนที่ด้วย toolchain ที่เปิดอย่างเต็มที่และพวกเขาอาจจะแพร่หลาย
..

@R .. ... หรืออย่างน้อยก็ไม่ใช่ทางเลือกสุดท้าย
Dan Neely

คำตอบ:


94

คุณกำลังมองข้ามปัจจัยหลายอย่างที่ทำให้ตัวเลือกการออกแบบ:

  1. ราคา FPGA นั้นแพงกว่า micros สำหรับความซับซ้อนของตรรกะเดียวกัน

  2. ความซับซ้อนของลอจิก รหัสที่ทำงานได้สามารถใช้ตรรกะที่ซับซ้อนกว่าจำนวนประตูใน micro ที่ใช้โดยตรง

  3. ความง่ายดายในการพัฒนา การเขียนโค้ดที่สามารถเรียกทำงานได้ง่ายกว่าการกำหนดตรรกะสำหรับปัญหาทั้งหมดยกเว้นปัญหาเล็ก ๆ แม้แต่โครงการไมโครคอนโทรลเลอร์ขนาดเล็กก็ยังมีโค้ดหลายพันบรรทัด การพัฒนานิยามเชิงตรรกะที่เทียบเท่าจะใช้เวลานานกว่าและยากกว่ามากในการดีบักและตรวจสอบ

  4. การใช้พลังงาน เนื่องจาก FPGA มีไว้สำหรับการดำเนินงานความเร็วสูงที่ไมโครสโคปไม่สามารถจัดการได้ (มิฉะนั้นคุณจะใช้ไมโคร) พวกมันจึงไม่ได้รับการปรับให้เหมาะสมสำหรับการใช้พลังงานต่ำ ทำให้ไม่เหมาะสำหรับแอปพลิเคชั่นที่ใช้พลังงานต่ำ ไมโครสโคปบางตัวมีกระแสการนอนหลับที่ต่ำกว่า 1 µA และสามารถทำงานได้เพียงไม่กี่ atA ที่อัตราสัญญาณนาฬิกาช้า ลองค้นหา FPGA ที่สามารถทำได้

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


2
"ถึงตอนนั้นคุณยังใช้เฉพาะส่วนที่มีความสำคัญต่อความเร็วใน FPGA และปล่อยให้ฟังก์ชั่นการควบคุมความเร็วต่ำลงและมีลักษณะคล้ายกันในไมโคร" และนั่นเป็นเพราะการพัฒนา FPGA นั้นเจ็บปวดใช่ไหมล่ะ?
Utku

2
@Utku: ใช่นั่นคือเหตุผล 3 ข้างต้นถึงแม้ว่าเหตุผล 1-2 มักจะใช้เช่นกัน FPGAs นั้นไม่คุ้มค่าเท่ากับ micros สำหรับงานเดียวกันเว้นแต่งานนั้นจะมีข้อกำหนดความเร็วสูงที่ไมโครไม่สามารถทำได้
Olin Lathrop

4
ง่ายที่จะบอกว่าคำตอบนี้เขียนจากมุมมองของผู้ใช้ CPU "ไปที่ FPGA อย่างไม่เต็มใจเมื่อคุณต้องการความเร็วและ / หรือการทำงานความเร็วสูงพร้อมกัน" พวกเขาไม่ได้ว่าไม่ดี มีแอพพลิเคชั่นที่ไม่มีใครคิดว่าจะใช้ CPU ผ่าน FPGA
stanri

26
วิธีที่ฉันมักจะอธิบาย: มันยากที่จะทำสิ่งต่าง ๆ บน CPU และมันยากที่จะทำสิ่งต่าง ๆ ใน FPGA
เบ็คแจ็คสัน

14
สิ่งหนึ่งที่สำคัญที่ต้องจดจำเกี่ยวกับ FPGA คือการกำหนดค่าใหม่ของตรรกะมาในราคา - ตรรกะที่เทียบเท่ากับที่อุปกรณ์ FPGA ใช้นั้นมีความซับซ้อนน้อยกว่า FPGA เอง ตารางการค้นหาทั้งหมดส่วนประกอบเมทริกซ์การกำหนดเส้นทาง ฯลฯ ใช้พื้นที่ซิลิคอนและพลังงานมากกว่าการใช้งานที่เทียบเท่าในฮาร์ดไดรฟ์ ซึ่งหมายความว่า FPGA นั้นแย่กว่าในตัวชี้วัดประสิทธิภาพทั้งหมด - การใช้พลังงานและการใช้งานว่าง, ความหนาแน่น, ความเร็วสัญญาณนาฬิกา ฯลฯ - กว่าการสร้างฟังก์ชันการทำงานเดียวกันโดยตรงในซิลิคอนเช่นเดียวกับที่ทำกับไมโครคอนโทรลเลอร์, ซีพียูทั่วไป
alex.forencich

45

ความแตกต่างอย่างหนึ่งที่ฉันไม่ได้เห็นในที่นี้คือ FPGA นั้นถูกใช้และประพฤติในวิธีที่แตกต่างอย่างสิ้นเชิงกับโปรเซสเซอร์

FPGA นั้นดีมากในการทำภารกิจเดียวกันซ้ำแล้วซ้ำอีก ตัวอย่างเช่นการประมวลผลสัญญาณเสียงหรือสัญญาณ RF หรือการกำหนดเส้นทางแพ็คเก็ตอีเธอร์เน็ต หรือจำลองการไหลของของไหล สถานการณ์ใดก็ตามที่คุณมีข้อมูลประเภทเดียวกันจำนวนมากที่ถูกส่งเข้ามาที่คุณอย่างรวดเร็วและคุณต้องการจัดการกับมันด้วยวิธีเดียวกัน หรือคุณต้องการเรียกใช้อัลกอริทึมเดียวกันซ้ำ ๆ FPGA ไม่มีงาน 'จริงๆ' ที่เริ่มต้นและหยุด [1] งานทั้งหมดของมันคือการทำสิ่งเดียวกันกับข้อมูลที่ได้รับตราบใดที่มันเปิดอยู่ มันไม่เปลี่ยนเกียร์มันไม่ทำอะไรเลย มันเป็นสายการผลิตที่ดีที่สุด มันจะทำสิ่งเดียวกันซ้ำ ๆ ให้เร็วที่สุดเท่าที่จะทำได้ตลอดไป

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

FPGA และ CPU ตรงข้ามอย่างสมบูรณ์ สินค้าของซีพียูเป็นเวลา - มันจะต้องทำให้เสร็จเร็วขึ้น แอปพลิเคชันของคุณทำงานได้เร็วขึ้น

สินค้าของ FPGA คือพื้นที่ FPGA ของคุณมีขนาดใหญ่มากและมีประตูที่พร้อมใช้งานจำนวนมากเท่านั้นสำหรับการทำงานที่คุณต้องการ ส่วนใหญ่แล้วปัญหาจะมีขนาดใหญ่กว่าความเร็ว [2]

เป็นไปได้ที่จะทำให้ FPGA ทำตัวเหมือนซีพียู คุณสามารถใส่ CPU IP core ลงใน FPGA ได้ แต่มันเป็นเรื่องยากมากที่จะพิสูจน์เหตุผลเนื่องจากเหตุผลอื่น ๆ ที่อธิบายไว้ [3] FPGA และ CPU เป็นสิ่งที่ตรงกันข้ามทั้งมีจุดแข็งและจุดอ่อนของตัวเองและทั้งสองมีสถานที่ของตัวเองเป็นผล


หมายเหตุ:

1) FPGA สามารถออกแบบให้ทำงานต่าง ๆ ได้ แต่ถึงจะเป็นตัวเลขเฉพาะที่ออกแบบไว้ล่วงหน้า

2) ความเร็วยังเป็นข้อกำหนดการออกแบบ FPGA จริงๆแล้วมันเป็นการแลกเปลี่ยนระหว่างความเร็วและขนาด

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

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


1
"หรือการกำหนดเส้นทางแพ็คเก็ตอีเธอร์เน็ตหรือจำลองการไหลของของไหล" แม้ว่าเท่าที่ฉันรู้ ASIC มักจะใช้สำหรับอดีต (ในการผลิตจำนวนมากอย่างน้อย) และ GPU จะเร็วกว่าถูกกว่าประหยัดพลังงานและตั้งโปรแกรมได้ง่ายกว่าสำหรับหลัง
reirab

1
@reirab นี่เป็นตัวอย่างของการดำเนินการที่ FPGA สามารถทำได้ดีพวกเขามาคำนึงเพราะพวกเขาทั้งสองแอปพลิเคชันที่ฉันได้เข้ารหัส FPGAs เป็นการส่วนตัว มีมากกว่าหนึ่งวิธีในการดูแลแมว ทางเลือกของอุปกรณ์ขึ้นอยู่กับปัจจัยการออกแบบมากมาย
stanri

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

เป็นเรื่องแปลกที่จะอ้างว่า CPU มีความยืดหยุ่นมากกว่า FPGA โดยพิจารณาว่าคุณสามารถใช้ CPU ได้อย่างง่ายดายภายใน FPGA (นักเรียน CS ที่จริงจังควรทำอย่างน้อยหนึ่งครั้ง) FPGA เป็นแนวคิดที่ต่ำกว่าซีพียูมากดังนั้นจึงไม่สมเหตุสมผลเลยที่จะเปรียบเทียบมันกับ imho โดยตรง
Voo

คำตอบนี้รบกวนจิตใจฉันจริงๆ "สินค้าของ CPU คือเวลา", "สินค้า FPGAs เป็นพื้นที่" ฮะ? ASIC และ CPUs เป็นขั้วตรงข้ามและ FPGA อยู่ตรงกลางเพื่อให้ได้ทั้งดีที่สุดและแย่ที่สุดของทั้งสองโลก
Jotorious

20

ดังที่แลงกล่าวว่าบางอย่างเช่นไมโครมีประสิทธิภาพมากขึ้นสำหรับงานหลายอย่างและคุณจะพบไมโครที่ใช้งานทุกที่ที่ FPGA ปรากฏ พื้นที่ของซิลิคอนที่ใช้ (ซึ่งแปลเป็นค่าใช้จ่ายในแบบไม่เชิงเส้น) และการใช้พลังงานมีน้อยกว่ามาก ด้วยเหตุผลดังกล่าวจึงไม่ใช่เรื่องแปลกที่จะใช้ MCU แบบ 'soft' บน FPGA- แต่ค่าใช้จ่ายและประสิทธิภาพของไมโครดังกล่าวนั้นต่ำเกินไป

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

การพัฒนานั้นยากขึ้นมากและ IP มักจะไม่สามารถใช้ได้อย่างอิสระเช่นเดียวกับไมโครและโซลูชั่น SOC เฉพาะ - เช่นตัวควบคุม LCD, อินเตอร์เฟส PCI, Ethernet MACs เหตุผลส่วนหนึ่งคือโดยการเปิดเผยคำอธิบายตรรกะ HDL พวกเขากำลังถ่ายโอนการออกแบบไม่เพียง แต่การเริ่มต้นของการออกแบบ อีกเหตุผลหนึ่งคือประสิทธิภาพขึ้นอยู่กับเลย์เอาต์ของตรรกะใน FPGA ซึ่งต้องใช้ความพยายามอย่างมากในระหว่างการพัฒนา

ภาวะแทรกซ้อนต่อไปคือ FPGA ที่ซับซ้อนส่วนใหญ่ใช้ RAM สำหรับการกำหนดค่าและค่าใช้จ่ายในกระบวนการนั้นจำเป็นต้องใช้หน่วยความจำแบบไม่ลบเลือนภายนอกเพื่อจัดเก็บการกำหนดค่าและหน่วยความจำโปรแกรมสำหรับ MCU ใด ๆ บนบอร์ด หน่วยความจำนี้จะต้องโหลดเข้าสู่ RAM เมื่อเปิดเครื่อง

FPGAs เป็นเครื่องมือที่มีประโยชน์อย่างมากในกล่องเครื่องมือ แต่จะไม่สามารถแทนที่ MCUs หรือ ASICs ได้ทุกเวลาในไม่ช้า


10

การใช้ซิลิกอนที่ดีที่สุดสำหรับงานคือ ASIC ไม่มีอะไรเสีย แต่พวกเขามีช่วงการเรียนรู้ขนาดใหญ่ NRE และความยืดหยุ่น

มีสองวิธีในการสร้างความยืดหยุ่นให้กับชิป a) มี ALU ที่ได้รับการปรับให้เหมาะสมกับพื้นที่และใช้มันซ้ำแล้วซ้ำอีกในข้อมูลที่เก็บไว้ สิ่งนี้เรียกว่า MCU และต้องการพื้นที่ซิลิคอนกว้างใหญ่ที่ 'ไม่ทำอะไรเลย', หน่วยความจำของโปรแกรม, บัสกว้างที่วิ่งจากหน่วยหนึ่งไปยังอีกหน่วยหนึ่งและสวิตช์เข้าถึงบัส b) มีลอจิกที่ละเอียดยิ่งขึ้นด้วยส่วนเสริมบางส่วนที่เหมาะสมกับพื้นที่เช่นตัวคูณ RAM ขนาดเล็กและซีพียูธรรมดา สิ่งนี้เรียกว่า FPGA และต้องการพื้นที่ของซิลิคอนที่กว้างขวางซึ่ง 'ไม่ได้ทำอะไรเลย' สวิตช์แบบตั้งโปรแกรมและสายเชื่อมต่อ

เห็นได้ชัดว่ามีโครงสร้างเหล่านั้น MCUs ทำงานได้ดีที่สุดสำหรับงานที่สามารถแบ่งออกเป็นชิ้นส่วนอนุกรมและ FPGAs ทำงานได้ดีที่สุดสำหรับงานที่ต้องการการดำเนินงานแบบขนานความเร็วสูง เมื่อแอพพลิเคชั่นมีน้ำหนักมากและราคาถูกครอบงำด้วยต้นทุนของซิลิกอนนั่นคือวิธีการใช้งานทั้งสองประเภทตามธรรมชาติ

เมื่อแอปพลิเคชั่นมีน้ำหนักเบา แต่มีปริมาณสูงค่าใช้จ่ายจะถูกควบคุมโดยบรรจุภัณฑ์มากกว่าซิลิคอนและชนิดใดชนิดหนึ่งสามารถใช้งานได้ Altera มี FPGAs พลังงานต่ำขนาดเล็กมากบางตัวเพื่อแข่งขันกับ MCU แบบ a-dollar-a-handful

สำหรับแอปที่มีปริมาณน้อยค่าใช้จ่ายในการพัฒนามีแนวโน้มที่จะครองและมีการชนะ MCU โดยสมมติว่าพวกเขามีความเร็ว


9

ในแง่ของการใช้พลังงานและการใช้ซิลิคอน FPGA นั้นแย่มากเมื่อเทียบกับไมโครโปรเซสเซอร์

FPGA ใช้พื้นที่ซิลิคอนจำนวนมากในวงจรการตั้งค่าลอจิกบางสิ่งที่ไม่สามารถนำไปใช้กับไมโคร จะต้องมีการเชื่อมต่อระหว่างกันมากกว่าที่จำเป็นในการติดตั้งไมโครโปรเซสเซอร์

FPGA ใช้พลังงานมากกว่า ASIC โดยเฉพาะเช่นไมโครโปรเซสเซอร์เนื่องจากตรรกะไม่ได้ถูกนำมาใช้อย่างมีประสิทธิภาพ

ฟังก์ชั่นใด ๆ ที่สามารถนำไปใช้ใน FPGA สามารถทำได้อย่างมีประสิทธิภาพราคาถูกลงด้วยการใช้พลังงานที่ลดลง นี่คือการสมมติว่าไดรฟ์ข้อมูลมีขนาดใหญ่พอที่จะชดเชย NRE


หากเป้าหมายคือการนำชุดคุณลักษณะทั้งหมดของไมโครโปรเซสเซอร์ไปใช้งาน เมื่อคุณทำงานที่เฉพาะเจาะจงลงไปคุณสามารถระบุซิลิคอนที่สูญเปล่าจำนวนมากในไมโครคอนโทรลเลอร์ได้ด้วยเช่นกันบางทีเอ็นจิ้นการเข้ารหัสอาจเสียพื้นที่ในโครงการของคุณ หรืออุปกรณ์ต่อพ่วง CAN? หรือหน่วยทศนิยม? การใช้ประโยชน์ที่ดีที่สุดของ FPGA นั้นต่ำกว่า แต่คุณก็ไม่ได้รับประโยชน์จากการใช้งาน 0% ในพื้นที่ขนาดใหญ่เช่นเดียวกับที่ไมโครคอนโทรลเลอร์ทำ (ในทางตรงกันข้ามกับ gating นาฬิกามีการใช้ 0% ของวงจรที่มีขนาดใหญ่เป็นที่น่าพอใจมากจากมุมมองของพลังงาน)
เบนยต์

8

dsystems ที่ใช้ไมโครโปรเซสเซอร์และไมโครคอนโทรลเลอร์รุ่นที่ใหม่กว่าสามารถใช้งานฟังก์ชันได้อย่างมหาศาลด้วยความสามารถในการใช้วงจรแต่ละชิ้นในนั้นเพื่อทำงานที่แตกต่างกันในเวลาที่ต่างกัน ฉันคิดว่ามันเป็นคำแนะนำในการเปรียบเทียบรถถังอาเขตที่ออกแบบในปี 1976 กับเกม Combat ที่ทำงานบนเครื่องเกมที่ควบคุมด้วยไมโครโปรเซสเซอร์ตัวที่สองของโลกคือ Atari 2600 ในขณะที่มีความแตกต่างบางประการในการเล่นเกม Atari 2600 เพื่อใช้งานเกมเช่น Tank ในราคาที่ถูกที่สุด ความจริงที่ว่ามันสามารถเล่นเกมที่แตกต่างกันโดยการใส่คาร์ทริดจ์ ROM ต่าง ๆ เป็นโบนัสที่ดี

เกม Tank ช่วยให้ผู้เล่นสองคนขับรถถังไปรอบ ๆ หน้าจอและยิงกระสุนใส่กัน มันมี "สลิป" เคาน์เตอร์สำหรับตำแหน่ง X และ Y ของรถถังแต่ละคัน, ตำแหน่ง X และ Y ของผู้เล่นแต่ละคน, เคาน์เตอร์ขึ้น / ลงสำหรับมุมของผู้เล่นแต่ละคนและมุมยิงของผู้เล่นแต่ละคน, เคาน์เตอร์สำหรับคะแนนของผู้เล่นแต่ละคน, - ตัวนับตำแหน่งและวงจรควบคุมจำนวนมากอยู่ด้านบนของสิ่งเหล่านั้น มีฮาร์ดแวร์เพื่อดึงข้อมูล playfield จาก ROM และแสดงมันรวมถึงฮาร์ดแวร์ที่จะดึงรูปร่างสำหรับรถถังของผู้เล่นสองคนและคะแนนจาก ROM และแสดงสิ่งเหล่านั้น

Atari 2600 มีเคาน์เตอร์กันลื่นสำหรับตำแหน่งแนวนอนของวัตถุผู้เล่นสองคนวัตถุวิถีสองชิ้นและอีกวัตถุหนึ่งที่เรียกว่า "ลูกบอล" ซึ่งไม่ได้ใช้ในการต่อสู้ แต่ใช้ในเกมอื่นบางเกม สำหรับวัตถุของผู้เล่นแต่ละคนมันมีฮาร์ดแวร์ที่จะส่งออกรูปแบบที่เก็บไว้ในสลัก 8 บิตเช่นเดียวกับสลักแปดบิต "ล่าช้า" สำหรับผู้เล่นแต่ละคนที่ได้รับการคัดลอกไปยังสลัก 8 บิตหลักเมื่อใดก็ตามที่ผู้เล่นคนอื่น อัปเดตรูปร่างแล้ว นอกจากนี้ยังมีตำแหน่งลำแสงแนวนอนและสลักรูปสนามแข่งขัน 20 บิตซึ่งส่งออกไปยังหน้าจอสองครั้งต่อการสแกนบรรทัดโดยสำเนาด้านขวาปรากฏเป็นภาพซ้ำหรือภาพสะท้อนด้านซ้าย มีฮาร์ดแวร์ในการตรวจจับการชน แต่ไม่ต้องทำอะไรเป็นผลมาจากพวกเขา มันไม่ได้ ไม่มีฮาร์ดแวร์ใด ๆ สำหรับตำแหน่งแนวตั้งของวัตถุหรือตำแหน่งแนวตั้งของคานแรสเตอร์ (!) และไม่มีฮาร์ดแวร์ใด ๆ ที่เกี่ยวข้องกับการเก็บคะแนนการแสดงคะแนนระยะเวลาของเกม ฯลฯ

ฟังก์ชั่นทั้งหมดที่ซอฟต์แวร์ 2600 ละเว้นได้รับการจัดการโดยซอฟต์แวร์ในตลับหมึก จำเป็นต้องตรวจสอบตำแหน่งแนวตั้งของแต่ละวัตถุกับตำแหน่งแรสเตอร์ลำแสงหนึ่งครั้งต่อหนึ่งบรรทัดการสแกนเท่านั้นจำเป็นต้องอัปเดตคะแนนของผู้เล่นและเวลาเล่นเกมที่เหลืออยู่มากที่สุดหนึ่งเฟรมต่อเฟรมคะแนนของผู้เล่นจะถูกเก็บไว้ในบรรทัดการสแกน และอาจแบ่งปันฮาร์ดแวร์เดียวกันกับที่ใช้สำหรับสนามเด็กเล่น ฯลฯ

วิธีการปกติในการใช้งานเกมเช่น "Tank" ใน FPGA จะใช้วงจรแยกสำหรับฟังก์ชั่นที่แตกต่างกันในแบบเดียวกับเครื่องอาเขตในปี 1976 วิธีการดังกล่าวจะใช้งานได้ แต่ใช้ฮาร์ดแวร์จำนวนมาก วิธีการที่ใช้ไมโครโปรเซสเซอร์สามารถกำจัดฮาร์ดแวร์มากกว่าครึ่งหนึ่งเพื่อแลกกับการเพิ่มไมโครโปรเซสเซอร์ซึ่งน่าจะมีวงจรน้อยกว่าฮาร์ดแวร์ที่แทนที่ (2600 สามารถใช้เกมที่ซับซ้อนกว่า Tank ซึ่งต้องใช้ฮาร์ดแวร์มากขึ้น หากพวกเขาไม่ได้ใช้ไมโครโปรเซสเซอร์)

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


คุณไม่สามารถวางระเบิดด้วยหรือ? ;-)
Scott Seidman

@ScottSeidman: เครื่องอาเขตมีเหมืองอยู่สองสามแห่งในตำแหน่งเดินสายซึ่งถูกดึงมาเป็น X's คงเป็นเรื่องยากมากที่ 2,600 คนจะแสดงเหมืองเป็น X ในขณะที่แสดงผู้เล่นและอาวุธทั้งสอง หากไม่มีใครคิดว่าการสั่นของทุ่นระเบิดที่ 60Hz จะเป็นไปได้โดยใช้เทคนิคบางอย่างที่ค้นพบในภายหลัง แต่จะต้องใช้รหัสเพิ่มเติม (COMBAT เป็นตลับ 2K ที่ค่อนข้างเต็ม - แม้สองไบต์ในส่วนที่ไม่ได้ใช้ BRK / IRQ vector ที่ $ FFFE / FFFF ใช้เพื่อเก็บตารางสองไบต์!)
supercat

อาจเป็นไปได้ที่ Combat จะใช้ระเบิดเป็นสี่เหลี่ยมที่กระพริบถ้ามันยอมสละตัวเลือกอื่น ๆ เช่นตีกลับช็อต ฯลฯ แต่ฉันคิดว่า Joe Decuir (โปรแกรมเมอร์) ทำงานได้ดีในการเลือกตัวเลือกที่เล่นได้ qualm หนึ่งของฉันคือเครื่องบินทิ้งระเบิด biplane-vs-bomber อาจสนุกกว่านี้ถ้าเครื่องบินทิ้งระเบิดเป็น 2x แทนที่จะเป็น 4x sprite
supercat

5

เป็นค่าใช้จ่ายทั้งหมด เมื่อไมโครสามารถต่ำได้ถึง 30 เซ็นต์ FPGA ราคาถูกจะอยู่ในพื้นที่ $ 5 ราคาอาจไม่สูงมากนัก แต่เมื่อคุณสร้างของเล่นแปลก ๆ จำนวนหนึ่งล้านตัวที่จะขายในราคา $ 10 ราคาของ FPGA ก็จะฆ่าคุณ


6
ค่าใช้จ่ายเป็นอย่างแน่นอนปัญหาหนึ่ง แต่จะบอกว่าคือความแตกต่างอย่างสิ้นเชิงค่าใช้จ่ายเป็นไร้เดียงสาเป็นคิดไมโครทั้งหมดจะถูกแทนที่ด้วย FPGAs
Olin Lathrop

@OlinLathrop ถ้าค่าใช้จ่ายไม่ใช่ปัญหาอะไรก็ตามที่ไมโครสามารถทำได้สามารถทำได้โดย FPGA สิ่งนี้แสดงให้เห็นถึงความสามารถของ FPGA ในการควบคุมแกนไมโครคอนโทรลเลอร์ที่อ่อนนุ่ม ปัญหาคือ FPGA ที่สามารถเก็บแกนดังกล่าวได้อย่างน้อยและลำดับความสำคัญมีราคาแพงกว่าจากนั้นไมโครที่แกนกลางจะถูกจำลอง
vini_i

ราคาอาจมีความหมายมากกว่าราคาต่อหน่วย แต่นั่นคือทั้งหมดที่คุณต้องการที่จะวิเคราะห์
Scott Seidman

2
ฉันไม่สามารถบอกได้ว่าคุณตั้งใจทำท่าจะพลาดจุดหรือหนาแน่น ไม่ว่าจะด้วยวิธีใดคุณกำลังตอบสนองต่อสิ่งที่ไม่มีใครพูด ทุกคนยอมรับว่า FPGA มีค่าใช้จ่ายมากกว่าและเป็นปัญหา แต่อีกครั้งเพื่อเรียกร้องก็เป็นเพียง แต่ปัญหาก็คือผิดเพียง ถ้าฉันให้ micros และ FPGA ฟรีให้คุณยังคงมีเหตุผลสำคัญว่าทำไมคุณถึงใช้ micros มากกว่า FPGA ในการออกแบบหลาย ๆ แบบ
Olin Lathrop

4
@sleb: ไม่ความแตกต่างของค่าใช้จ่ายไม่ได้เกิดจากปริมาณ พื้นที่ซิลิคอนที่ต้องการต่อเกตที่ส่งมอบนั้นมีขนาดใหญ่กว่าใน FPGA มากกว่าในชิปที่กำหนดเองเช่นไมโครคอนโทรลเลอร์ ความสามารถในการกำหนดค่าทั้งหมดที่ระดับการเชื่อมต่อระหว่างประตูจะนำพื้นที่ซิลิคอนมาใช้ ในปริมาณที่สูงค่าใช้จ่ายของชิปจะขึ้นอยู่กับพื้นที่ของซิลิกอน
Olin Lathrop

5

เพียงเพิ่มคำตอบที่ดีอื่น ๆ ฉันคิดว่าการยอมรับ FPGA นั้นเป็นเรื่องของโดเมนด้วยเช่นสำหรับอุปกรณ์ neuromorphic บอร์ด FPGA เริ่มแพร่หลายมากเนื่องจากมีความต้องการขนานใหญ่ซึ่งเป็นจุดแข็ง ของ FPGA

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


แม้ว่าสิ่งนี้อาจเป็นความจริง แต่มันก็ไม่ได้เป็นคำตอบที่สมบูรณ์ บางทีมันอาจเป็นการดีกว่าเป็นความคิดเห็นหรือคุณอาจขยายความ
Null

สิ่งนี้ไม่ได้ให้คำตอบสำหรับคำถาม หากต้องการวิจารณ์หรือขอคำชี้แจงจากผู้แต่งโปรดแสดงความคิดเห็นใต้โพสต์ของพวกเขา
Funkyguy

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