อ่าน 3 นาที
การสังเคราะห์ตรรกะ
ในวิศวกรรม คอมพิวเตอร์ การสังเคราะห์ตรรกะ เป็นกระบวนการที่ข้อกำหนดเชิงนามธรรมของพฤติกรรม วงจร ที่ต้องการ โดยทั่วไปที่ ระดับการถ่ายโอนรีจิสเตอร์ (RTL)...
การสังเคราะห์ตรรกะ
ในวิศวกรรมคอมพิวเตอร์การสังเคราะห์ตรรกะเป็นกระบวนการที่ข้อกำหนดเชิงนามธรรมของพฤติกรรมวงจร ที่ต้องการ โดยทั่วไปที่ ระดับการถ่ายโอนรีจิสเตอร์ (RTL) จะถูกแปลงเป็นการใช้งานการออกแบบในแง่ของเกตตรรกะโดยทั่วไปโดยโปรแกรมคอมพิวเตอร์ที่เรียกว่าเครื่องมือสังเคราะห์ตัวอย่างทั่วไปของกระบวนการนี้ ได้แก่ การสังเคราะห์การออกแบบที่ระบุไว้ในภาษาการอธิบายฮาร์ดแวร์รวมถึงVHDL และ Verilog [ 1 ] เครื่องมือสังเคราะห์บางตัวสร้างบิตสตรีมสำหรับอุปกรณ์ตรรกะที่ตั้งโปรแกรมได้เช่นPALหรือFPGAในขณะที่บางตัวมุ่งเป้าไปที่การสร้างASICการสังเคราะห์ตรรกะเป็นขั้นตอนหนึ่งในการออกแบบวงจรในระบบอัตโนมัติการออกแบบอิเล็กทรอนิกส์ ขั้นตอน อื่นๆ ได้แก่การจัดวางและการกำหนดเส้นทางและการตรวจสอบและการรับรอง
ประวัติศาสตร์
รากฐานของการสังเคราะห์ตรรกะสามารถสืบย้อนไปถึงการศึกษาตรรกะของจอร์จ บูล (ค.ศ. 1815 ถึง 1864) ในสิ่งที่ปัจจุบันเรียกว่าพีชคณิตบูลีนในปี ค.ศ. 1938 โคลด แชนนอน ได้แสดงให้เห็นว่า พีชคณิตบูลีนแบบสองค่าสามารถอธิบายการทำงานของวงจรการสลับได้ ในยุคแรกๆการออกแบบตรรกะเกี่ยวข้องกับการจัดการตารางความจริงในรูปแบบแผนที่คาร์โนห์การลดรูปตรรกะโดยใช้แผนที่คาร์โนห์นั้นถูกชี้นำโดยชุดกฎเกี่ยวกับวิธีการรวมค่าในแผนที่ นักออกแบบที่เป็นมนุษย์มักจะทำงานกับแผนที่คาร์โนห์ที่มีตัวแปรได้สูงสุดสี่ถึงหกตัวเท่านั้น
ขั้นตอนแรกสู่การทำให้การลดขนาดตรรกะ เป็นไปโดยอัตโนมัติ คือการนำอัลกอริทึม Quine–McCluskeyมาใช้ ซึ่งสามารถนำไปใช้กับคอมพิวเตอร์ได้ เทคนิคการลดขนาดที่แม่นยำนี้ได้นำเสนอแนวคิดของตัวบ่งชี้หลัก (prime implicants) และการครอบคลุมต้นทุนขั้นต่ำ (minimum cost covers) ซึ่งจะกลายเป็นรากฐานของการลดขนาดสองระดับ ปัจจุบัน เครื่องมือลดขนาดตรรกะแบบฮิวริสติก Espressoที่มีประสิทธิภาพมากกว่าได้กลายเป็นเครื่องมือมาตรฐานสำหรับการดำเนินการนี้ อีกด้านหนึ่งของการวิจัยในช่วงแรกคือการลดขนาดสถานะและการเข้ารหัสของเครื่องสถานะจำกัด (FSMs) ซึ่งเป็นงานที่สร้างความปวดหัวให้กับนักออกแบบ การประยุกต์ใช้สำหรับการสังเคราะห์ตรรกะส่วนใหญ่จะอยู่ในด้านการออกแบบคอมพิวเตอร์ดิจิทัล ดังนั้นIBMและBell Labsจึงมีบทบาทสำคัญในการทำให้การสังเคราะห์ตรรกะเป็นไปโดยอัตโนมัติในช่วงแรก วิวัฒนาการจากส่วนประกอบตรรกะแบบแยกส่วน ไปสู่ ชุดตรรกะที่ตั้งโปรแกรมได้ (PLAs) ได้เร่งความต้องการการลดขนาดสองระดับที่มีประสิทธิภาพ เนื่องจาก1การลดขนาดเทอมในการแสดงแบบสองระดับจะลดพื้นที่ใน PLA
วงจรลอจิกสองระดับมีความสำคัญจำกัดใน การออกแบบ วงจรรวมขนาดใหญ่มาก (VLSI) การออกแบบส่วนใหญ่ใช้ลอจิกหลายระดับ การแสดงวงจรเกือบทุกแบบในรูปแบบ RTL หรือ Behavioural Description เป็นการแสดงแบบหลายระดับ ระบบแรกๆ ที่ใช้ในการออกแบบวงจรหลายระดับคือ LSS จาก IBM ซึ่งใช้การแปลงแบบโลคอลเพื่อลดความซับซ้อนของลอจิก งานวิจัยเกี่ยวกับ LSS และ Yorktown Silicon Compiler กระตุ้นความก้าวหน้าอย่างรวดเร็วในการวิจัยด้านการสังเคราะห์ลอจิกในช่วงทศวรรษ 1980 มหาวิทยาลัยหลายแห่งมีส่วนร่วมโดยการเผยแพร่ผลงานวิจัยสู่สาธารณะ โดยเฉพาะอย่างยิ่ง SIS จากมหาวิทยาลัยแคลิฟอร์เนีย เบิร์กลีย์ , RASP จากมหาวิทยาลัยแคลิฟอร์เนีย ลอสแอนเจลิสและ BOLD จากมหาวิทยาลัยโคโลราโด โบล์เดอร์ภายในหนึ่งทศวรรษ เทคโนโลยีนี้ได้พัฒนาไปสู่ผลิตภัณฑ์สังเคราะห์ลอจิกเชิงพาณิชย์ที่นำเสนอโดยบริษัทด้านการออกแบบอิเล็กทรอนิกส์อัตโนมัติ
เครื่องมือเชิงพาณิชย์
ผู้พัฒนาและผู้ให้บริการซอฟต์แวร์สังเคราะห์ลอจิกชั้นนำ ได้แก่Synopsys , CadenceและSiemensโดยเครื่องมือสังเคราะห์ของพวกเขา ได้แก่ Synopsys Design Compiler, Cadence First Encounter และ Siemens Precision RTL
องค์ประกอบเชิงตรรกะ
การออกแบบตรรกะเป็นขั้นตอนหนึ่งในวงจรการออกแบบมาตรฐาน ซึ่งการออกแบบเชิงฟังก์ชันของวงจรอิเล็กทรอนิกส์จะถูกแปลงเป็นการแสดงแทนซึ่งรวบรวมการดำเนินการทางตรรกะการดำเนินการทางคณิตศาสตร์ การควบคุมการไหลฯลฯ ผลลัพธ์ทั่วไปของขั้นตอนนี้คือคำอธิบาย RTLการออกแบบตรรกะมักจะตามมาด้วย ขั้นตอน การออกแบบวงจรในการออกแบบอิเล็กทรอนิกส์อัตโนมัติ สมัยใหม่ บางส่วนของการออกแบบตรรกะอาจถูกทำให้เป็นอัตโนมัติโดยใช้ เครื่องมือ สังเคราะห์ระดับสูงโดยอิงจากคำอธิบายเชิงพฤติกรรมของวงจร[ 2 ]

