câu hỏi bài tập và đáp án Bài1: Mã hóa 8 đường sang 3 đường ở mức thấp Bài2: giai ma 2 duong sang 4 duong Bài 3: gia ma led 7 thanh cathode chung Bài4: giai ma da hop 3 dau ra 8 dau lua chon Bài 5: giai ma da hop 1 dau vao dau ra 16 dau ra 4 bit lua chon
Trang 1Bộ Khoa Điện - Điện tử
=================
NGÂN HÀNG ĐỀ THI
MÔN: KỸ THUẬT PLD&ASIC
HỆ : ĐẠI HỌC CHÍNH QUY
Trang 2Bài1: Mã hóa 8 đường sang 3 đường ở mức thấp 1
Bài1: Mã hóa 8 đường sang 3 đường ở mức thấp 3
Bài2: giai ma 2 duong sang 4 duong 4
Bài 3: gia ma led 7 thanh cathode chung 5
Bài4: giai ma da hop 3 dau ra 8 dau lua chon 6
Bài 5: giai ma da hop 1 dau vao dau ra 16 dau ra 4 bit lua chon 7
Bài 6: Thiết kế mạch chuyển đổi số nhị phân 8 bit thành số BCD 8
Bài 7: Thiet ke mach giai ma dung IC 74LS164 10
Bài 8: thiet ke bo dem tu 000 den 999 va nguoc lai 11
Bài 9: Thiet ke flip-flop RS 13
Bài 10 : thiet ke bo dem nhi phan 4 bit 14
Bài 11: thiet ke den giao thong 15
Bài 11: Thiet ke flip-flop T 17
Bài 12: thiet ke ff 4 dau ra 18
Bài 13: thiet ke mach dieu khien LED don sang dan sau do tat dan 19
Bài 14: Bộ chia xung 1Hz đếm hiện thị trên LED 20
Bài 15:Bộ cộng hai dãy nhị phân có nhớ 4 bit 22
Bài 16: Bộ điều khiển máy bán hàng 23
Bài 17: Bộ nhận dữ liệu nối tiếp 26
Bài tập 19: Thiết kế mạch giải mã led 7 đoạn loại giống như IC 74247 29
Bài tập 20: Thiết kế mạch giải mã led 7 đoạn loại giống như IC 4511 30
Bài tập 21: Thiết kế mạch giải đa hợp giống như IC 74151 31
Bài tập 22: Thiết kế mạch chuyển đổi số nhị phân 8 bit thành số BCD 32
Bài tập 23: Thiết kế flip flop D 33
Bài tập 24: Thiết kế thanh ghi dịch giống như IC 74164 34
Bài tập 25: Thiết kế thanh ghi dịch giống như IC 47194 35
Bài tập 26: Thiết kế mạch điều khiển đèn giao thông với xanh_1, vàng_1, Đỏ_1, xanh_2, vàng_2, đỏ_2 Cho xanh sáng 15 giây, vàng sáng 5 giây và đỏ sáng 20 giây 36
Bài tập 28: Thiết kế mạch điều khiển đèn 8 led đơn với yêu cầu như sau: điểm sáng chạy từ phải sang trái và từ trái sang phải theo xung clock và có 1 chân cho phép E tích cực mức 0 37
Bài tập 29: Thiết kế mạch đếm nhị phân 4 bit – đếm xuống 38
Bài tập 30: Thiết kế mạch đếm nhị phân 4 bit – đếm lên, đếm xuống được điều khiển bằng tín hiệu UD (UD = 0 thì đếm lên, UD = 1 thì đếm xuống), có một tín hiệu CLK, một tín hiệu CLR 39
Trang 4Bài1: Mã hóa 8 đường sang 3 đường ở mức thấp
Port ( I : in STD_LOGIC_VECTOR (7 downto 0);
Q : out STD_LOGIC_VECTOR (2 downto 0)); end mahoa83;
architecture Behavioral of mahoa83 is
Trang 5Bài2: giai ma 2 duong sang 4 duong
Port ( I : in STD_LOGIC_VECTOR (1 downto 0);
Q : out STD_LOGIC_VECTOR (3 downto 0)); end giaima24;
architecture Behavioral of giaima24 is
END PROCESS;
end Behavioral;
===================================
Trang 6Bài 3: gia ma led 7 thanh cathode chung
Port ( I : in STD_LOGIC_VECTOR (3 downto 0);
Y : out STD_LOGIC_VECTOR (6 downto 0)); end led7;
architecture Behavioral of led7 is
END PROCESS;
end Behavioral;
================================
Trang 7Bài4: giai ma da hop 3 dau ra 8 dau lua chon
Trang 8Bài 5: giai ma da hop 1 dau vao dau ra 16 dau ra 4 bit lua chon
Trang 9Bài 6: Thiết kế mạch chuyển đổi số nhị phân 8 bit thành số BCD.
Port ( I : in STD_LOGIC_VECTOR (3 downto 0);
Y : out STD_LOGIC_VECTOR (6 downto 0));
END PROCESS;
end Behavioral;
Trang 10Port ( I : in STD_LOGIC_VECTOR (6 downto 0);
Y : out STD_LOGIC_VECTOR (6 downto 0));
END PROCESS;
end Behavioral;
Trang 11Bài 7: Thiet ke mach giai ma dung IC 74LS164
Trang 12Bài 8: thiet ke bo dem tu 000 den 999 va nguoc lai
QDVI : out STD_LOGIC_VECTOR (6 downto 0);
QCHU : out STD_LOGIC_VECTOR (6 downto 0);
QTRA : out STD_LOGIC_VECTOR (6 downto 0));
end dem000999;
architecture Behavioral of dem000999 is
function giai_ma(x1: in std_logic_vector(3 downto 0)) return std_logic_vector isvariable z1: std_logic_vector(6 downto 0);
variable BCD_DVI: std_logic_vector(3 downto 0);
variable BCD_CHU: std_logic_vector(3 downto 0);
variable BCD_TRA: std_logic_vector(3 downto 0);
Trang 13Elsif CLK= '1' and CLK'event then BCD_DVI:=BCD_DVI+1;
Trang 14Bài 9: Thiet ke flip-flop RS
If (R=’0’ AND S=’1’) OR (R=’1’ AND S=’0’) THEN
IF (PRE='0') AND (CLR='0') THEN QT <='1'; QDT <='1'; hang 1 btt ELSIF (PRE='0') AND (CLR='1') THEN QT <='1'; QDT <='0'; hang 2 btt ELSIF (PRE='1') AND (CLR='0') THEN QT <='0'; QDT <='1'; hang 3 btt ELSIF (PRE='1') AND (CLR='1') THEN
IF CLK='0' AND CLK'EVENT THEN
Trang 15Bài 10 : thiet ke bo dem nhi phan 4 bit
Trang 16Bài 11: thiet ke den giao thong
library ieee;
use ieee.std_logic_1164.all;
entity MACHGT is
port ( clk,stby,test: in std_logic;
r1,r2,y1,y2,g1,g2: out std_logic);
end MACHGT;
-architecture MACHGT of MACHGT is
CONSTANT timeMAX : INTEGER := 1200;
CONSTANT timeRG : INTEGER := 900;
CONSTANT timeRY : INTEGER := 300;
CONSTANT timeGR : INTEGER := 1200;
CONSTANT timeYR : INTEGER := 300;
CONSTANT timeTEST : INTEGER := 60;
TYPE State IS (RG,RY,GR,YR,YY);
SIGNAL pr_State, nx_state: State;
SIGNAL time : INTEGER RANGE 0 to timeMAX;begin
if(test='0')then time<=timeRG;
else time<=timeTEST;
end if;
Trang 17when RY=>
r1<='1';r2<='0';y1<='0';y2<='1';g1<='0';g2<='0'; nx_state<=RG;
end case;
end process;
end MACHGT;
=========================
Trang 18Bài 11: Thiet ke flip-flop T
IF CLK='0' AND CLK'EVENT THEN
Trang 19Bài 12: thiet ke ff 4 dau ra
Trang 20Bài 13: thiet ke mach dieu khien LED don sang dan sau do tat dan
architecture Behavioral of sangtatdan_tppt is
SIGNAL QT: STD_LOGIC_VECTOR (7 downto 0);
ELSIF CLK='1' AND CLK'EVENT THEN
IF DEM <16 THEN QT <= QT(6 DOWNTO 0) & NOT QT(7); ELSE QT <= NOT QT(0) & QT(7 DOWNTO 1);
Trang 21Bài 14: Bộ chia xung 1Hz đếm hiện thị trên LED
architecture Behavioral of demoto9 is
khai bao bien
signal chiaxung:std_logic_vector(23 downto 0);
signal temp_clk:std_logic;
signal temp_ct:std_logic_vector(3 downto 0):="0000";
xay dung ham
function chuyendoi(so: std_logic_vector(3 downto 0)) return std_logic_vector is
variable reg:std_logic_vector(6 downto 0);
begin
case so iswhen "0000" => reg:="1000000";
Trang 23Bài 15:Bộ cộng hai dãy nhị phân có nhớ 4 bit
SIGNAL c: STD_LOGIC_VECTOR (4 DOWNTO 0);
SIGNAL p: STD_LOGIC_VECTOR (3 DOWNTO 0);
SIGNAL g: STD_LOGIC_VECTOR (3 DOWNTO 0);
BEGIN
PGU:
-G1: FOR i IN 0 TO 3 GENERATE
p(i) <= a(i) XOR b(i);
g(i) <= a(i) AND b(i);
s(i) <= p(i) XOR c(i);
c(4) <= (cin AND p(0) AND p(1) AND p(2) AND p(3)) OR
(g(0) AND p(1) AND p(2) AND p(3)) OR(g(1) AND p(2) AND p(3)) OR
(g(2) AND p(3)) OR g(3);
cout <= c(4);
END Bo_cong_carry_look_ahead;
================================
Trang 24Bài 16: Bộ điều khiển máy bán hàng
nickel_in, dime_in, quarter_in: IN BOOLEAN;
candy_out, nickel_out, dime_out: OUT STD_LOGIC);END Bo_dieu_khien_may_bh;
Upper section of the FSM (Sec 8.2):
-PROCESS (present_state, nickel_in, dime_in, quarter_in)
IF (nickel_in) THEN next_state <= st5;
ELSIF (dime_in) THEN next_state <= st10;ELSIF (quarter_in) THEN next_state <= st25;ELSE next_state <= st0;
Trang 25ELSIF (dime_in) THEN next_state <= st15;ELSIF (quarter_in) THEN next_state <= st30;ELSE next_state <= st5;
Trang 26nickel_out <= '0';dime_out <= '1';next_state <= st0;WHEN st40 =>
candy_out <= '0';nickel_out <= '1';dime_out <= '0';next_state <= st35;WHEN st45 =>
candy_out <= '0';nickel_out <= '0';dime_out <= '1';next_state <= st35;END CASE;
END PROCESS;
END state_machine;
=========================
Trang 27Bài 17: Bộ nhận dữ liệu nối tiếp
LIBRARY ieee;
USE ieee.std_logic_1164.all;
-ENTITY Bo_nhan_du_lieu_nt IS
PORT ( din, clk, rst: IN BIT;
data: OUT BIT_VECTOR (6 DOWNTO 0);
err, data_valid: OUT BIT);
VARIABLE count: INTEGER RANGE 0 TO 10;
VARIABLE reg: BIT_VECTOR (10 DOWNTO 0);
VARIABLE temp : BIT;
ELSIF (clk'EVENT AND clk='1') THEN
IF (reg(0)='0' AND din='1') THEN
ELSIF (count = 10) THEN
temp := (reg(1) XOR reg(2) XOR reg(3) XOR reg(4) XOR reg(5) XOR reg(6) XOR
reg(7) XOR reg(8)) OR NOT reg(9);
Trang 28PORT ( clk, stop: IN BIT;
dout: OUT BIT_VECTOR (6 DOWNTO 0));
END Trochoiled7thanh;
-ARCHITECTURE arc OF Trochoiled7thanh IS
CONSTANT time1: INTEGER := 4; Gia tri thuc te hien thi la 80 CONSTANT time2: INTEGER := 2; Gia tri thuc te hien thi is 30 TYPE states IS (a, ab, b, bc, c, cd, d, de, e, ef, f, fa);
SIGNAL present_state, next_state: STATES;
SIGNAL count: INTEGER RANGE 0 TO 5;
SIGNAL flip: BIT;
ELSIF (clk'EVENT AND clk='1') THEN
IF ((flip='1' AND count=time1) OR
(flip='0' AND count=time2)) THEN count <= 0;
next_state <= ab;
WHEN ab =>
dout <= "1100000"; Decimal 96 flip<='0';
next_state <= b;
WHEN b =>
Trang 29dout <= "0100000"; Decimal 32 flip<='1';
next_state <= bc;
WHEN bc =>
dout <= "0110000"; Decimal 48 flip<='0';
next_state <= c;
WHEN c =>
dout <= "0010000"; Decimal 16 flip<='1';
next_state <= cd;
WHEN cd =>
dout <= "0011000"; Decimal 24 flip<='0';
next_state <= d;
WHEN d =>
dout <= "0001000"; Decimal 8 flip<='1';
next_state <= de;
WHEN de =>
dout <= "0001100"; Decimal 12 flip<='0';
next_state <= e;
WHEN e =>
dout <= "0000100"; Decimal 4 flip<='1';
next_state <= ef;
WHEN ef =>
dout <= "0000110"; Decimal 6 flip<='0';
next_state <= f;
WHEN f =>
dout <= "0000010"; Decimal 2 flip<='1';
next_state <= fa;
WHEN fa =>
dout <= "1000010"; Decimal 66 flip<='0';
Trang 30Bài tập 19: Thiết kế mạch giải mã led 7 đoạn loại giống như IC 74247.
PORT (D:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
O:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));
Trang 31Bài tập 20: Thiết kế mạch giải mã led 7 đoạn loại giống như IC 4511.
Trang 32Bài tập 21: Thiết kế mạch giải đa hợp giống như IC 74151.
Trang 33Bài tập 22: Thiết kế mạch chuyển đổi số nhị phân 8 bit thành số BCD.
Port ( I : in STD_LOGIC_VECTOR (7 downto 0);
Q : out STD_LOGIC_VECTOR (11 downto 0));
end HEXTOBCD_8BIT;
architecture Behavioral of HEXTOBCD_8BIT is
begin
PROCESS (I)
VARIABLE BCD:STD_LOGIC_VECTOR(11 DOWNTO 0);
VARIABLE HEX:STD_LOGIC_VECTOR(7 DOWNTO 0);
VARIABLE DEM: INTEGER RANGE 0 TO 10;
BEGIN
HEX:=I;
DEM:=8;
BCD:="000000000000";
WHILE DEM>1 LOOP
BCD:=BCD(10 DOWNTO 0) & HEX(7);
HEX:=HEX(6 DOWNTO 0) & '0';
Trang 34Bài tập 23: Thiết kế flip flop D.
Trang 35Bài tập 24: Thiết kế thanh ghi dịch giống như IC 74164.
Trang 36Bài tập 25: Thiết kế thanh ghi dịch giống như IC 47194.
Trang 37Bài tập 26: Thiết kế mạch điều khiển đèn giao thông với xanh_1, vàng_1, Đỏ_1, xanh_2, vàng_2, đỏ_2 Cho xanh sáng 15 giây, vàng sáng 5 giây và đỏ sáng 20 giây.
ELSIF CLK='1' AND CK'EVENT THEN F:= F+1;
IF F = 100 THEN F :=0; DEM := DEM +1;
IF DEM = 30 THEN DEM:=0; END IF;
Trang 38Bài tập 28: Thiết kế mạch điều khiển đèn 8 led đơn với yêu cầu như sau: điểm sáng chạy từ phải sang trái và từ trái sang phải theo xung clock và
ELSIF CLK='1' AND CLK'EVENT THEN DEM:=DEM+1;
IF DEM<8 THEN QTAM:=QTAM(6 DOWNTO 0)& QTAM(7);ELSIF DEM<15 THEN QTAM:=QTAM(0)& QTAM(7
Trang 39Bài tập 29: Thiết kế mạch đếm nhị phân 4 bit – đếm xuống.
Trang 40Bài tập 30: Thiết kế mạch đếm nhị phân 4 bit – đếm lên, đếm xuống được điều khiển bằng tín hiệu UD (UD = 0 thì đếm lên, UD = 1 thì đếm xuống), có một tín hiệu CLK, một tín hiệu CLR.
Port ( CLK,CLR,UD : in STD_LOGIC;
Q : out STD_LOGIC_VECTOR (03 downto 0));