模擬電路可以利用三極管的導(dǎo)通 / 截止實(shí)現(xiàn)數(shù)字狀態(tài)的切換,從而實(shí)現(xiàn)0和1的邏輯運(yùn)算。
邏輯運(yùn)算常用的有3種:與、或、非,它們都是1個(gè)二進(jìn)制位的位運(yùn)算。
在位運(yùn)算的基礎(chǔ)上,可以進(jìn)一步實(shí)現(xiàn)加減運(yùn)算。
位運(yùn)算的特點(diǎn)是,多個(gè)位之間是無(wú)關(guān)的。
加減運(yùn)算有進(jìn)位和借位,多個(gè)位之間是相關(guān)的。
這里簡(jiǎn)單的給一下它們的電路:
1,與門,
電路,與門
2個(gè)二極管只要有1個(gè)導(dǎo)通(低電位0),輸出電位就是0.7v,為低電位0。
0 & 1 == 1 & 0 == 0.
2個(gè)二極管都截止時(shí)(高電位1),輸出等于電源電壓,為高電位1。
1 & 1 == 1.
2,或門,
或門正好反過(guò)來(lái),二極管接近電源正極,電阻接近電源負(fù)極。
電路,或門
2個(gè)二極管里只要有一個(gè)導(dǎo)通(高電位1),輸出端就是高電位1。
1 | 0 == 0 | 1 == 1.
2個(gè)二極管都截止時(shí),輸出端是低電位0。
0 | 0 == 0.
二極管接到電源正極上就會(huì)導(dǎo)通,接到負(fù)極上就會(huì)截止。
3,非門,
非門,利用的是三極管的反相放大器。
當(dāng)b極為高電位1時(shí),三極管導(dǎo)通,電源電壓大部分加在上拉電阻上,輸出為低電位0。
反之,輸出為高電位1。
電路,非門
位運(yùn)算的電路都是很簡(jiǎn)單的,因?yàn)槎鄠€(gè)位之間不相關(guān)。
只要把多個(gè)電路并聯(lián)起來(lái),每個(gè)處理1個(gè)二進(jìn)制位,就可以實(shí)現(xiàn)32位的運(yùn)算。
4,加法,
加法因?yàn)橛羞M(jìn)位,比單純的位運(yùn)算要復(fù)雜一點(diǎn)。
0 + 0 = 0,
1 + 0 = 1,
0 + 1 = 1,
1 + 1 = 10,
二進(jìn)制加法的前3種情況就是或運(yùn)算,所以1個(gè)或門就可以處理前3種情況。
復(fù)雜的是1+1 = 10的情況,要處理進(jìn)位:個(gè)位要變成0,十位要進(jìn)位1。
主要說(shuō)說(shuō)這種情況:
下圖是我隨手畫的二進(jìn)制加法的電路
電路,加法
藍(lán)色的電阻和2個(gè)向右的二極管組成或門,處理前3種情況:
0 + 0時(shí),個(gè)位輸出和三極管的b極都是0,結(jié)果為0;
0 + 1 == 1 + 0時(shí),個(gè)位輸出為1,三極管的b極為0,結(jié)果為1。
最后一種情況,1 + 1 == 10 時(shí):
紅色的電阻和2個(gè)向左的二極管組成與門,當(dāng)2個(gè)加數(shù)都是1時(shí),三極管的b極為高電位1,
這時(shí)三極管導(dǎo)通,三極管的c極為低電位0;
或門的輸出為1,電流將沿著圖中箭頭的流向,經(jīng)過(guò)三極管的c-e極流入電源負(fù)極,
個(gè)位輸出與三極管的c極電壓一樣,為低電位0;
十位輸出與三極管的b極電壓一樣,為高電位1。
這樣就實(shí)現(xiàn)了1個(gè)二進(jìn)制位的加法運(yùn)算:1 + 1 = 10.
如果有多個(gè)二進(jìn)制位,就把上圖的電路并聯(lián)起來(lái),同時(shí)把(十位的)進(jìn)位輸出轉(zhuǎn)到下一級(jí)的輸入,繼續(xù)更高位的運(yùn)算。
位數(shù)越高電路越復(fù)雜,因?yàn)榧臃ǖ母鱾€(gè)位之間是可以進(jìn)位的。
所以,在數(shù)字電路層面不適合處理復(fù)雜的邏輯,因?yàn)閮H僅是加減乘除的實(shí)現(xiàn)就已經(jīng)很復(fù)雜了。
所以,計(jì)算機(jī)的設(shè)計(jì)必然是分層的:
1)數(shù)字電路僅僅實(shí)現(xiàn)匯編代碼級(jí)的邏輯,
2)更復(fù)雜的程序邏輯,放在C語(yǔ)言層面,
3)最復(fù)雜的邏輯,放在高級(jí)語(yǔ)言層面,畢竟C語(yǔ)言是個(gè)掛著高級(jí)語(yǔ)言的名頭的大號(hào)匯編如果不做分層設(shè)計(jì),電子工程師要考慮的情況就太多了,需求的耦合度太大!
一旦耦合度大了之后,工程師們就會(huì)考慮分層分模塊的設(shè)計(jì)。
編譯器被分為詞法、語(yǔ)法、語(yǔ)義、中間代碼、機(jī)器碼、目標(biāo)文件生成、連接器,也是因?yàn)椴贿@么劃分的話?cǎi)詈隙忍罅恕?/p>
匯編代碼難寫,是因?yàn)樗^(guò)于底層,與人類平時(shí)的思維方式差別很大。
但從數(shù)字電路的角度來(lái)看,匯編代碼已經(jīng)很上層了。
-
三極管
+關(guān)注
關(guān)注
142文章
3561瀏覽量
120890 -
模擬電路
+關(guān)注
關(guān)注
125文章
1546瀏覽量
102438 -
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7575瀏覽量
134090 -
數(shù)字電路
+關(guān)注
關(guān)注
193文章
1579瀏覽量
80180 -
邏輯運(yùn)算
+關(guān)注
關(guān)注
0文章
51瀏覽量
9735
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論