Mantık optimizasyonu - Logic optimization

Mantık optimizasyonu , bir veya daha fazla belirtilen kısıtlama altında belirtilen mantık devresinin eşdeğer bir temsilini bulma sürecidir . Bu işlem, dijital elektroniklerde ve Entegre devre tasarımında uygulanan bir mantık sentezinin bir parçasıdır .

Genel olarak devre, önceden tanımlanmış bir yanıt gecikmesini karşılayan minimum bir çip alanıyla sınırlıdır. Belirli bir devrenin mantık optimizasyonunun amacı , orijinal devre ile aynı değerleri değerlendiren en küçük mantık devresini elde etmektir . Aynı işleve sahip daha küçük devre daha ucuzdur, daha az yer kaplar, daha az güç tüketir , daha kısa gecikme süresine sahiptir ve beklenmeyen çapraz konuşma , gecikmeli sinyal işleme tehlikesi ve metalik yapıların nano ölçekli seviyesindeki diğer sorunları en aza indirir. bir üzerinde bir entegre devre .

Boole cebri açısından, karmaşık bir boole ifadesinin optimizasyonu, daha basit bir ifade bulma sürecidir ve bu, değerlendirme üzerine nihai olarak orijinal olanla aynı sonuçları üretecektir.

Motivasyon

Karmaşık bir devre (yani mantık kapıları gibi birçok elemana sahip bir devre) sahip olmanın sorunu , her elemanın uygulanmasında fiziksel yer kaplaması ve kendi içinde üretilmesi zaman ve paraya mal olmasıdır. Devre minimizasyonu, entegre devrelerdeki karmaşık mantık alanını azaltmak için kullanılan bir mantık optimizasyonu şekli olabilir .

Mantık sentezinin ortaya çıkmasıyla , elektronik tasarım otomasyonu (EDA) endüstrisinin karşılaştığı en büyük zorluklardan biri, verilen tasarım açıklamasının en basit devre temsilini bulmaktı. İken iki seviyeli mantık optimizasyonu uzun şeklinde var olmuş Quine-McCluskey algoritması daha sonra ardından Espresso sezgisel mantık asgarileştirir hızla ilerleyen yonga yoğunlukları ve geniş kabulü Donanım tanımlama dilleri devre tanımı için, mantık optimizasyonu resmileştirdi bugün olduğu gibi etki alanı.

yöntemler

Mantık devresi basitleştirme yöntemleri, boole ifadesi minimizasyonuna eşit derecede uygulanabilir .

sınıflandırma

Bugün, mantık optimizasyonu çeşitli kategorilere ayrılmıştır:

Devre temsiline dayalı
İki seviyeli mantık optimizasyonu
Çok seviyeli mantık optimizasyonu
Devre özelliklerine göre
Sıralı mantık optimizasyonu
Birleşimsel mantık optimizasyonu
Yürütme türüne göre
Grafiksel optimizasyon yöntemleri
Tablolu optimizasyon yöntemleri
Cebirsel optimizasyon yöntemleri

Grafik yöntemler

