題:
離散邏輯設計
Curious
2018-04-06 12:58:11 UTC
view on stackexchange narkive permalink

我的任務是建造一個簡單的報警裝置。它只需要測量一些輸入,輸出就會做出相應的響應(簡單地說!)。在我看來,使用幾個離散的邏輯門就可以完成工作,但是一位同事(與我合作)決定我們應該改用可編程邏輯。他的案子獲勝,因為首先,他比我年長,其次,他的主要論點是可編程設備是未來,我們希望製造出可以證明未來的產品。

我的問題是,如果您的設計可以通過幾個離散邏輯門輕鬆實現,那麼使用離散邏輯進行設計是否值得?使用它們比可編程有什麼好處嗎?還是它會慢慢被可編程邏輯完全淘汰?明確地說,我不希望得到“我相信是這種情況”或“我個人認為這是……”的答案。這些天在消費電子產品中值得與他們一起設計嗎?

這聽起來像是90年代以來的一個問題... µC已獲勝,與思考如何將六個IC連接在一起,更不用說佔用空間了,它更容易投入並完成。
離散門具有一大優勢。沒有工具鏈。
沒有工具鏈?你是什麼意思@jonk
-1
@jonk的意思是,當使用微控制器時,您需要用於為微控制器創建程序的軟件,例如IDE(圖形或文本用戶界面)以及專用於所使用微控制器的編譯器/鏈接器/其他工具組合,稱為工具鏈。
@Curious:可以完成工作嗎?不。利基的使用,例如膠合邏輯
@PlasmaHH,所以您認為離散邏輯設計的未來死了嗎?
我想從長遠來看,對他們來說最好的用途之一就是在人們第一次學習邏輯原理的學校和大學!
@Curious:差不多。看看周圍有多少現代設備。如前所述,存在利基用途,它們可以是膠合邏輯,但是僅此而已
嗯,大約20年前,我父親建造了一個警報系統,我敢肯定,這可能是最簡單的組件。不幸的是,我認為我找不到原理圖。
對此表示反對的人...問題出了什麼問題?
六 答案:
MCG
2018-04-06 14:26:32 UTC
view on stackexchange narkive permalink

離散邏輯設計不會被完全淘汰。在某些應用中,最好使用分立邏輯IC。正如已經指出的,速度是一個很大的優勢,儘管在許多應用程序中,速度差異並不那麼重要。

在設計階段,如果您設計的電路只需要在電路的不同點執行2或3個簡單的邏輯功能,則最好使用離散門,以節省設計時間。也要編寫程序。

對於需要執行更複雜的邏輯功能的系統,將所有的時間花在編寫真值表上,然後弄清楚哪些邏輯門在編寫小程序時會走到哪裡等等,這是很愚蠢的。通常,更多的輸入意味著需要更多的門,並且離散設計所需的時間也更長。

儘管離散邏輯真正具有優勢,但它仍在學習中。當您第一次學習邏輯設計以及門的工作方式等知識時,在這裡實際接觸邏輯門並設計具有分立部件的不同功能的地方就很棒。了解基本原理總是一個好主意。因此,因此,離散邏輯總是在這個世界上佔有一席之地。至於消費電子產品?未來肯定是可編程的。

簡單的答案,好點,並回答所有提出的問題!謝謝!
作為具有電子學背景的程序員,我想指出,如果您不編制自己的真值表,那麼您將花費大量的時間調試程序,而這需要花費一些時間來設置真值表。您的真值表將是您程序的不錯文檔。
是的,我同意,擁有真值表總是有用的,我將編輯答案以使其與這種情況更加相關
我使用離散邏輯實現的最後一個設計對使用5V邏輯的時序要求“盡可能低”,並且程序要求相對簡單。我可以花很多錢在漂亮的閃亮FPGA上,也可以只用“守舊派”的方法。軍用規格芯片經歷了皮秒級的全電壓擺幅,將在核末日和蟑螂中倖存下來,而且幾乎不花任何錢。總會有離散邏輯的地方。
Michel Keijzers
2018-04-06 13:02:50 UTC
view on stackexchange narkive permalink

我根本不是一名專業的電子工程師(實際上只是一個初學者),但是我只有幾分錢是,只有在時序很重要或要求不使用可編程邏輯的情況下,才應使用專用的離散邏輯IC。

