Câu 1. Thiết kế bộ đếm tiến thập phân, kết quả hiển thị LED 7 thanh bằng phương pháp máy trạng thái. Câu 2. Thiết kế bộ đếm lùi thập phân, kết quả hiển thị LED 7 thanh bằng cách sử dụng nhiều process. Câu 3. Thiết kế bộ đếm cho phép chọn đếm tiến hoặc đếm lùi theo mã thập phân, hiển thị trên LED 7 thanh. Câu 4. Thiết kế bộ đếm tiến nhị phân Kđ = 255, kết quả hiển thị led đơn. Câu 5: Thiết kế bộ đếm lùi nhị phân Kđ = 255, kết quả hiển thị LED đơn Câu 6: Thiết kế bộ đếm cho phép chọn đếm tiến hoặc đếm lùi theo mã nhị phân Kđ=128, kết quả hiển thị LED đơn Câu 7: Thiết kế mạch đếm theo mã vòng 16 bit , kết quả hiển thị LED đơn Câu 8: Thiết kế mạch đếm theo mã Johnson 8 bit , kết quả hiển thị LED đơn Câu 9: Thiết kế bộ đếm tiến các số chẵn từ 0 → 100 theo mã nhị phân, kết quả hiển thị LED đơn Câu 10: Thiết kế bộ đếm lùi các số lẻ từ 99 → 1 theo mã nhị phân, kết quả hiển thị LED đơn Câu 11: Thiết kế bộ đếm tiến, thập phân cho phép chọn đếm chẵn hoặc đếm lẻ, kếtquả hiển thị LED 7 thanh Câu 12: Thiết kế mạch quét LED 7 thanh để hiển thị số 1234 trên kit Câu 13: Thiết kế mạch kiểm tra chuỗi dữ liệu vào nối tiếp. Đầu ra bằng 1 khi có 3 bit 1 vào liên tiếp. Đầu ra bằng 0 trong các trường hợp còn lại. Câu 14: Thiết kế mạch điều khiển 16 LED đơn sáng lan từ giữa sang 2 bên Câu 15: Thiết kế mạch điều khiển 16 LED đơn sáng lan từ 2 bên về giữa theo phương pháp máy trạng thái Câu 16: Thiết kế bộ đếm theo mã Gray 4 bit, kết quả hiển thị LED đơn Câu 17: Thiết kế mạch điều khiển đèn giao thông. Yêu cầu đèn đỏ sáng 10s, đèn xanh sáng 7s, đèn vàng sáng 3s, số giây được đếm ngược về 0 và hiển thị trên LED 7 thanh. Câu 18: Thiết kế thanh ghi dịch vào nối tiếp, ra song song 8 bít bằng phương pháp sử dụng proccess. Câu 19. Thiết kế mạch cộng 2 số nhị phân 2 bít, kết quả hiển thị LED 7 thanh Câu 20: Thiết kế mạch trừ 2 số nhị phân 3 bít, kết quả hiển thị LED 7 thanh Câu 21: Thiết kế và mô phỏng mạch cộng đầy đủ 3 bit sử dụng component là bộ cộng đầy đủ 1 bit. Kết quả hiển thị dạng nhị phân trên LED đơn. Câu 22: Cho hai số đầu vào A, B (3 bit). Thiết kế mạch điện thực hiện một trong các chức năng: A+B; A+1; B+1 tùy theo giá trị của đầu vào lựa chọn chức năng . Kết quả hiển thị trên LED đơn và LED 7 thanh. Câu 23: Thiết kế và mô phỏng mạch cộng đầy đủ 3 bit sử dụng nhiều Process (mỗi proces là bộ cộng đầy đủ 1 bit). Kết quả hiển thị dạng nhị phân trên LED đơn và trên LED 7 thanh. Câu 24: Hãy thiết kế bộ đếm tiến BCD và quả hiển thị dạng nhị phân trên LED đơn và dạng thập phân trên LED 7 thanh. Mạch thiết kế theo máy trạng thái và được thực thi trên KIT BASYS 3 Câu 26: Thiết kế bộ đếm tiến các số chẵn từ 0 --> 20 theo mã nhị phân bằng phương pháp máy trạng thái. Kết quả đếm hiển thị trên LED đơn Câu 27: Thiết kế DFF. Sử dụng DFF như component để thiết kế thanh ghi dịch vào nối tiếp, ra song song Câu 28: Thiết kế JKFF. Sử dụng JKFF như component để thiết kế bộ đếm tiến nhị phân 4 bít Câu 29: Thiết kế mạch điều khiển máy pha café tự động: chờ khởi động( 1đèn xanh sáng) → trộn café và sữa trong 2s ( 2 đèn xanh sáng) → hòa tan café+ sữa+ nước trong 5s (3 đèn xanh sáng) → kết thúc (đèn đỏ sáng 1s) Câu 30: Thiết kế mạch điều khiển máy giặt quần áo tự động : chờ khởi động → bơm nước trong 5 phút (1 đèn xanh sáng) → giặt trong 7 phút (2 đèn xanh sáng) → tháo nước trong 2 phút ( 1đèn vàng sáng) → bơm nước trong 5 phút (1 đèn xanh sáng) → xả trong 10 phút (3 đèn xanh sáng) → tháo nước trong 2 phút (1 vàng sáng) → vắt trong 5 phút (2 đèn vàng sáng) → kết thúc (1 đèn đỏ sáng trong 1 phút)
Trang 1Sơ đồ chân kit basys 3
Câu 1 Thiết kế bộ đếm tiến thập phân, kết quả hiển thị LED 7 thanh bằng phương pháp máy trạng thái
Trang 2architecture Behavioral of main is
type state is (s0,s1,s2,s3,s4,s5,s6,s7,s8,s9); signal s: state;
Trang 3s<= s0;
elsif clk'event and clk='1' then case s is
when s0 => s <= s1; when s1 => s <= s2; when s2 => s <= s3; when s3 => s <= s4; when s4 => s <= s5; when s5 => s <= s6; when s6 => s <= s7; when s7 => s <= s8; when s8 => s <= s9; when others => s <= s0; end case;
Trang 4architecture Behavioral of main is
signal d: integer range 0 to 9;
Trang 7architecture Behavioral of main is
signal d:integer range 0 to 9;
elsif clk'event and clk='1' then
if A='1' then -dem tien
if d_tam=9 then d_tam:=0;
else d_tam:=d_tam+1;
end if;
else -dem lui -
if d_tam=0 then d_tam:=9;
Trang 9rst : in STD_LOGIC;
leddon : out STD_LOGIC_VECTOR (7 downto 0)); end main;
architecture Behavioral of main is
signal clock: std_logic;
Trang 10variable d_tam :integer range 0 to 254:=0;
Trang 11q : out STD_LOGIC_VECTOR (7 downto 0)); end main;
architecture Behavioral of main is
Trang 13architecture Behavioral of main is
Trang 16variable dem:integer range 0 to 15;
Trang 18variable dem2: integer range 0 to 500000000; variable b: std_logic;
Trang 19end process;
end Behavioral;
Trang 20Câu 9: Thiết kế bộ đếm tiến các số chẵn từ 0 → 100 theo mã nhị phân, kết quả hiển thị LED đơn
Trang 24Port ( clock : in STD_LOGIC;
Trang 25-dem - process(clk,rst,A)
variable dem: integer range 0 to 9; begin
Trang 27architecture machine_state of main is
Trang 28clk <= b;
end process;
-hien thi - process(clk,s)
begin
if clk'event and clk='1' then case s is
when s0 => s <= s1; led7 <= x"a4";
q <= "1011";
when s1 => s <= s2; led7 <= x"b0";
q <= "1101"; when s2 => s <= s3; led7 <= x"99";
q <= "1110"; when s3 => s <= s0; led7 <= x"f9";
q <= "0111"; end case;
end if;
end process;
end machine_state;
Trang 29Câu 13: Thiết kế mạch kiểm tra chuỗi dữ liệu vào nối tiếp Đầu ra bằng 1 khi có 3 bit
1 vào liên tiếp Đầu ra bằng 0 trong các trường hợp còn lại
architecture Behavioral of main is
type state is (zero,one,two,three);
signal pr_state, nx_state: state;
Trang 30begin
case pr_state is
Trang 31when zero => q <= '0';
if d='1' then
nx_state <= one; else
nx_state <= zero; end if;
when one => q <= '0';
if d='1' then
nx_state <= two; else
nx_state <= zero; end if;
when two => q <= '0';
if d='1' then nx_state <= three; else
nx_state <= zero; end if;
when three => q <= '1';
if d='1' then
nx_state <= three; else
nx_state <= zero; end if;
end case;
end process;
end Behavioral;
Trang 32Câu 14: Thiết kế mạch điều khiển 16 LED đơn sáng lan từ giữa sang 2 bên
Trang 36end process;
end Behavioral;
Trang 37Câu 16: Thiết kế bộ đếm theo mã Gray 4 bit, kết quả hiển thị LED đơn
Trang 38variable dem: integer range 0 to 15; begin
Trang 40led7 : out STD_LOGIC_VECTOR (7 downto 0)); end main;
architecture Behavioral of main is
Trang 44cout : out STD_LOGIC;
led7 : out STD_LOGIC_VECTOR (7 downto 0));
Trang 45begin
-cong bit 1 -
process(a,b,cin)
begin
s(0) <= a(0) xor b(0) xor cin;
c <= (a(0) and b(0)) or (a(0) and cin) or (b(0) and cin); end process;
-cong bit 2 -
process(a,b,c)
begin
s(1) <= a(1) xor b(1) xor c;
cout <= (a(1) and b(1)) or (a(1) and c) or (b(1) and c); end process;
when "10" => led7 <= x"a4";
when others => led7 <= x"b0";
end case;
end process;
end Behavioral;
Trang 46Câu 20: Thiết kế mạch trừ 2 số nhị phân 3 bít, kết quả hiển thị LED 7 thanh
cout : out STD_LOGIC;
led7 : out STD_LOGIC_VECTOR (7 downto 0));
end main;
architecture Behavioral of main is
signal c: std_logic_vector(1 downto 0);
signal h: std_logic_vector(2 downto 0);
begin
-bit dau -
process(a,b,cin)
begin
h(0) <= a(0) xor b(0) xor cin;
c(0) <= (b(0) and cin) or ((not a(0)) and b(0)) or ((not a(0)) and cin);
end process;
-bit hai -
process(a,b,c)
begin
Trang 47h(1) <= a(1) xor b(1) xor c(0);
c(1) <= (b(1) and c(0)) or ((not a(1)) and b(1)) or (not a(1) and c(0)); end process;
-bit ba -
process(a,b,c)
begin
h(2) <= a(2) xor b(2) xor c(1);
cout <= (b(2) and c(1)) or ((not a(2)) and b(2)) or ((not a(2)) and c(1)); end process;
Trang 48Câu 21: Thiết kế và mô phỏng mạch cộng đầy đủ 3 bit sử dụng component là bộ cộng đầy đủ 1 bit Kết quả hiển thị dạng nhị phân trên LED đơn
cout : out STD_LOGIC;
led : out STD_LOGIC_VECTOR (2 downto 0));
end main;
architecture Behavioral of main is
signal c: std_logic_vector(1 downto 0);
c1: cong1 port map (a(0),b(0),cin,c(0),led(0));
c2: cong1 port map (a(1),b(1),c(0),c(1),led(1));
c3: cong1 port map (a(2),b(2),c(1),cout,led(2));
Trang 49h <= a1 xor b1 xor cin1;
cout1 <= (a1 and b1) or (a1 and cin1) or (b1 and cin1);
end process;
end Behavioral;
Câu 22: Cho hai số đầu vào A, B (3 bit) Thiết kế mạch điện thực hiện một trong các chức năng: A+B; A+1; B+1 tùy theo giá trị của đầu vào lựa chọn chức năng Kết quả hiển thị trên LED đơn và LED 7 thanh
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_arith.ALL;
use IEEE.STD_LOGIC_unsigned.ALL;
Trang 50architecture Behavioral of main is
signal d: std_logic_vector(3 downto 0);
Trang 51when "0001" => led7 <= x"f9"; led <= "0001"; 1
when "0010" => led7 <= x"a4"; led <= "0010"; 2
when "0011" => led7 <= x"b0"; led <= "0011"; 3
when "0100" => led7 <= x"99"; led <= "0100"; 4
when "0101" => led7 <= x"92"; led <= "0101"; 5
when "0110" => led7 <= x"82"; led <= "0110"; 6
when "0111" => led7 <= x"f8"; led <= "0111"; 7
when "1000" => led7 <= x"80"; led <= "1000"; 8
when "1001" => led7 <= x"90"; led <= "1001"; 9
when "1010" => led7 <= x"c0"; led <= "1010"; 10
when "1011" => led7 <= x"f9"; led <= "1011"; 11
when "1100" => led7 <= x"a4"; led <= "1100"; 12
when "1101" => led7 <= x"b0"; led <= "1101"; 13
when others => led7 <= x"99"; led <= "1010"; 14
Trang 52b : in STD_LOGIC_VECTOR (2 downto 0);
cin : in STD_LOGIC;
cout : out STD_LOGIC;
led : out STD_LOGIC_VECTOR (2 downto 0);
led7 : out STD_LOGIC_VECTOR (7 downto 0));
end main;
architecture Behavioral of main is
signal s: std_logic_vector(2 downto 0);
signal c: std_logic_vector(1 downto 0);
begin
-cong1 -
process(a,b,cin)
begin
s(0) <= a(0) xor b(0) xor cin;
c(0) <= (a(0) and b(0)) or (a(0) and cin) or (b(0) and cin); end process;
-cong2 -
process(a,b,c)
begin
s(1) <= a(1) xor b(1) xor c(0);
c(1) <= (a(1) and b(1)) or (a(1) and c(0)) or (b(1) and c(0)); end process;
Trang 53cout <= (a(2) and b(2)) or (a(2) and c(1)) or (b(2) and c(1));
when "000" => led7 <= x"c0"; led <= "000";
when "001" => led7 <= x"f9"; led <= "001";
when "010" => led7 <= x"a4"; led <= "010";
when "011" => led7 <= x"b0"; led <= "011";
when "100" => led7 <= x"99"; led <= "100";
when "101" => led7 <= x"92"; led <= "101";
when "110" => led7 <= x"82"; led <= "110";
when others => led7 <= x"f8"; led <= "111";
end case;
end process;
end Behavioral;
Câu 24: Hãy thiết kế bộ đếm tiến BCD và quả hiển thị dạng nhị phân trên LED đơn
và dạng thập phân trên LED 7 thanh Mạch thiết kế theo máy trạng thái và được thực thi trên KIT BASYS 3
Trang 54rst : in STD_LOGIC;
led : out STD_LOGIC_VECTOR (3 downto 0); led7 : out STD_LOGIC_VECTOR (7 downto 0)); end main;
architecture Behavioral of main is
Trang 56when s3 => led7 <= x"b0"; led <= "0011";
when s4 => led7 <= x"99"; led <= "0100";
when s5 => led7 <= x"92"; led <= "0101";
when s6 => led7 <= x"82"; led <= "0110";
when s7 => led7 <= x"f8"; led <= "0111";
when s8 => led7 <= x"80"; led <= "1000";
when others => led7 <= x"90"; led <= "1001";
Trang 58when s4 => s <= s6;
when s6 => s <= s8;
when s8 => s <= s10;
when s10 => s <= s12; when s12 => s <= s14; when s14 => s <= s16; when s16 => s <= s18; when s18 => s <= s20; when others => s <= s0; end case;
end if;
end process;
-ma hoa - process(s)
begin
case s is
when s0 => led <= "00000"; when s2 => led <= "00010"; when s4 => led <= "00100"; when s6 => led <= "00110"; when s8 => led <= "01000"; when s10 => led <= "01010"; when s12 => led <= "01100"; when s14 => led <= "01110"; when s16 => led <= "10000"; when s18 => led <= "10010"; when s20 => led <= "10100";
Trang 62Câu 28: Thiết kế JKFF Sử dụng JKFF như component để thiết kế bộ đếm tiến nhị phân 4 bít
Trang 63variable dem2: integer range 0 to 50000000;
c3: JKFF port map (clk,rst,tg(0) and tg(1),tg(0) and tg(1), tg(2));
c4: JKFF port map (clk,rst,tg(0) and tg(1) and tg(2),tg(0) and tg(1) and tg(2), tg(3)); led <= tg;
end Behavioral;
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
Trang 64elsif clk'event and clk='1' then
tam <= (j and not(tam)) or (not(k) and tam);
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
Trang 65architecture Behavioral of main is
type state is (khoidong,tron,hoatan,kethuc); signal s: state;
Trang 66clk <= b;
end process;
-hoat dong - process(clk,rst,x)
variable d: integer range 0 to 4;
Trang 68type state is (khoidong,bom1,giat,thao1,bom2,xa,thao2,vat,ketthuc); signal s: state;
Trang 69elsif clk'event and clk='1' then
begin
case s is
when khoidong => q <= "000000"; when bom1 => q <= "100000";
when giat => q <= "110000";
Trang 70when thao1 => q <= "000100"; when bom2 => q <= "100000"; when xa => q <= "111000"; when thao2 => q <= "000100"; when vat => q <= "000110"; when ketthuc => q <= "000001"; when others => null;
end case;
end process;
end Behavioral;