0和1的故事-2
市面上鋪天蓋地的是各類功能芯片,做單片機開發的工程師應該更有體會.需要什么功能,只需要增加相應的集成芯片就行了,至于說芯片的工作原理,也就僅僅局限在技術手冊層面的理解吧.
都知道數字電路其實就只有兩個狀態,開和關.但是幾乎所有的數字系統都是由開和關組成的,這就是數字電路的力量,也是它深深吸引我的地方.
我想把數字電路的學習研究當作自己的業余愛好,慢慢地學,慢慢地練,一點一點的積累自己的技術,不急躁,不浮躁,打呆仗,打硬仗,這樣走下去總會有一點收獲吧.
和諸位有此志向的朋友們共勉.
先將準備寫的知識點羅列出來吧,這一帖想接著<<【我是工程師第四季】0和1的故事>>繼續寫.先期準備先寫一點通過三極管實現各類門電路,接著準備通過各類邏輯門電路組建常規的功能電路,諸如計數器,加法器,鎖存器,觸發器,存儲器,譯碼器,移位寄存器,存儲器等數字電路,最終目的是想通過各類邏輯電路搭建出一個簡易的CPU出來.
工程量非常大,權當自己的業余愛好,這樣沒有壓力,應該可以長久的堅持下來.
邏輯門電路搭建CPU,目前主流的方法是通過FPGA實現,需要掌握VERLOG語言,直接用邏輯門電路制作CPU周期長,費時費力。不過我還是想先用邏輯門電路搭出來,這樣對于底層的原理會理解的更加透徹深刻。
先從最基本的邏輯門電路的實現開始吧,有興趣的朋友可以一起學習。越來越覺得把電子技術當作愛好比當作謀生的手段能夠走的更遠,走的更長。
歡迎大家一起討論學習數字電路的知識點,以前我認識的工程師給我灌輸的觀點是模擬電路難學,數字電路簡單。其實真實的情況并不是如此,數字電路個人認為非常的繁瑣,和模擬電路比較,有過之而無不及。簡簡單單的兩個狀態開和關或者說零和一就可以幾乎囊括了電子世界的大半個江山,這簡單嗎,很顯然不簡單。說數字電路簡單的朋友,其實大多數人對于數字電路的理解僅僅是門外漢都算不上的層次。
廣大的電源工程師其實很多人都不懂數字電路,至于底層驅動的編程,CPU結構的理解,RSIC架構和CSIC架構的區別,不同指令集的理解等等,其實幾乎都不懂,很多人連涉及的層次都達不到,僅僅是根據自己的理解就大言不慚的告訴新手們,數字電路簡單。個人覺得這是對廣大新手能力的扼殺,同時也是對剛入門的新人的極大的不負責任。
接下來準備寫點用邏輯門組成的時序邏輯和組合邏輯電路,常規的各類觸發器等等。慢慢寫,學習鴻哥好榜樣,用一輩子的時間去學習,去寫帖子,寫高質量的帖子,幫助更多的迷茫的新人們,同時也希望諸多老鳥們能一起加入進來共同討論學習,謝謝。
曾經的我很迷茫,也理解新手們剛步入這個行業的痛楚,希望通過自己的努力能夠將電子技術寫的通俗大眾一點,幫助更多的后來者掃清入門階段的障礙。限于自己的水平,我自己遇到很多問題,也是邊寫邊學邊練。我想只要勤奮,總能在電子技術有所收獲吧。
努力,和有志于電子技術行業的朋友們共勉。
針對與,或,非門再進行一些補充吧。
先說與門,之前帖子中提到與門有一項比較重要的作用就是作為使能端口的應用。其實原理很簡單,最直觀的方法是觀察與門的真值表便可一目了然。
與門相當于乘法運算,有零即為零,全一才初一。作為雙輸入與門,如果其中一個門作為使能端,一直處于低電平狀態,另一個輸入端口不管是何種狀態,輸出固定為零。當使能端口置一,另一輸入端口則可以將數據輸送至輸出端口。
繼續更新,上一帖講解了譯碼器,接著就得講講編碼器了。
編碼器的原理相當于是譯碼器的逆過程,也就是將2^n的位碼轉換為n位的輸出碼。在信息的傳輸過程中,經常涉及到編碼的過程。雖然原理很簡單,但是真正應用都得時候,這是一門非常大的學問。比如在編碼的過程中實現加密,信息傳輸過程中為防止掉包現象,需要加入校驗位等等操作,那是相當的繁瑣。
我在這里僅僅講一點基本的編碼器的邏輯實現方式,方便大家理解CPU的編碼原理,先給大家來個簡單的編碼器,四二編碼器:
今天抽時間講講多路復用器的工作原理吧。在CPU中,有三大總線,分別是數據總線,控制總線,地址總線。由于CPU內部的控制部件很多,涉及到的數據的傳輸也非常復雜,為了節省資源,不可能每個功能模塊都配相應的傳輸線路,怎么解決這個問題呢。兩種思路,第一就是通過三態門將不同的工作模塊與總線相連。哪個模塊需要傳輸數據時,就相應的將這一模塊通過三態門連接到傳輸總線上。第二種方法就是多路復用技術,通過控制多路復用器的連接端口,在不同的時刻允許對應的端口與傳輸總線連接,實現數據的傳輸。
三態門和多路復用器的區別是,三態門的傳輸方式可以實現數據的輸入和輸出,也即是雙向傳輸,而多路復用器一般只可以用于單向的數據輸出。