東京科學大學研究所資訊理工學院 2020 問題五 / 科学大院理工学 2020 問題五

📢 本文由 gemini-2.5-flash 翻譯

問題一: https://blog.yexca.net/archives/198
問題二: https://blog.yexca.net/archives/201
問題三: https://blog.yexca.net/archives/200
問題四: https://blog.yexca.net/archives/202
問題五:此篇文章

引言

應該快兩週了吧,終於把這份試卷看完了,效率不是普通的低啊。整體來說怎麼說呢,雖然整體難度是比中國 408 的難度低一點,但考試的風格與側重點並不相同,具體來說還是不太好比較。希望下次我的效率可以高一點啊。

碎碎念

話說最近比較少寫碎碎念了,這其實是因為當我想著要發一篇文章的時候,通常都已經很累了,已經沒有精力寫了。說到這裡就想到以前對於一樣東西從來都只是考慮要不要去學,現在不得不把時間、精力等都算進去了,最近看到的一個梗:

你就不能一手抓公職考試,一手抓選調,一手抓國考,一手抓省考,一手抓教師證,一手抓留學,一手抓實習,一手抓面試,一手抓轉正,一手抓秋季徵才,一手抓畢業專題,一手抓戀愛?但你還得留一手,因為中國人講究凡事留一手。

讓我感觸很深,人的精力是有限的,獲得一定收穫的同時,必定會失去一些所得,包括時間、精力、熱情等,這些其實都是可以被量化的變數,只是以前這些變數的上限大於甚至遠大於我的活動,並沒有被發掘而已(當然也可能是透支之類的其他轉換,為了嚴謹加個說明)。隨著年齡的增長,也可以說是經歷或看的事情的增加,慢慢地,越來越多的變數必須被考慮,從而導致我每天都很疲憊且效率低下吧。

有時候活著很累,可能是我太唯物了,多一點唯心,世界還是比較美好的(我已經不敢對任何事物進行肯定性的描述了,我害怕不確定性,但生活往往沒有確定的事物,雖然這歸因於對變數的不掌握,不多說了,不然又得一大段)。

背景

考慮一個如圖5.1所示的邏輯電路X,以 $ck$ 為輸入,並輸出 $z_2,z_1,z_0$。這裡,$R_0,R_1,R_2$ 是正緣觸發型(前緣觸發型)D型正反器,初始化時的輸出為0。此外,F是一個邏輯電路,以 $x_2,x_1,x_0$ 為輸入,輸出 $y_2,y_1,y_0$,其構成如圖5.2所示。A和B是圖5.3所示的兩種2輸入閘之一。對電路X的輸入 $ck$ 施加一個以1單位時間為週期的時脈脈衝。以下 $n$ 為正整數,$t$ 為時刻。假設在時刻 $t=0$ 時 $R_0,R_1,R_2$ 已被初始化,且時刻0之後第 $n$ 個時脈脈衝的上升緣所產生的輸出,在時刻 $t=n$ 時穩定地得到 $z_2,z_1,z_0$。此過程如圖5.4所示。此後,電路組成元件(閘、正反器及導線)所造成的延遲,相較於時脈脈衝的週期,足夠小可以忽略不計。

  • 圖5.1:邏輯電路X

図5.1:論理回路X

  • 圖5.2:邏輯電路F

図5.2:論理回路F

  • 圖5.3:2輸入閘

図5.3:2入力ゲート

  • 圖5.4:電路X的運作

図5.4:回路Xの動作

1

回答以下 a~f 問題。

a)電路F的輸出 $y_2,y_1,y_0$ 僅由輸入 $x_2,x_1,x_0$ 的值決定。執行此類操作的電路名稱,從以下選項中選擇最合適的一項。

甲 非同步電路

乙 組合邏輯電路

丙 循序邏輯電路

丁 非線性電路

b)在時刻 $t=n$ 時,電路X的輸出 $z_2,z_1,z_0$ 分別等於時刻 $t=$ 甲 的 $y_2,y_1,y_0$ 值。將甲以 $n$ 的式子表示。

c)為了使電路X如圖5.4所示般運作,請以圖5.5所示的表格形式完成表示電路F運作的真值表。

  • 圖5.5:電路F的運作

図5.5:回路Fの動作

d)執行如圖5.4所示操作的電路名稱,從以下選項中選擇最合適的一項,並以符號①~④作答。