使用微控制器,您可以實現更複雜的邏輯,並且更加靈活。另外,無需更改硬件即可對其進行重新編程。

此外,當需要軟件無法跟上的快速時序時,可以使用專用邏輯IC。但是對於警報系統來說,這似乎是不必要的(不需要納秒級的響應時間)。

以下是我對優點/缺點的解釋:

 離散邏輯(IC)可編程邏輯/
                                                    (微控制器)
 納秒級速度x-
 只有幾個“操作員”需要x-
 無需工具鏈x-
 成本效率*-x
 PCB /原型尺寸-x
 改變的靈活性-x
 生產成本-x
 擴展功能的可能性-x

*假設需要多個(不同的)邏輯功能
 
那麼您認為速度是主要優勢?+1的答案,我特別喜歡您的桌子!
是的,硬件比軟件快,因此,如果您確實需要速度,則需要硬件IC,否則我會選擇“軟件”(微控制器)解決方案。順便說一句,如今,對於更複雜的速度敏感解決方案,使用了FPGA。
與分立式FPGA相比,FPGA有何優勢?如果他們很快?
-1
我當時並沒有計劃使用FPGA,現在總工程師已經決定了硬件!我只是出於好奇而問這個問題,看看有什麼好處。順便說一句,如果沒有其他答案,我會及時接受您的回答。只是想讓別人有機會過早接受!
我認為您的總工程師做出了正確的決定。警報系統通常是可以擴展的東西(從多重來源獲取更多輸入並對其進行操作),甚至將它們組合在一起,然後添加功能,例如發送自動SMS,發出蜂鳴器/警報信號,也許記錄一些傳感器等
@Curious您可以將FPGA想像成一大堆可編程離散邏輯。由於它們全部在一塊矽片上,因此它的運行速度比單個芯片要快得多。解答中遺漏的重要信息是,離散/ FPGA並行執行,並且可以設計為僅出於一種目的而消耗面積和功耗,而處理器則是順序的和通用的。
@Curious僅注意它不是“速度”,而是“納秒速度”。uC的反應時間為微秒(最多數百微秒)。由於您的警報將需要在幾毫秒內做出反應,因此兩者都有足夠的時間。
此外,請考慮“改變的靈活性”不僅僅意味著改變,因為我不喜歡它。如果您有一個“彈力”按鈕作為輸入,則需要進行一些硬件過濾(低通濾波器,觸發器等),或者僅用uC進行SW抖動。更改原理圖+更改佈局+製作新的VS示例。從網站複製並粘貼防抖代碼+修復錯誤...
沒有提及功耗?
@MichelKeijzers現代FPGA的速度明顯快於傳統分立邏輯IC所能完成的一切。
-1
@MichelKeijzers的主要因素是單個IC內柵極的電容要低得多。距離\ f \ $較低時,距離的重要性較小,但是隨著\ $ f \ $的增加,距離的重要性日益增加。綜合工具可以在FPGA內部重新排列,以最大程度地減小距離(即增加時序裕量)。
@MichelKeijzers是正確的。現在,光速是我們的主要限制因素,縮短距離是提高速度的一種方法。
@user38168謝謝,聽起來也很合乎邏輯(因此,半導體行業的nm重疊較少,可以最大程度地減少距離,還有其他優勢)。
Dmitry Grigoryev
2018-04-06 16:41:30 UTC
view on stackexchange narkive permalink

如果您要創建商業產品,那麼您實際上不應該選擇設計,因為“它是可編程的”或更高級別的同事提出了它。相反,您應該估算與每個設計相關的風險成本,並選擇成本最低且可接受的風險水平的設計。首先:

  • 單個組件的價格增加了成本
  • 所需的PCB尺寸和復雜性會增加​​成本
  • 所需的設計工作和工具增加了成本
  • 所需的測試和認證會增加成本

  • 缺乏靈活性(例如,更改離散邏輯需要新的PCB)
  • 缺乏團隊中特定技術的經驗是一個風險
  • 無法滿足項目要求(例如目標功耗)