İki seviyeli mantık için grafik küçültme yöntemleri şunları içerir:

  • Euler diyagramı (aka Euler dairesi ) (1768) Leonhard P. Euler (1707-1783) tarafından
  • John Venn (1834–1923)tarafından hazırlanan Venn şeması (1880)
  • Allan Marquand (1853–1924)tarafından Marquand diyagramı (1881)
  • Howard H. Aiken (1900–1973) ve Martha L. Whitehouse tarafından hazırlanan Harvard küçültme tablosu (diğer adıyla Harvard şeması ) (1951)
  • Ayrışma tablosu (1952), Robert L. Ashenhurst (1929–2009) ve Theodore Singer (1916–1991)
  • Veitch tablosu (1952) Edward W. Veitch tarafından(1924–2013)
  • Karnaugh haritası (1953) Maurice Karnaugh tarafından(1924–)
  • Kontak kemikleri , kontak ızgaraları (1955) ve Antonín Svoboda (1907–1980) tarafından hazırlanan üçlü harita
  • Grafik yöntemi (1957) Vadim Nikolaevich Roginskij [ Вадим Николаевич Рогинский ] (1913–1983)
  • Händler diyagramı (aka Händler daire grafiği , Händler'scher Kreisgraph , Kreisgraph nach Händler , Händler-Kreisgraph , Händler-Diagramm , Minimisierungsgraph , M n grafiği ) (1958) Wolfgang Händler (1920–1998)
  • Mahoney haritası aka M-haritası veya atama numaraları (1963) Matthew V. Mahoney tarafından
  • Grafik yöntemi (1965) Herbert F. Kortum  [ de ] (1907–1979)
  • Azaltılmış Karnaugh haritası (RKM)
  • Hiperküp yöntemi (1982) Stamatios V. Kartalopoulos
  • Minterm-halka haritası (MRM) veya Minterm-halka algoritması (1990) Thomas R. McCalla tarafından
  • V diyagramı (2001), Jonathan Westphal (1951–)
  • Paraboomig (2003), Shrish Verma ve Kiran D. Permar tarafından
  • Luca Amarú, Pierre-Emmanuel Gaillardon ve Giovanni De Micheli tarafından hazırlanan çoğunluk-inverter grafiği (MIG) (2014)
  • Pandit arsa (2017) tarafından Vedhas Pandit ve Björn W. Schuller (1975–)
  • Eisa Alharbi tarafından hazırlanan doğruluk grafiği (2020)

Boole ifadesi minimizasyonu

Aşağıda listelenen aynı boole ifadesi minimizasyonu (basitleştirme) yöntemleri devre optimizasyonuna uygulanabilir.

Boole fonksiyonunun bir devre tarafından belirtildiği durumda (yani, mümkün olan minimum boyutta bir eşdeğer devre bulmak istiyoruz), sınırsız devre minimizasyon probleminin uzun süredir -tamamlanmış olduğu varsayıldı , sonuç olarak 2008'de kanıtlandı, ancak süreci kolaylaştıran Karnaugh haritaları ve Quine–McCluskey algoritması gibi etkili buluşsal yöntemler vardır .

Boolean işlevi küçültme yöntemleri şunları içerir:

  • BlakePoretsky yöntemi
  • Nelson yöntemi
  • Quine–McCluskey algoritması
  • cebirsel dönüşümler yöntemi
  • Petrick'in yöntemi
  • Roth yöntemi
  • Kudielka yöntemi
  • kuyu yöntemi
  • Scheinman'ın ikili yöntemi
  • EVET-HAYIR ve VEYA-DEĞİL tabanlarında işlevleri en aza indirme yöntemi (Schaeffer ve Pierce temeli)
  • belirsiz katsayılar yöntemi
  • hiperküp yöntemi
  • fonksiyonel ayrıştırma yöntemi

Espresso buluşsal mantık küçültücü

Brayton ve diğerleri tarafından geliştirilen ESPRESSO algoritmasında bu konuya farklı bir yaklaşım izlenmiştir. En Kaliforniya Üniversitesi, Berkeley . Sezgisel tehlikesiz iki seviyeli mantık minimizasyon problemini çözmeyi amaçlayan kaynak ve performans açısından verimli bir algoritmadır .

Bir mantık fonksiyonunu mintermlere genişletmek yerine, program, ürün terimlerini ON-, DC- ve OFF- kapaklarında yinelemeli olarak temsil eden "küpleri" manipüle eder. Minimizasyon sonucunun global minimum olacağı garanti edilmese de , pratikte buna çok yakın bir şekilde yaklaşılırken, çözüm her zaman fazlalık içermez . Diğer yöntemlerle karşılaştırıldığında, bu yöntem esasen daha verimlidir, bellek kullanımını ve hesaplama süresini birkaç büyüklük derecesinde azaltır. Adı, anında bir fincan taze kahve yapma şeklini yansıtır. Bir kombinasyonel fonksiyon bloğunun değişken sayısı, çıktı fonksiyonları ve çarpım terimlerinde neredeyse hiç kısıtlama yoktur. Genel olarak, örneğin, onlarca çıktı işlevine sahip onlarca değişken kolayca ele alınır.

ESPRESSO girişi, istenen işlevselliğin bir işlev tablosudur; sonuç, seçilen seçeneklere bağlı olarak işlevin AÇIK-kapak veya KAPALI-kapakını açıklayan küçültülmüş bir tablodur. Varsayılan olarak, ürün terimleri birkaç çıktı işlevi tarafından mümkün olduğunca paylaşılacaktır, ancak programa çıktı işlevlerinin her birini ayrı ayrı ele alması talimatı verilebilir. Bu, PLA (Programlanabilir Mantık Dizisi) veya PAL (Programlanabilir Dizi Mantığı) gibi iki seviyeli mantık dizilerinde verimli uygulamaya izin verir .

ESPRESSO algoritması o kadar başarılı oldu ki, neredeyse her çağdaş mantık sentez aracına standart bir mantık fonksiyonu minimizasyon adımı olarak dahil edildi . Çok seviyeli mantıkta bir işlevi uygulamak için, minimizasyon sonucu, çarpanlara ayırma ile optimize edilir ve hedef teknolojideki mevcut temel mantık hücrelerine eşlenir, bu ister alan programlanabilir bir kapı dizisi (FPGA) isterse uygulamaya özel bir entegre devre ile ilgili olsun ( ASIC).

İki seviyeli ve çok seviyeli temsiller

Devrelerin iki seviyeli bir devre temsili, SOP'ler ( ürünlerin toplamı ) açısından devrenin düzleştirilmiş görünümüne atıfta bulunurken - bu, tasarımın bir PLA uygulamasına daha uygundur - çok seviyeli bir temsil , daha fazla Devrenin keyfi olarak bağlanmış SOP'ler, POS'lar ( toplamların çarpımı ), çarpanlara ayrılmış form vb . açısından genel görünümü . Mantık optimizasyon algoritmaları genellikle yapısal (SOP'ler, çarpanlara ayrılmış form) veya işlevsel ( İkili karar diyagramları , ADD'ler ) temsili üzerinde çalışır. devrenin.

İki fonksiyonumuz varsa F 1 ve F 2 :

Yukarıdaki 2 seviyeli gösterim, CMOS Rep'de altı ürün terimi ve 24 transistör alır.

Çok düzeyli işlevsel olarak eşdeğer bir temsil şöyle olabilir:

P = B + C .
F 1 = AP + AD .
F 2 = A'P + A'E .

Buradaki düzey sayısı 3 iken, B + C teriminin paylaşılması nedeniyle toplam ürün terimleri ve literal sayısı azalmaktadır.

Benzer şekilde, davranışları sırasıyla sonlu durum makine durum tabloları/şemaları veya Boole fonksiyonları ve ilişkileri ile tanımlanabilen sıralı ve kombinasyonel devreler arasında ayrım yaparız .

Örnek

Orijinal ve basitleştirilmiş örnek devre

Bir devreyi küçültmenin birçok yolu olsa da, bu, bir Boole işlevini en aza indiren (veya basitleştiren) bir örnektir. Devre tarafından gerçekleştirilen Boole işlevi, işlevin gerçekleştirildiği cebirsel ifadeyle doğrudan ilişkilidir. temsil etmek için kullanılan devreyi düşünün . Bu ifadede iki olumsuzlama, iki bağlaç ve bir ayırmanın kullanıldığı açıktır. Bu, devreyi kurmak için iki invertöre , iki AND geçidine ve bir OR geçidine ihtiyaç duyulacağı anlamına gelir .

Devre, Boole cebri yasaları uygulanarak veya sezgi kullanılarak basitleştirilebilir (en aza indirilebilir). Örnek , doğru olduğunda yanlış olduğunu ve bunun tersi olduğunu belirttiğinden, bunun basitçe şu anlama geldiği sonucuna varılabilir . Mantıksal kapılar açısından, eşitsizlik basitçe bir XOR kapısı (dışlayıcı veya) anlamına gelir . Bu nedenle, . O halde aşağıda gösterilen iki devre eşdeğerdir:


Sonucun doğruluğu bir doğruluk tablosu kullanılarak kontrol edilebilir .

Ayrıca bakınız

Referanslar

daha fazla okuma