Professional Documents
Culture Documents
Báo cáo Thí nghiệm điện tử số - 988921
Báo cáo Thí nghiệm điện tử số - 988921
BÁO CÁO
THÍ NGHIỆM ĐIỆN TỬ
SỐ
Câu hỏi: Tại sao phải mô phỏng về chức năng và thời gian ?
Trả lời :
Mô phỏng về chức năng để kiểm tra xem mạch đã thực hiện đứng
với yêu cầu thiết kê chưa. Từ đó sửa lại mạch cho đúng với yêu
cầu đặt ra.
Mô phỏng về thời gian để đánh giá tốc độ xử lí của mạch đã thiết
kế và xét đến những khoảng thời gian trễ của các cổng logic.
Biết được lượng thời gian cần thiết để có tín hiệu đúng, ổn định để
sử dụng tiếp. Nếu kết quả đầu ra có sử dụng để làm đầu vào để
xử lí tiếp thì cần biết sau thời gian bao nhiêu thì mới lấy kết quả ở
đầu ra đó để có kết quả chính xác hơn.
Trả lời :
So sánh từng bit một, thứ tự từ cao xuống thấp và đưa ra kết quả
như bộ so sánh 3 bit. Cách này có đường đi tín hiệu dài, qua nhiều
phần tử logic nên xử lí chậm, tốc độ thức hiện không nhanh.
Chuyển số 8 bit thành số có dấu bằng cách thêm 1 bit vào đầu
thành 9 bit, sau đó dùng bộ cộng có dấu để trừ 2 số cho nhau. Xét
dấu kết quả xem là số có dấu hay không có thể đi đến kết luận là
lớn hơn hay bé hơn. Cách này nếu dùng bộ cộng Ripplecarry thì
2
chậm, do đường đi tín hiệu dài. Nếu dùng bộ cộng carry
lookahead thì có kết quả xét dấu nhanh hơn, cách này chỉ cần
quan tâm đến dấu, không cần quan tâm đến kết quả nhận được.
Nhưng khi so sánh số nhiều bit thì bộ carrylookahead sẽ phức
tạp, có vấn đề về fanin....
Câu 2 : Đường đi dài nhất của bộ so sánh 3 bít này bằng bao nhiêu?
Tốc độ tối đa cho phép đối với bộ so sánh này bằng bao nhiêu?
Trả lời :
Mỗi lần so sánh 1 bit thì đường đi dài nhất ở cả 3 đầu ra B, N, L
như nhau, đều là 1 cổng NOT, 1 cổng AND3 và 1 cổng OR2 => đường
đi dài nhất là 3. Từ đó ta có đường đi dài nhất của tín hiệu là 9, đi qua 3
công NOT, 3 cổng AND3 và 3 cổng OR2. Tốc độ tối đa cho phép của bộ
so sánh này bằng Delay của tổng các cổng kể trên.
Trả lời :
9 cổng NOT , 12 cổng AND3 và 9 cổng OR2.
Câu 1: Phát triển bộ đếm này thành bộ đếm 8 bit như thế nào ?
Trả lời :
Ta có thể ghép 2 bộ đếm 4 bit với nhau thành bộ đếm 8 bit, đặt bộ
đếm thứ nhất làm 4 bit cao, 4 bit thứ 2 làm 4 bit thấp , với xung clock
của bộ 4 bit thứ 1 có chu kì bằng 16 lần xung clock của bộ đếm thứ 2.
Khi đó mỗi khi bộ 4 bít thứ 2 đếm từ 0 đến 15 rùi quay về 0 thì bộ đếm
thứ 1 được đếm 1 lần, tạo thành bộ đếm 8 bit. Có thể đặt xung clock
của bộ đếm thứ 1 bằng cách And tất cả các bit của bộ đếm thứ 2, khi
tất cả 4 bít đều bằng 1 thì sẽ xuất hiện xung clock cho bộ đếm thứ
nhất .
Sơ đồ bộ đếm 4 bit:
Câu 2 : Đường đi dài nhất của các liên kết trong bộ đếm này bằng bao
nhiêu? Tốc độ tối đa cho phép đối với bộ so sánh này bằng bao nhiêu ?
Trả lời :
Đường đi dài nhất của liên kết trong bộ đếm là Y[2] : qua 1 cổng
Not, 1 And3 và 1 Or 2 , độ dài bằng 3.
Giả xử độ trễ của các cổng logic đều là ∆t, qua 3 cổng sẽ trễ 3 ∆t.Từ
đó suy ra tốc độ tối đa cho phép phải lớn hơn 3∆t và lớn hơn xung
clock.
Xây dựng mạch kiểm tra nếu chuỗi bit là “11101” thì cho ra z=1 , nếu
khác thì cho ra z=0.
Trả lời :
Ta sẽ duyệt chuỗi bit từ trái qua phải .
Ý tưởng : Dùng 6 trạng thái để mô tả mạch. Tín hiệu đưa xung vào là X
Trạng thái Mô tả
Sw Trạng thái ban đầu chưa có bit nào
hoặc có bit ‘0’
S1 Phát hiện được 1 bít ‘1’
S11 Phát hiện được chuỗi “11”
S111 Phát hiện được chuỗi “111”
S1110 Phát hiện được chuỗi “1110”
S11101 Phát hiện được chuỗi “11101”
- Sơ đồ khối FSM
Code VHDL:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY bai6 IS
PORT (
clk : IN STD_LOGIC;
rst : IN STD_LOGIC := '0';
x : IN STD_LOGIC := '0';
led: out std_logic_vector(5 downto 0);
Z : OUT STD_LOGIC
);
END bai6;
PROCESS (fstate,rst,x,reg_Z)
BEGIN
IF (rst='1') THEN
reg_fstate <= Sw;
reg_Z <= '0';
Z <= '0';
ELSE
reg_Z <= '0';
Z <= '0';
CASE fstate IS
WHEN Sw =>
IF (NOT((x = '1'))) THEN
reg_fstate <= Sw;
ELSIF ((x = '1')) THEN
reg_fstate <= S1;
Inserting 'else' block to prevent latch inference ELSE
reg_fstate <= Sw;
END IF;