You are on page 1of 4

Đại học Bách Khoa TPHCM Đáp án kiểm tra giữa học kỳ

Khoa KH&KT Máy tính


Môn: Thiết kế Vi mạch số với HDL
Ngày 6/11/2010 - Thời gian: 60 phút
SV được dùng tài liệu nhưng không được dùng máy tính xách tay

Câu 1 (3 điểm):
Bằng ngôn ngữ Verilog, anh/chị hãy thiết kế một thanh ghi 8-bit cho phép dùng mặt nạ (mask) để chọn
những bit được phép cập nhật, như Hình 1 và đặc tả bên dưới

Hình 1. Thanh ghi 8-bit cho phép dùng mặt nạ


Với mọi i=0..7, nếu mask[i] = 1 thì dout[i] được cập nhật bằng din[i]; Nếu mask[i] =
0 thì dout[i] giữ nguyên giá trị

Đáp án: SV làm cách khác nếu đúng vẫn được trọn điểm. Các trường hợp thiếu xót sẽ bị trừ điểm tùy
trường hợp cụ thể.
/////////////////////////////Cách 1///////////////////////////////////
module myreg(clk, din, mask, dout);
input clk;
input [7:0] din;
input [7:0] mask;
output [7:0] dout;
reg [7:0] dout;
wire [7:0] next_dout;

assign next_dout = (din & mask) | (dout & (~mask));


always @(posedge clk) begin
dout <= next_dout;
end
endmodule
//////////////////////////////////////////////////////////////////////////
/////////////////////////////Cách 2///////////////////////////////////
module myreg(clk, din, mask, dout);
input clk;
input [7:0] din;
input [7:0] mask;
output [7:0] dout;

Đề kiểm tra giữa học kỳ 1 năm học 2010-2011 môn Thiết kế VMS với HDL 1
CuuDuongThanCong.com https://fb.com/tailieudientucntt
reg [7:0] dout;

always @(posedge clk) begin


if (mask[0] == 1’b1) dout[0] <= din[0];
if (mask[1] == 1’b1) dout[1] <= din[1];
if (mask[2] == 1’b1) dout[2] <= din[2];
if (mask[3] == 1’b1) dout[3] <= din[3];
if (mask[4] == 1’b1) dout[4] <= din[4];
if (mask[5] == 1’b1) dout[5] <= din[5];
if (mask[6] == 1’b1) dout[6] <= din[6];
if (mask[7] == 1’b1) dout[7] <= din[7];
end
endmodule

Câu 2 (3 điểm):
Anh/chị hãy thiết kế máy trạng thái theo mô hình Moore có chức năng kiểm tra giá trị thập phân (dạng
không dấu) của một chuỗi bit nhập vào có chia hết cho 3 hay không (chuỗi bit được đưa vào theo thứ
MSB được đưa vào trước). Giải thích ngắn gọn các trạng thái.
Đáp án: SV vẽ đúng sơ đồ chuyển trạng thái được 2 điểm, giải thích đúng được 1 điểm. Các trường hợp
thiếu xót sẽ bị trừ điểm tùy trường hợp cụ thể.

Sơ đồ chuyển trạng thái dạng


Giải thích:
Trạng thái S0 (chia hết cho 3 – khi reset giá trị thập phân chuỗi nhập là 0 chia hết cho 3).
 Tại S0, do giá trị thập phân của chuỗi bit chia hết cho 3 nên nó có dạng 3n (n  N)
- S0 nhận 1 => chuỗi nhập có giá trị thập phân 3𝑛 × 2 + 1 ≡ 3𝑛′ + 1 𝑣ớ𝑖 𝑛′ = 2𝑛 => chia 3
dư 1 => chuyển sang trạng thái S1
- S0 nhận 0 => chuỗi nhập có dạng 3𝑛 × 2 => chia hết cho 3, vẫn ở trạng thái S0
 Tại S1, giá trị thập phân của chuỗi bit có dạng 3n + 1 (n  N)
- S1 nhận 1 => chuỗi nhập có giá trị thập phân 3𝑛 + 1 × 2 + 1 = 6𝑛 + 3 ≡ 3𝑛′ 𝑣ớ𝑖 𝑛′ = 𝑛 +
1 => chia hết cho 3 => chuyển về trạng thái S0
- S1 nhận 0 => chuỗi nhập có giá trị thập phân 3𝑛 + 1 × 2 = 6𝑛 + 2 ≡ 3𝑛′ + 2 𝑣ớ𝑖 𝑛′ = 2𝑛
=> chia 3 dư 2 => chuyển sang trạng thái S2
 Tại S2, giá trị thập phân của chuỗi nhập có dạng 3n + 2 (n  N)

Đề kiểm tra giữa học kỳ 1 năm học 2010-2011 môn Thiết kế VMS với HDL 2
CuuDuongThanCong.com https://fb.com/tailieudientucntt
- S2 nhận 1 => chuỗi nhập có giá trị thập phân
3𝑛 + 2 × 2 + 1 = 6𝑛 + 5 = 3 2𝑛 + 1 + 2 ≡ 3𝑛′ + 2 𝑣ớ𝑖 𝑛′ = 2𝑛 + 1
=> chia 3 dư 2 => vẫn ở trạng thái S2
- S2 nhận 0 => chuỗi nhập có giá trị thập phân
3𝑛 + 2 × 2 = 6𝑛 + 4 = 3 2𝑛 + 1 + 1 ≡ 3𝑛′ + 1 𝑣ớ𝑖 𝑛′ = 2𝑛 + 1
=> chia 3 dư 1 => trở về trạng thái S1

Câu 3 (4 điểm):
Cho module counter và module t_counter như Hình 2 và Hình 3 bên dưới:

Hình 2. Module counter

Hình 3. Module t_counter


Anh/chị hãy vẽ dạng sóng của các tín hiệu clk, rst_n, ld, d_in và counter trong module
t_counter sau khi thực hiện mô phỏng module này.

Đề kiểm tra giữa học kỳ 1 năm học 2010-2011 môn Thiết kế VMS với HDL 3
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Đáp án: SV vẽ đúng các tín hiệu trong 10 chu kỳ clock sẽ được 3 điểm (counter 2,5 điểm/10 chu kỳ,
các tín hiệu khác 1,5 điểm). Các trường hợp thiếu xót sẽ bị trừ điểm tùy trường hợp cụ thể

-----hết-----
Giám thi coi thi không giải thích gì thêm
Tổng số câu là 3, tổng số điểm là 10

Đề kiểm tra giữa học kỳ 1 năm học 2010-2011 môn Thiết kế VMS với HDL 4
CuuDuongThanCong.com https://fb.com/tailieudientucntt

You might also like