① 解碼器 ② 多工器 ③ 計數器 ④ 移位暫存器

e)為了讓電路X如圖5.4般運作,圖5.2中的A和B應分別填入什麼?從圖5.3中選擇並以符號①~⑥作答。可以使用相同的閘多次。

f)邏輯變數 $x$ 和 $y$ 的邏輯AND運算以 $xy$ 表示,邏輯OR運算以 $x+y$ 表示,$x$ 的反相(NOT)以 $\bar{x}$ 表示。電路F的輸出 $y_2$ 為:


1-解答

1-a

  • 非同步電路是指不使用時脈訊號,各部分獨立運作的電路。
  • 組合邏輯電路是指輸出僅由輸入的當前值決定的電路。
  • 循序邏輯電路是指輸出不僅依賴當前輸入,也依賴內部狀態(例如正反器的輸出)的電路。
  • 非線性電路是指輸入與輸出關係不呈線性的電路。

這題顯然屬於「組合邏輯電路」。

1-b

因為D型正反器會先接收一個輸入,僅在時脈上升緣觸發時將其放到輸出端。由於狀態更新的同步性,D型正反器會引入一個週期的延遲,所以 甲: $n-1$。

1-c

x_2x_1x_0y_2y_1y_0
000001
001010
010011
011100
100101
101110
110111
111000

1-d

  • 解碼器(Decoder):解碼器是一種將少量輸入訊號解碼為較多輸出訊號的組合邏輯電路。它根據輸入的二進位編碼,啟動對應的輸出線。
  • 多工器(Multiplexer):多工器是一種從多個輸入訊號中選擇一個訊號輸出的組合邏輯電路。它利用選擇訊號(Select Lines)來決定哪個輸入訊號通過到輸出端。
  • 計數器(Counter):計數器是一種循序邏輯電路,用於對脈衝訊號進行計數。根據脈衝訊號的個數,計數器的輸出值以特定的方式變化。
  • 移位暫存器(Shift Register):移位暫存器是一種儲存資料並能按照一定方向移動資料的循序邏輯電路。它由一系列正反器組成。

這題顯然屬於「移位暫存器(Shift Register)」。

1-e

A: ② (OR) B: ① (AND)

透過真值表及其電路進行分析,因為有多個輸出,可以一個輸出一個輸出地看。由於 $y_0$ 的電路已經決定,首先看 $y_1$ 輸出為 1 時的輸入。

$x_2$$x_1$$x_0$
001
010
101
110

分析電路,可以暫時忽略輸入 $x_2$ (從電路或下一問可以知道,簡化後無 $x_2$)。

然後代入為 1 的輸入進行實驗,得到 A 是 OR 閘,B 是 AND 閘。

分析 $y_2$ 輸出為 1 時的輸入驗算,結果正確。

1-f

$$ \begin{align} y_2&=\bar{x_2}\bar{x_1}x_0+\bar{x_2}x_1\bar{x_0}+x_2\bar{x_1}x_0+x_2x_1\bar{x_0} \\ &= \bar{x_2}(\bar{x_1}x_0+x_1\bar{x_0})+x_2(\bar{x_1}x_0+x_1\bar{x_0}) \\ &= \bar{x_1}x_0+x_1\bar{x_0} \end{align} $$

2

圖5.6所示的G是一個邏輯電路,以 $x_2,x_1,x_0$ 為輸入,輸出 $y_2,y_1,y_0$。使用G,構成如圖5.7所示的邏輯電路Y,以 $ck$ 為輸入,輸出 $z_2,z_1,z_0$。進一步地,使用Y構成如圖5.8所示的邏輯電路 $X'$。圖5.8中的C和D為圖5.3所示的2輸入閘之一。回答以下 a~e 問題。

圖5.6:邏輯電路G

図5.6:論理回路G

圖5.7:邏輯電路Y

図5.7:論理回路Y

圖5.8:邏輯電路 $X'$

図5.8:論理回路 X

圖5.9:電路Y的運作

図5.9:回路Yの動作

a)電路G為了得到輸出 $y_0$ 使用了5個閘。請描述一個可以使用圖5.3中列出的2個或更少的閘,來得到與G中 $y_0$ 相同輸出的電路。