如果為您的特定項目購買分立邏輯IC的價格便宜,那麼您的團隊就有這種設計的經驗,並且您認為缺乏靈活性不是關鍵,因此沒有理由不使用分立邏輯。

非常真實因此,您認為離散邏輯有未來嗎?
-1
LukeHappyValley
2018-04-06 16:15:39 UTC
view on stackexchange narkive permalink

安全性是其他答案遺忘的一個方面。離散邏輯電路比複雜得多的微控制器設計更可靠。我幫助製造了氫原型車,所有安全電路均採用離散邏輯設計。安全性和可靠性是您可能需要考慮設計警報系統的一個方面。

通常情況並非如此。一個人可以在處理器上構建一個極其不安全的離散系統和一個極其安全和強大的系統。您的團隊沒有使用處理器的技能,但這並不會使其固有地不安全。您可能在處理器中進行大量複製,這在離散系統中是不切實際的。
-1
@immibis那是糟糕的設計和規格,不是處理器固有的。系統,分立式,FPGA或任何其他形式總是有可能發生故障。同意故障保險櫃應該盡可能簡單,但這並不意味著它們必須是離散的。
@immibis由於僅存在焊接缺陷,離散邏輯變得比經過一定設計尺寸的MCU可靠性低。而且,如果離散邏輯包括觸發器,那麼最終導致的禁用系統狀態問題與軟件中的問題完全相同。
不知道我是否100%同意。很多“安全性”問題可能歸結於設計,而不是所使用的組件,儘管這也可能是相反的!絕對不是黑白問題。它不能完全回答問題,但是不足以支持投票!
-1
在發生故障的情況下,分立零件的動作可能更可預測...
也就是說,超低電平安全電路;確實,對於某些更複雜的電路,您想使用除離散邏輯之外的其他技術,呵呵。 至於@awjlogan,,這不是技能的問題,我發現這與本主題無關。
@LukeHappyValley技能是絕對相關的,這並不意味著批評(如果遇到這種情況,深表歉意)。安全是“難”的,因此,如果您的團隊在硬件方面要強大得多,那麼您可能應該走這條路,反之亦然。
-1
Janka
2018-04-06 17:06:48 UTC
view on stackexchange narkive permalink

我不得不承認,每當我必須執行一些複雜的組合邏輯以及一些計時器時,我都不會去理會離散邏輯,但always代碼是一個用於ATtiny的最小彙編程序(如果喜歡,請使用PIC))。

組合邏輯最多可包含20行彙編程序(幾個查找表)。每個軟件計時器另加10行。硬件計時器更少。如果需要,甚至可以在板上使用A / D轉換器,比較器和PWM生成。

唯一的缺點是您必須刷新此部分。有時,這是個秀發表演,但事實並非如此。最大的優點是您需要的電路板空間要少得多,佈線要簡單得多,並且可以根據需要輕鬆更改邏輯功能。


單獨的邏輯IC的剩餘用例是必須以高於1µs的速度工作。

有點不合時宜,但是ATTiny x17 / x16部件有兩個內置的3輸入LUT。確實非常方便!
rackandboneman
2018-04-06 17:27:21 UTC
view on stackexchange narkive permalink

在最終產品中-如果我們談論的是消費類設備,離散邏輯可能沒有很多優勢。異常可能需要在不利條件下非常堅固,或者非常容易完全表徵(使用基於固件的東西的實際複雜性和潛在的隱藏錯誤要高得多),或者您希望能夠從極端的情況重新構建幾十年後會出現類似的零件(即使技術字母發生變化,74xx的足跡也會非常緩慢地改變)。

使用離散時間實際上可以做得更好的事情是自定時,異步邏輯(完成一件事會立即觸發另一件事)。這種設計的合法性是一個神聖的戰爭主題。不用擔心,同步的人會想打敗你,但是你只需要帶走他們的時鐘,他們就會毫無意義地永遠等待著它。

說到設計方法論,我想說這取決於設計人員的喜好-一種CPLD設備,您可以在字面上直接重新佈線(“將其與引腳接觸,直到有喀噠聲”)。最偏激的觀點,以及在主機PC供電的情況下(當您將電線與引腳接觸時,模擬火花,最好是出於環境的考慮)肯定會受到那些喜歡離散邏輯的人們的喜愛:)



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...