วิธีการเอสเปรสโซ่ ของ ตัวย่อตรรกะพจน์เอสเปรสโซ่

ไฟล์:Example cube espresso.jpgตัวอย่าง cubeไฟล์:On Off Dc set.jpgON-cover, OFF-cover, DC-cover

มีการเปลี่ยนแปลงขั้นตอนวิธีของเอสเปรสโซ่อย่างมากที่ถูกพัฒนาโดยเบรตันจากมหาลัยเบิร์กเลย์แคลิฟอร์เนีย แทนที่จะเขียนฟังก์ชันบูลีนในรูปของ minterm ตัวโปรแกรมจะทำการสร้าง cube แทนการเขียนพจน์ของฟังก์ชันบูลีนที่กำลังทำการลดรูปในรูปของ 1,0,x(don't care) แม้ว่าการลดรูปคำตอบไม่สามารถรับประกันว่าจะได้คำตอบที่อยู่ในรูปสั้นสุดจริง แต่เมื่อเปรียบเทียบกับวิธีอื่นแล้ว วิธีนี้จะประสิทธิภาพมากกว่า เพราะมีการลดการใช้หน่วยความจำและระยะเวลาในการคำนวณ เหมือนกับที่ชื่อของวิธีการนี้คือเอสเปรสโซ่กาแฟที่ชงสดอย่างทันทีทันใด นอกจากนั้นยังมีการควบคุมอย่างหนักที่จำกัดจำนวนของตัวแปร จำนวนพจน์ของคำตอบที่ได้ และจำนวนบล็อกที่ต้องใช้ ซึ่งโดยทั่วไปตัวแปร 10 ตัว ก็จะให้คำตอบ 10 พจน์ที่พร้อมใช้งาน

เมื่อส่งตารางค่าความจริงที่จะใช้งานให้กับโปรแกรมเอสเปรสโซ่ ก็จะได้ตารางคำตอบที่ย่อแล้วกลับมา โดยคำตอบจะอยู่ในรูปของ ON-cover(ฟังก์ชันบูลีนที่คืนค่า 1) หรือไม่ก็ OFF-cover(ฟังก์ชันบูลีนที่คืนค่า 0) ของฟังก์ชัน ขึ้นอยู่กับว่าจะเลือกใช้ SoP หรือ PoS โดยปกติแล้ว product term จะใช้ฟังก์ชันเอาต์พุตร่วมกันมากเท่าที่จะใช้ได้ แต่โปรแกรมสามารถจองฟังก์ชันเอาต์พุตที่แยกกันแต่ละอันได้ เพื่อให้เกิดประสิทธิภาพในการสร้างอาเรย์ลอจิกสองมิติอย่างเช่น PLA (Programmable Logic Array) หรือ PAL (Programmable Array Logic)

วิธีการเอสเปรสโซ่ได้ถูกพิสูจน์แล้วว่า มันประสบความสำเร็จอย่างมากที่รวมขั้นตอนการลดรูปฟังก์ชันลอจิกเข้าด้วยกันเป็นเครื่องมือสังเคราะห์ลอจิกเสมือนจริงที่ทันสมัย สำหรับการนำฟังก์ชันไปใช้ใน Multi-level logic นั้น คำตอบที่ผ่านการลดรูปแล้วคือคำตอบที่เหมาะสมที่สุดแล้ว โดยการแยกตัวประกอบและทำตารางไปยังเซลล์ลอจิกพื้นฐานในเทคโนโลยีที่ต้องการทั้งที่เกี่ยกับ FPGA (Field Programmable Gate Array) หรือ ASIC (Application Specific Integrated Circuit)

ขั้นตอนการทำงาน

  1. EXPAND (ขยาย implicant ให้มีขนาดใหญ่ที่สุด โดยคุณภาพของผลลัพธ์ขึ้นกับลำดับของการขยาย implicant)
    • ถ้า implicant ใดอยู่ภายใต้การขยายตัวของ implicant อื่นให้เอาออกจากการพิจารณา
  2. IRREDUNDANT COVER (หา prime implicant จากขั้นตอนที่ 1. เหมือนกับวิธีควิน-แมคคลัสกี้)
  3. REDUCE (ทำการลด prime implicant ให้มีขนาดเล็กที่สุด โดยยังคงครอบคลุม ON-set[กลุ่มที่ค่าความจริงเป็น 1 อยู่ติดกัน])
  4. Loop ไปเริ่มขั้นตอนที่ 1. ใหม่ จนกว่าการทำงานครั้งใหม่นี้จะให้คำตอบที่ดีกว่าเก่า

รหัสเทียม

Epresso ( Fon, Fdc ) { // รับฟังก์ชันบูลีนในรูปของ ON-set กับ DC-setFoff = Complement ( Fon, Fdc ); // สร้าง OFF-set จากฟังก์ชันที่รับเข้ามา เก็บไว้ใช้ต่อไปF = Expand ( Fon, Foff ); // สร้าง cube อันแรก เก็บลง FF = Irredundant ( F, Fdc ); // กำจัด cube ที่ซ้ำซ้อนออกE = Essentials ( F, Fdc ); // หา essential implicantF = F - E; // ลบ essential implicant ออกจากการทำงาน เพราะไม่สามารถย่อได้อีกFdc = Fdc - E; // แล้วนำ essential implicant ไปเก็บไว้ใน DC-set ชั่วคราวWhile ( Cost ( F ) ) { // ทำอีกรอบเมื่อ F ยังลดลงเรื่อยๆF = Reduce ( F, Fdc );F = Expand ( F, Foff );F = Irredundant ( F, Fdc );}F = F + E; //เติม essential implicant ที่ลบออกกลับเข้ามาreturn ( F ); // ส่ง essential implicant กลับ}

ตัวอย่างการใช้งาน

f (A,B,C,D) = m (4,5,6,8,9,10,13) + d (0,7,15)Espresso Input Espresso Output.i 4 -- # inputs .i 4.o 1 -- # outputs .o 1.ilb a b c d -- input names .ilb a b c d.ob f -- output name .ob f.p 10 -- number of product terms .p 30100 1 -- A'BC'D' true 1-01 1 -- A C' D0101 1 -- A'BC'D true 10-0 1 -- A B' D'0110 1 -- A'BCD' true 01-- 1 -- A' B1000 1 -- AB'C'D' true .e1001 1 -- AB'C'D true1010 1 -- AB'CD' true f = A C' D + A B' D' + A' B1101 1 -- ABC'D true0000 - -- A'B'C'D' don't care0111 - -- A'BCD don't care1111 - -- ABCD don't care.e -- end of list

ซอฟต์แวร์ที่นำวิธีการเอสเปรสโซ่ไปใช้งาน

Minilog

คือ โปรแกรมลดรูปตรรกะพจน์ที่เอาวิธีการเอสเปรสโซ่ไปใช้งาน มันสามารถสร้างบล็อกที่เป็นเกตสองชั้นที่มีอินพุตและเอาต์พุตมากถึง 40 ตัว หรือสร้าง synchronous state machine ได้ถึง 256 สถานะ สามารถดาวน์โหลดโปรแกรมมินิลอคได้ที่ Publicad (โปรแกรมมินิลอคได้รวมอยู่ใน Publicad toolkit)

Logic Friday

คือโปรแกรมแจกฟรีบนวินโดวส์ที่ทำ GUI ให้กับเอสเปรสโซ่ ซึ่งผู้ใช้สามารถป้อนฟังก์ชันบูลีนได้หลายแบบ เช่น ตารางค่าความจริง, สมการ, แผนภาพเกต สามารถดาวน์โหลดโปรแกรมลอจิกฟรายเดย์ได้ที่ sontrak

Espresso sources

ต้นฉบับของโปรแกรมเอสเปรสโซ่สามารถใช้งานได้ที่เว็บไซต์ของมหาวิทยาลัยเบิร์กเลย์ ที่ Pubs/Downloads/Espresso

ใกล้เคียง

ตัวย่อตรรกะพจน์เอสเปรสโซ่ ตัวย่อโรงเรียน ตัวย่อ ตัวต่อนินจา แสบซ่าส์มหากาฬ ตัวจ่ายพลังงานบลูม ตัวบ่งปริมาณสำหรับทุกตัว ตัวบ่งปริมาณสำหรับตัวมีจริง ตัวยึดกระดูกเชิงกราน ตัวยกและตัวห้อย ตัวพ่อเรียกพ่อ