b)對電路Y的輸入 $ck$ 施加一個以1單位時間為週期的時脈脈衝。假設在時刻 $t=0$ 時 $R_0,R_1,R_2$ 已被初始化,且時刻0之後第n個時脈脈衝的上升緣所產生的輸出,在時刻 $t=n$ 時穩定地得到 $z_2,z_1,z_0$。請以圖5.9所示的表格形式完成時刻 $t=1,4,7,12$ 時電路Y的輸出 $z_2,z_1,z_0$。

c)假設 $m$ 為非負整數。在上述b)所示的條件下,將時刻 $t=m$ 時電路Y的輸出組合 $(z_2,z_1,z_0)$ 視為向量,並表示為 $z(m)$。請回答 $z(m)$ 和 $z(m+1)$ 的漢明距離最大值。

d)圖5.8的電路X’與圖5.1的電路X表現出同等的行為。此時,請從圖5.3中選擇填入圖5.8中C和D的閘,並以符號①~⑥作答。可以使用相同的閘多次。這裡所稱的「同等行為」是指以下情況:對X’和X各自的輸入 $ck$ 施加一個如圖5.10所示,來自同一脈衝產生源P的1單位時間週期的時脈脈衝。在時刻 $t=0$ 時,X’和X內部的D型正反器被初始化,且時刻0之後第n個時脈脈衝的上升緣所產生的輸出,在時刻 $t=n$ 時,若 $w_2,w_1,w_0$ 和 $z_2,z_1,z_0$ 分別穩定得到,則 $w_2=z_2$ 且 $w_1=z_1$ 且 $w_0=z_0$。

  • 圖5.10

図5.10

e)考慮如圖5.11所示的邏輯電路。假設在時刻 $t=t_0$ 時,輸入x和y同時從0變為1。此時預期輸出z會保持0不變,但由於反相器(NOT Gate)的延遲,可能會產生如圖5.12所示的脈衝。此現象稱為毛刺(Glitch,或稱冒險),根據連接的電路,可能會導致誤動作。在圖5.8的電路X’中,如果閘C、D的延遲不能忽略,輸出 $w_0$ 是否可能發生毛刺?請說明,如果可能發生,請提供對策;如果不會發生,請在100字以內說明原因。但假設電路Y的組成元件(閘、正反器及導線)的延遲可以忽略,且 $R_0,R_1,R_2$ 各自的輸出會同時變化。

圖5.11:可能產生毛刺的邏輯電路範例

図5.11:グリッチを生じ得る論理回路の例

圖5.12:毛刺範例

図5.12:グリッチの例


2-解答

2-a

分析電路可知 $y_0=x_1x_2+\bar{x_1}\bar{x_2}$,等價於 $x_1\ \text{XNOR}\ x_2$,因此可以直接使用一個 XNOR 閘來簡化電路。

只能使用⑥。

2-b

t$x_0$$x_1$$x_2$$y_0$$y_1$$y_2$
0000100
1100110
2110010
3010011
4011111
5111101
6101001
7001000
8000100
9100110
10110010
11010011
12011111

可以看到從 $t=7$ 開始循環。

2-c

漢明距離表示兩個相同長度的二進位向量中,不同位元的數量。

從上一題的真值表來看,最大為 1。

2-d

C: ③ (XOR) D: ③ (XOR)

分析兩個電路的時刻表,可以得到真值表。

$z_0$$z_1$$z_2$$w_0$$w_1$$w_2$
100100
110010
010110
011001
111101
101011
001111
000000

分析電路,可以先看 $w_1$,尋找使 $w_1$ 為 1 的輸入。

$z_0$$z_1$$z_2$
110
010
101
001

從電路可知可以忽略 $z_0$,剩下的 $z_1$ 和 $z_2$ 呈現出不同輸出為 1 的情況,也就是互斥或閘(XOR Gate)的形式,即 D 為互斥或閘。

分析 $w_0$ 為 1 的輸入。

$z_0$$z_1$$z_2$$z_1 \oplus z_2$
1000
0101
1110
0011

從電路可知,可以直接觀察 $z_0$ 和 $z_1 \oplus z_2$,呈現出不同輸出為 1 的情況,也就是互斥或閘(XOR Gate)的形式,即 C 為互斥或閘。

2-e

$w_0$ 有可能發生毛刺。對策包括在輸出端加入緩衝器,或加入同步正反器,抑或是重新檢視電路設計。

參考文章

布林代數的簡化(公式法與卡諾圖法)