109 年 國立臺灣科技大學電機工程系碩士班丁二組《控制系統與數位邏輯》
第 1 題15 分
Consider the following mechanical translational system where is the input force, is the output displacement, and system parameters ;
🖼️【此處有附圖,請對照原卷】
(a) (10 points) compute the system input-output transfer function .
(b) (5 points) determine that the system is BIBO (Bounded-Input Bounded-Output) stable or not?
登入後即可作答並保存紀錄。
核心觀念
本題考查:
- 牛頓第二定律建立機械系統運動方程式。
- 彈簧與阻尼器的相對位移、相對速度所產生的作用力。
- 拉氏轉換求取輸入—輸出轉移函數。
- 連續時間線性系統的 BIBO 穩定性判斷:轉移函數的所有極點必須位於左半平面,且虛軸上不可有極點。
由圖設定左側質量位移為 ,右側質量位移為 。彈簧與阻尼器之間的相對作用力為
解題方法
(a) 求取轉移函數
對左側質量 套用牛頓第二定律:
對右側質量 套用牛頓第二定律:
假設初始條件為零,進行拉氏轉換,令
則兩式可寫成
由第二式得到
因此
故
將兩個質量的運動方程式相加,內部的彈簧力與阻尼力會互相抵消:
代入 :
整理得
因此輸入—輸出轉移函數為
代回 :
第 2 題15 分
Consider a negative unity-feedback system with loop transfer function , find system parameters and such that the maximum overshoot (MO) of the closed-loop system step response is 10.0% and the bandwidth (BW) of the closed-loop system frequency response is 10.0 rad/sec.
登入後即可作答並保存紀錄。
本題考查閉迴路系統的響應特性,包含暫態響應(最大超衝量)與頻率響應(頻寬),並要求根據這些性能指標反求系統參數。
【核心觀念】
- 閉迴路傳遞函數: 對於負單位回授系統,閉迴路傳遞函數 。
- 最大超衝量 (Maximum Overshoot, MO): 與閉迴路系統的阻尼比 有關。對於二階系統,MO 的公式為 。
- 頻寬 (Bandwidth, BW): 閉迴路系統頻率響應的頻寬通常定義為響應增益下降至 dB(即 )時的角頻率。對於單位回授的二階系統,其頻寬 BW 與自然頻率 和阻尼比 有關。
- 系統參數與性能指標的關聯: 透過閉迴路傳遞函數的極點位置(與 關聯)及系統的頻域響應(與 BW 關聯)來求解參數。
【解題步驟】
給定的開迴路傳遞函數為 。
系統為負單位回授,因此閉迴路傳遞函數 為:
這是一個標準的二階系統形式 。
比較係數,我們得到:
--- (1)
--- (2)
1. 利用最大超衝量 (MO) 求解阻尼比
題目給定最大超衝量 。
對於二階系統,MO 與 的關係為:
取自然對數:
平方兩邊:
所以,阻尼比 。
2. 利用頻寬 (BW) 求解自然頻率
題目給定頻寬 rad/sec。
對於單位回授的二階系統,其頻寬 BW 與 和 的關係式為:
(這是精確公式)
一個近似公式為:
(當 較小時)
或者 (當 較小時)
更精確的近似是
然而,對於標準二階系統 ,其頻寬 BW 的計算通常是基於增益 的條件。
令 ,則 。
第 3 題20 分
Given a third-order open-loop control system with system input-output transfer function
;
(a) (10 points) plot the Bode diagram of ,
(b) (5 points) compute the gain margin GM,
(c) (5 points) computer the phase margin PM.
登入後即可作答並保存紀錄。
核心觀念
波德圖由開迴路傳遞函數的幅值與相位組成。對標準單位回授系統:
- 增益交越頻率 滿足 ,相位裕度為
- 相位交越頻率 滿足 ,增益裕度為
解題方法
先將傳遞函數改寫成標準波德形式:
因此直流增益為 ,三個轉折頻率依序為 。令 ,可得精確幅值與相位:
幅值以 dB 表示為:
低頻幅值從 開始。每遇到一個一階極點,漸近線斜率再下降 ,所以三段斜率依序為 。相位則由 平滑下降,最後趨近 。
(b) 增益裕度 GM
相位交越頻率處,分母的虛部為零。將分母展開:
代入 ,虛部為 。令其為零且取非零頻率:
此時分母實部為 ,故相位確為 。相位交越處的幅值為:
第 4 題15 分
What is the so-called 8-bit timing signal? (5 points) What are the advantages and drawbacks (e.g., the required number of NAND or AND gates, the required function) among three kinds of ring counters to achieve 8-bit timing signal: (i) shift register, (ii) 3-bit counter +3-8 decoder, (iii) Johnson counter. (10 points)
登入後即可作答並保存紀錄。
本題考查數位邏輯中的計時訊號產生與不同類型的環形計數器。
【核心觀念】
- 計時訊號 (Timing Signal): 在數位系統中,用於同步不同元件操作的一系列脈衝訊號。
- 位元 (Bit): 二進位數字的基本單位。
- 環形計數器 (Ring Counter): 一種移位暫存器,其輸出連接回輸入,形成一個環路,依序產生一串狀態。
- 移位暫存器 (Shift Register): 一種可以將資料向左或向右移動的暫存器。
- 解碼器 (Decoder): 將二進位輸入轉換為單一的輸出線。
- 約翰遜計數器 (Johnson Counter): 一種特殊的移位暫存器計數器,其最後一級的輸出反向連接回第一級的輸入,產生比標準環形計數器更多的狀態。
【解題步驟】
(第一部分:8位元計時訊號的定義 - 5 points)
8位元計時訊號 (8-bit Timing Signal) 指的是一個由8個獨立但有時序關係的訊號組成的序列,這些訊號通常是週期性的或按照特定時序模式產生,用於控制數位電路中不同部分的時序操作。每個訊號代表一個「位元」的時序控制。例如,在某些微處理器或特定數位訊號處理器中,可能需要8個不同的時序訊號來協調複雜的指令執行或數據傳輸。這些訊號的產生可能涉及狀態機或計數器。
第二部分:三種產生 8 位元計時訊號的方法的優缺點比較 - 10 points
我們要比較三種方法來產生 8 個不同時序的訊號。一個簡單的 8-bit timing signal 可以想像成產生 8 個循序出現的脈衝,或者 8 個不同延遲的訊號。這裡我們假設是產生 8 個循序狀態的計數器,每個狀態對應一個計時訊號。
方法 (i): 移位暫存器 (Shift Register)
- 實現方式: 使用 8 個 D 觸發器串聯組成一個 8 位元的移位暫存器。在每個時脈週期,一個初始值(例如 '1')向前移動一個位置。
- 產生的訊號: 如果我們讓這個 '1' 循環移動,可以產生 8 個狀態。例如,初始狀態為
10000000,下一個狀態是01000000,依此類推,直到00000001。這可以看作是 8 個循序的計時訊號。 - 優點:
- 結構簡單,易於理解和實現。
- 每個訊號的產生延遲是固定的(與移位暫存器的級數有關)。
- 所需的邏輯閘數量相對較少,只需要 8 個 D 觸發器和一些簡單的組合邏輯(如果需要特定模式)。
- 缺點:
- 標準的環形計數器(將最後一級反饋到第一級)只能產生 個狀態(對於 位元),如果需要更多的狀態,則需要更複雜的設計。
- 如果需要非循序的或更複雜的時序模式,標準移位暫存器可能不夠靈活。
- 所需閘數: 8 個 D 觸發器。如果需要產生獨立的 8 個訊號,可以從每個觸發器的輸出取值。如果使用 NAND 或 AND 閘來實現 D 觸發器,每個 D 觸發器大約需要 4-6 個 NAND 閘,總共約 32-48 個 NAND 閘。
方法 (ii): 3-bit counter + 3-to-8 decoder
- 實現方式: 使用一個 3 位元計數器(例如,一個可以計數 000 到 111 的計數器)。一個 3 位元計數器有 個不同的狀態。將計數器的 3 個輸出連接到一個 3-to-8 解碼器。
- 產生的訊號: 3-to-8 解碼器有 8 個輸出線。對於計數器的每個組合(000 到 111),解碼器會將對應的一條輸出線變為高電位(或低電位,取決於設計),其他線保持低電位(或高電位)。這可以產生 8 個循序的計時訊號。
- 優點:
- 可以產生 個獨立的訊號,對於 位元計數器。
- 狀態轉換是循序的,且由計數器控制。
- 解碼器可以產生非常明確的、互斥的時序訊號。
- 缺點:
- 需要一個計數器和一個解碼器,邏輯複雜度可能比簡單的移位暫存器高。
- 對於產生 8 個訊號,需要 3 個觸發器(組成 3-bit counter)和 8 個輸出線的解碼器。
- 所需閘數:
- 3-bit counter (例如,ripple counter 或 synchronous counter) 大約需要 3 個觸發器。
- 3-to-8 decoder:一個標準的 3-to-8 decoder 通常需要 3 個輸入和 8 個輸出。它的實現需要大約 個 AND 閘(如果輸出是與輸入 AND 運算),或者更複雜的組合邏輯。如果每個輸出線需要一個獨立的訊號,並且計數器的輸出是 ,則第 個輸出訊號是 的某個組合。
- 總計:3 個觸發器 + 24 個 AND 閘(近似)。
方法 (iii): 約翰遜計數器 (Johnson Counter)
- 實現方式: 使用一個 位元的移位暫存器,將最後一級的輸出反向後連接到第一級的輸入。
- 產生的訊號: 對於一個 位元的約翰遜計數器,它可以產生 個狀態。因此,對於 8 個計時訊號,我們需要一個 4 位元的約翰遜計數器 ( 個狀態)。
- 例如,一個 4 位元的約翰遜計數器,初始狀態
0000。 - 下一個狀態:
1000(最後一級的 0 反向為 1,移入) - 下一個狀態:
1100 - 下一個狀態:
1110 - 下一個狀態:
1111 - 下一個狀態:
0111(最後一級的 1 反向為 0,移入) - 下一個狀態:
0011 - 下一個狀態:
0001 - 下一個狀態:
0000(循環)
這產生了 8 個不同的狀態。
- 例如,一個 4 位元的約翰遜計數器,初始狀態
- 優點:
- 與標準環形計數器相比,可以產生更多的狀態( vs )。
- 結構相對簡單,只需要 個觸發器和一個反相器。
- 產生的狀態序列是循序的。
- 缺點:
- 與標準移位暫存器相比,可能需要更多的觸發器來產生相同數量的狀態(例如,產生 8 個狀態,約翰遜計數器需要 4 個觸發器,而 3-bit counter + decoder 也需要 3 個觸發器,但產生的訊號是獨立的)。
- 在狀態轉換時,可能會出現暫時的「危險狀態」(hazard),需要仔細設計。
- 所需閘數:
- 4 個 D 觸發器。
- 1 個反相器(用於將最後一級輸出反向)。
- 總計:4 個 D 觸發器 + 1 個反相器。若 D 觸發器用 NAND 閘實現,則約 個 NAND 閘(近似)。
總結比較:
| 方法 | 觸發器數量 (N) | 額外邏輯閘數量 (近似) | 狀態數 (N) | 8 個訊號的實現 | 優點 | 缺點 |
|---|
第 5 題15 分
Consider the sequential circuit in Fig. 1, where A is the least significant bit. Derive the state table, state diagram, and explain the function that the circuit performs.
🖼️【此處有附圖,請對照原卷】
登入後即可作答並保存紀錄。
本題考查對循序電路(Sequential Circuit)的分析能力,包含推導狀態表、狀態圖,並解釋電路的功能。
【核心觀念】
- 循序電路分析: 根據電路結構,確定狀態變數、輸入變數,並寫出狀態方程和輸出方程。
- 狀態表 (State Table): 列出所有可能的狀態、輸入組合,以及下一個狀態和輸出。
- 狀態圖 (State Diagram): 以圖形化的方式表示狀態轉換,圓圈代表狀態,箭頭代表轉換,箭頭上的標籤表示輸入/輸出。
- 電路功能解釋: 根據狀態表和狀態圖,描述電路在不同輸入下的行為。
【解題步驟】
首先,我們分析圖 1 中的循序電路。
電路包含兩個 D 觸發器,其輸出分別為 A 和 B。
- A 是最低有效位 (LSB)。
- 輸入訊號為 CLK (時脈) 和 reset (重置)。
- 兩個 D 觸發器的時脈輸入都連接到 CLK。
- reset 訊號是同步的(連接到兩個觸發器的同步 reset 輸入)。當 reset 為高電位時,觸發器的輸出會被重置。
- 有一個組合邏輯電路,其輸出連接到兩個 D 觸發器的 D 輸入。
1. 確定狀態變數、輸入變數和輸出訊號
- 狀態變數:電路的狀態由兩個觸發器的輸出決定,即 A 和 B。狀態共有 種:(A, B)。
- 輸入變數:電路有 reset 和 CLK 兩個輸入。通常在分析電路功能時,我們關注的是除了 CLK 和同步 reset 之外的「控制輸入」。在這個電路中,看起來沒有額外的控制輸入,只有 CLK 和 reset。我們將重點放在 CLK 觸發下的狀態轉換。
- 輸出訊號:電路有一個輸出 P_odd。
2. 寫出狀態方程 (Next-State Equations) 和輸出方程 (Output Equation)
首先,我們需要確定 D 輸入的邏輯。
觀察電路圖:
- 第一個 D 觸發器(輸出 A):它的 D 輸入是來自一個 AND 閘。這個 AND 閘的一個輸入是 B,另一個輸入是 A 的反相 (A')。所以,D_A = B AND A'。
- 第二個 D 觸發器(輸出 B):它的 D 輸入是來自一個 OR 閘。這個 OR 閘的一個輸入是 A,另一個輸入是 B 的反相 (B')。所以,D_B = A OR B'。
請注意,圖 1 中有 "reset" 輸入,它連接到兩個觸發器的同步 reset。通常,同步 reset 會使觸發器的輸出變為 0。這裡的 reset 是高電位有效。
當 reset = 1 時,A = 0, B = 0。
當 reset = 0 時,電路正常工作,狀態由 D 輸入決定。
狀態方程(在 reset = 0 的情況下):
下一個狀態 (A_next, B_next) 由當前狀態 (A, B) 和輸入決定。由於沒有額外的輸入,下一個狀態僅由當前狀態決定(在 reset=0 時)。
輸出方程:
P_odd 的輸出是來自另一個 AND 閘。這個 AND 閘的輸入是 A 和 B。
P_odd = A AND B。
3. 建立狀態表
我們列出所有可能的狀態 (A, B),並根據狀態方程計算下一個狀態 (A_next, B_next) 和輸出 P_odd。
| 當前狀態 (A, B) | reset | D_A = B·A' | D_B = A+B' | 下一個狀態 (A_next, B_next) | P_odd = A·B |
|---|---|---|---|---|---|
| (0, 0) | 1 | - | - | (0, 0) | 0 |
| (0, 1) | 1 | - | - | (0, 0) | 0 |
| (1, 0) | 1 | - | - | (0, 0) | 0 |
| (1, 1) | 1 | - | - | (0, 0) | 0 |
| (0, 0) | 0 | 0·1 = 0 | 0+1 = 1 | (0, 1) | 0·0 = 0 |
| (0, 1) | 0 | 1·1 = 1 | 0+0 = 1 | (1, 1) | 0·1 = 0 |
| (1, 0) | 0 | 0·0 = 0 | 1+1 = 1 | (0, 1) | 1·0 = 0 |
| (1, 1) | 0 | 1·0 = 0 | 1+0 = 1 | (0, 1) | 1·1 = 1 |
狀態表:
| 當前狀態 (A, B) | reset | 下一個狀態 (A_next, B_next) | 輸出 P_odd |
|---|---|---|---|
| 00 | 0 | 01 | 0 |
| 01 | 0 | 11 | 0 |
| 10 | 0 | 01 | 0 |
| 11 | 0 | 01 | 1 |
| (任意狀態) | 1 | 00 | 0 |
備註:狀態 (A, B) 用二進位表示,例如 00 代表 A=0, B=0。
4. 繪製狀態圖
根據狀態表,繪製狀態圖。
- 狀態:00, 01, 10, 11。
- 轉換:
- 從 00 狀態:如果 reset=0,轉換到 01。如果 reset=1,轉換到 00。
- 從 01 狀態:如果 reset=0,轉換到 11。如果 reset=1,轉換到 00。
- 從 10 狀態:如果 reset=0,轉換到 01。如果 reset=1,轉換到 00。
- 從 11 狀態:如果 reset=0,轉換到 01。如果 reset=1,轉換到 00。
- 輸出:
- 在狀態 00 時,P_odd = 0。
- 在狀態 01 時,P_odd = 0。
- 在狀態 10 時,P_odd = 0。
- 在狀態 11 時,P_odd = 1。
狀態圖表示(標示為 當前狀態 / 輸出):
第 6 題20 分
The circuit output of Fig. 2 is asserted if successive samples of the input have an odd number of 1's. These input signals are as follows:
initial #150 $finish;
initial fork #1 reset = 1; #7 reset = 0; join
initial begin CLK = 0; forever #5 CLK = !CLK; end
initial begin D_in = 1; forever #20 D_in = !D_in; end
Write the behavioral and test-bench (using the above inputs) Verilog HDL descriptions of Fig. 2. (13 points) Plot the time responses of reset, CLK, D_in and P_odd. (7 points)
登入後即可作答並保存紀錄。
核心觀念
本題考查:
- 奇偶同位(parity)判斷
- 同步取樣與狀態更新
- Verilog HDL 行為描述
- Testbench 時序激勵與波形判讀
若輸入取樣值為 ,輸出 表示截至第 次取樣為止,輸入中 的個數是否為奇數,則:
其中 為 XOR:
- XOR 輸入為 時,奇偶狀態反相;
- XOR 輸入為 時,奇偶狀態維持不變。
因此,本題的電路可視為一個具有 reset 的 parity accumulator。
假設:
- 於
posedge CLK取樣D_in; reset為高電位有效;reset為非同步 reset;- reset 後 ,代表目前尚未累積任何 。
解題方法
每逢時脈正緣:
若 reset 被啟動:
例如:
| 取樣序列 | 的個數 | |
|---|---|---|
| — | 0 | 0 |
| 1 | 1 | 1 |
| 1, 1 | 2 | 0 |
| 1, 1, 0 | 2 | 0 |
| 1, 1, 0, 1 | 3 | 1 |
所以電路只需要一個儲存奇偶狀態的 flip-flop,並將其輸入端接至:
行為描述 Verilog HDL
`timescale 1ns/1ps
module parity_checker (
input wire CLK,
input wire reset,
input wire D_in,
output reg P_odd
);
// 高電位有效、非同步 reset
always @(posedge CLK or posedge reset) begin
if (reset)
P_odd <= 1'b0;
else
P_odd <= P_odd ^ D_in;
end
endmodule
程式說明
always @(posedge CLK or posedge reset)
表示以下兩種事件發生時,執行狀態更新:
CLK出現正緣;reset出現正緣。
if (reset)
P_odd <= 1'b0;
reset 有效時,立即清除奇偶狀態。
P_odd <= P_odd ^ D_in;
reset 無效且 CLK 正緣到達時,將目前奇偶狀態與輸入取樣值做 XOR。
使用非阻塞指定符號 <=,符合時序電路描述方式。
Testbench Verilog HDL
`timescale 1ns/1ps
module tb_parity_checker;
reg CLK;
reg reset;
reg D_in;
wire P_odd;
parity_checker uut (
.CLK (CLK),
.reset (reset),
.D_in (D_in),
.P_odd (P_odd)
);
// 模擬於 150 ns 結束
initial begin
#150 $finish;
end
// Reset:1 ns 時啟動,7 ns 時解除
initial fork
#1 reset = 1;
#7 reset = 0;
join
// CLK 初值為 0,每 5 ns 反相一次
// 週期為 10 ns
initial begin
CLK = 0;
forever #5 CLK = !CLK;
end
// D_in 初值為 1,每 20 ns 反相一次
initial begin
D_in = 1;
forever #20 D_in = !D_in;
end
endmodule
輸入訊號時序
Reset
- ns:
reset由 0 變成 1 - ns:
reset由 1 變成 0
CLK
CLK 初值為 0,每 5 ns 反相一次:
- 正緣: ns
- 負緣: ns
D_in
D_in 初值為 1,每 20 ns 反相一次:
| 時間區間 | D_in |
|---|---|
| 1 | |
| 0 | |
| 1 | |
| 0 | |
| 1 | |
| $100\le t<120 |