การดำเนินการทางตรรกะโดยทั่วไปประกอบด้วยการดำเนินการแบบบูลีน AND, OR, XOR และ NAND ซึ่งเป็นรูปแบบการดำเนินการพื้นฐานที่สุดในวงจรไฟฟ้า การดำเนินการทางคณิตศาสตร์มักถูกนำไปใช้โดยใช้ตัวดำเนินการทางตรรกะ
ระดับสูงหรือพฤติกรรม
ด้วยเป้าหมายในการเพิ่มผลผลิตของนักออกแบบ ความพยายามในการวิจัยเกี่ยวกับการสังเคราะห์วงจรที่ระบุในระดับพฤติกรรมได้นำไปสู่การเกิดขึ้นของโซลูชันเชิงพาณิชย์ในปี 2547 [ 3 ]ซึ่งใช้สำหรับการออกแบบ ASIC และ FPGA ที่ซับซ้อน เครื่องมือเหล่านี้จะสังเคราะห์วงจรที่ระบุโดยใช้ภาษาระดับสูง เช่น ANSI C/C++ หรือ SystemC โดยอัตโนมัติไปยังข้อกำหนดระดับการถ่ายโอนรีจิสเตอร์ (RTL) ซึ่งสามารถใช้เป็นอินพุตสำหรับกระบวนการสังเคราะห์ตรรกะระดับเกต[ 3 ]การใช้การสังเคราะห์ระดับสูง หรือที่เรียกว่าการสังเคราะห์ ESL การจัดสรรงานให้กับรอบสัญญาณนาฬิกาและส่วนประกอบโครงสร้าง เช่น ALU จุดลอยตัว จะทำโดยคอมไพเลอร์โดยใช้ขั้นตอนการเพิ่มประสิทธิภาพ ในขณะที่การสังเคราะห์ตรรกะ RTL (แม้จาก Verilog หรือ VHDL เชิงพฤติกรรม ซึ่งเธรดการทำงานสามารถอ่านและเขียนตัวแปรได้หลายครั้งภายในรอบสัญญาณนาฬิกา) การตัดสินใจในการจัดสรรเหล่านั้นได้ทำไว้แล้ว
การลดตรรกะหลายระดับ
การใช้งานจริงทั่วไปของฟังก์ชันตรรกะมักใช้เครือข่ายหลายระดับขององค์ประกอบตรรกะ โดยเริ่มต้นจากคำอธิบาย RTL ของการออกแบบ เครื่องมือสังเคราะห์จะสร้างเครือข่ายบูลีนหลาย ระดับที่สอดคล้องกัน
ถัดไป เครือข่ายนี้จะได้รับการปรับให้เหมาะสมโดยใช้เทคนิคที่ไม่ขึ้นกับเทคโนโลยีหลายอย่าง ก่อนที่จะทำการปรับให้เหมาะสมที่ขึ้นกับเทคโนโลยี ฟังก์ชันต้นทุนทั่วไปในระหว่างการปรับให้เหมาะสมที่ไม่ขึ้นกับเทคโนโลยี คือ จำนวน ตัวอักษร ทั้งหมด ของการแสดงแทนแบบแยกตัวประกอบของฟังก์ชันตรรกะ (ซึ่งมีความสัมพันธ์ที่ดีกับพื้นที่วงจร)
สุดท้ายนี้ การปรับให้เหมาะสมโดยอาศัยเทคโนโลยีจะเปลี่ยนวงจรที่ไม่ขึ้นกับเทคโนโลยีให้กลายเป็นเครือข่ายของเกตในเทคโนโลยีที่กำหนด การประมาณต้นทุนแบบง่ายๆ จะถูกแทนที่ด้วยการประมาณที่เป็นรูปธรรมมากขึ้นซึ่งขับเคลื่อนด้วยการนำไปใช้งานจริง ทั้งในระหว่างและหลังการทำแผนที่เทคโนโลยี การทำแผนที่นั้นถูกจำกัดด้วยปัจจัยต่างๆ เช่น จำนวนเกต (ฟังก์ชันตรรกะ) ที่มีอยู่ในไลบรารีเทคโนโลยี ขนาดไดรฟ์สำหรับแต่ละเกต และลักษณะเฉพาะของความล่าช้ากำลังไฟและพื้นที่ของแต่ละเกต
ดูเพิ่มเติม
- คอมไพเลอร์ซิลิคอน
- แผนภาพการตัดสินใจแบบไบนารี
- การตรวจสอบการทำงาน
- แคลคูลัสเชิงอนุพันธ์บูลีน
- การสังเคราะห์วงจรออกแบบเชิงบูรณาการ (Synthesis of Integral Design)โดยDECเป็นเครื่องมือในช่วงทศวรรษ 1980 ที่ใช้ในการออกแบบ ซีพียูสำหรับเมนเฟรม VAX 9000และวงจรรวมอื่นๆ
อ่านเพิ่มเติม
- Burgun, Luc; Greiner, Alain; Prado Lopes Eudes (ตุลาคม 1994). "แนวทางที่สอดคล้องกันในการสังเคราะห์ตรรกะสำหรับสถาปัตยกรรม FPGA". รายงานการประชุมนานาชาติว่าด้วย ASIC . ปักกิ่ง: 104–107 .
- Jiang, Jie-Hong "Roland"; Devadas, Srinivas (2009). "บทที่ 6: การสังเคราะห์ตรรกะโดยสังเขป". ใน Wang, Laung-Terng; Chang, Yao-Wen; Cheng, Kwang-Ting (บรรณาธิการ). การออกแบบอิเล็กทรอนิกส์อัตโนมัติ: การสังเคราะห์ การตรวจสอบ และการทดสอบ . Morgan Kaufmann. ISBN 978-0-12-374364-0.
- Hachtel, Gary D.; Somenzi, Fabio (2006) [1996]. อัลกอริทึมการ สังเคราะห์และตรวจสอบตรรกะ Springer Science & Business Media ISBN 0-7923-9746-0.
- ฮัสซูน, โซฮา ; ซาซาโอะ, สึโตมุ, eds. (2545). การสังเคราะห์และทวนสอบลอจิก คลูเวอร์. ไอเอสบีเอ็น 978-0-7923-7606-4.
- Perkowski, Marek A.; Grygiel, Stanislaw (20 พฤศจิกายน 1995). "6. ภาพรวมทางประวัติศาสตร์ของการวิจัยเกี่ยวกับการแยกส่วน" การสำรวจวรรณกรรมเกี่ยวกับการแยกส่วนฟังก์ชัน (PDF)เวอร์ชัน IV. กลุ่มการแยกส่วนฟังก์ชัน ภาควิชาวิศวกรรมไฟฟ้า มหาวิทยาลัยพอร์ตแลนด์ พอร์ตแลนด์ รัฐโอเรกอน สหรัฐอเมริกาCiteSeerX 10.1.1.64.1129เก็บถาวร(PDF)จากต้นฉบับเมื่อ 28 มีนาคม 2021 เรียกดูเมื่อ28 มีนาคม 2021(188 หน้า)
- Stanković, Radomir S. [ในภาษาเยอรมัน] ; Sasao, Tsutomu; Astola, Jaakko Tapio [ในภาษาฟินแลนด์] (สิงหาคม 2544). "สิ่งพิมพ์ในช่วงยี่สิบปีแรกของทฤษฎีการสวิตช์และการออกแบบตรรกะ" (PDF) . ชุดศูนย์นานาชาติเพื่อการประมวลสัญญาณแทมเปเร (TICSP). มหาวิทยาลัยเทคโนโลยีแทมเปเร / TTKK, โมนิสตาโม, ฟินแลนด์. ISSN 1456-2774 . S2CID 62319288. #14. เก็บถาวร(PDF)จากต้นฉบับเมื่อ 2017-08-09 . เรียกดูเมื่อ2021-03-28 .(4+60 หน้า)
ลิงก์ภายนอก
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ การสังเคราะห์ตรรกะ
ในวิศวกรรม คอมพิวเตอร์ การสังเคราะห์ตรรกะ เป็นกระบวนการที่ข้อกำหนดเชิงนามธรรมของพฤติกรรม วงจร ที่ต้องการ โดยทั่วไปที่ ระดับการถ่ายโอนรีจิสเตอร์ (RTL)...
ประวัติศาสตร์
รากฐานของการสังเคราะห์ตรรกะสามารถสืบย้อนไปถึงการศึกษาตรรกะของ จอร์จ บูล (ค.ศ. 1815 ถึง 1864) ในสิ่งที่ปัจจุบันเรียกว่า พีชคณิตบูลีน ในปี ค.ศ.
เครื่องมือเชิงพาณิชย์
ผู้พัฒนาและผู้ให้บริการซอฟต์แวร์สังเคราะห์ลอจิกชั้นนำ ได้แก่ Synopsys , Cadence และ Siemens โดยเครื่องมือสังเคราะห์ของพวกเขา ได้แก่ Synopsys Design Compiler, Cadence First Encounter และ Siemens Precision RTL
องค์ประกอบเชิงตรรกะ
การออกแบบตรรกะ เป็นขั้นตอนหนึ่งในวงจรการออกแบบมาตรฐาน ซึ่งการ ออกแบบเชิงฟังก์ชัน ของ วงจรอิเล็กทรอนิกส์ จะถูกแปลงเป็นการแสดงแทนซึ่งรวบรวม การดำเนินการทางตรรกะ การ ดำเนินการทางคณิตศาสตร์ การ ควบคุม การไหล ฯลฯ