Professional Documents
Culture Documents
DSP-FPGA - 172 - KT - 02 - Dap An PDF
DSP-FPGA - 172 - KT - 02 - Dap An PDF
endmodule
a) Hãy tìm phương trình Boole của các biến trạng thái A+, B+ (chọn trạng thái là AB) và ngõ ra Z.
Từ đó suy ra bảng chuyển trạng thái của mạch này.
b) Viết mã Verilog cho bảng trạng thái từ a), ta cho thêm tín hiệu reset_n tích cực thấp để cho
FSM chạy từ trạng thái AB =00.
DSP-FPGA_172-KT#02_Đáp án – 1/4
BG.
a) Phương trình biến trạng thái: (JK FF: Q+ = JQ’ + K’Q)
A+ = JAA’ + KA’A = X.A’ + (X’ + B’)’.A = XA’ + XAB = X(A’ + AB) = X(A’ + B) = XA’ + XB
B+ = JBB’ + KB’B = XA.B’ + (X’)’. B = XAB’ + XB = X(AB’ + B) = X(A + B) = XA + XB
Phươnh trình ngõ ra:
Z = AB
Bảng chuyển trạng thái:
PS NS (A+B+)
State AB Z
X=0 X =1
S0 00 00 10 0
S1 01 00 11 0
S2 11 00 11 1
S3 10 00 01 0
b) Mã verilog
module KT02_2 (X, CLK, reset_n, Z);
parameter S0 = 'b00, S1 = 'b01, S2 = 'b11, S3 = 'b10; // Gán trạng thái với mã Gray
input X, CLK, reset_n;
output Z;
reg [1:0] state, nxtstate; // current and next state
// State transition
always @ (posedge CLK or negedge reset_n)
if (reset_n == 0) // (! reset_n)
state <= S0; // Initial state
else
state <= nxtstate;
// Output logic
assign Z = (state == S2);
endmodule
3. Ta cần thiết kế 1 mạch tuần tự đồng bộ có thể phát hiện chuỗi bit vào liên tiếp là 1101 (ngõ vào 1 bit
nối tiếp) và khi có phát hiện thì ngõ ra sẽ là 1. Hãy viết mã Verilog với
a) Máy trạng thái Moore.
b) Máy trạng thái Mealy.
BG.
a) Máy trạng thái Moore: Phát hiện chuỗi bit vào nối tiếp “1101”
Ta có giản đồ trạng thái sau:
DSP-FPGA_172-KT#02_Đáp án – 2/4
Mã verilog:
module KT02_3A (X, CLK, reset_n, Z);
parameter S0 = 'b000, S1 = 'b001, S2 = 'b011, S3 = 'b010, S4=’b110;
// Gán trạng thái với mã Gray
// State transition
always @ (posedge CLK or negedge reset_n)
if (reset_n == 0) // (! reset_n)
state <= S0; // Initial state
else
state <= nxtstate;
// Output logic
assign Z = (state == S4);
endmodule
DSP-FPGA_172-KT#02_Đáp án – 3/4
Mã verilog:
module KT02_3B (X, clk, resetn, Z);
// Mealy machine for a "1101" sequence detection
input X, clk, resetn;
output Z; reg Z;
reg [1:0] pstate, nstate; //present and next states
parameter S0=2'b00, S1=2'b01, S2=2'b11, S3=2'b10;
// State transition
always @ (posedge CLK or negedge reset_n)
if (reset_n == 0) // (! reset_n)
state <= S0; // Initial state
else
state <= nxtstate;
// Output logic
assign Z = (state == S3) && (X == 1);
endmodule
DSP-FPGA_172-KT#02_Đáp án – 4/4