1. Trang chủ
  2. » Giáo án - Bài giảng

Đề cương Ôn tập ngôn ngữ mô tả phần cứng - Đại học Công nghiệp Hà Nội

70 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết kế bộ đếm tiến thập phân và bộ đếm lùi thập phân
Trường học Đại học Công nghiệp Hà Nội
Chuyên ngành Ngôn ngữ mô tả phần cứng
Thể loại Đề cương Ôn tập
Thành phố Hà Nội
Định dạng
Số trang 70
Dung lượng 377,69 KB

Nội dung

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 1

Sơ đồ 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 2

architecture Behavioral of main is

type state is (s0,s1,s2,s3,s4,s5,s6,s7,s8,s9); signal s: state;

Trang 3

s<= 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 4

architecture Behavioral of main is

signal d: integer range 0 to 9;

Trang 7

architecture 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 9

rst : in STD_LOGIC;

leddon : out STD_LOGIC_VECTOR (7 downto 0)); end main;

architecture Behavioral of main is

signal clock: std_logic;

Trang 10

variable d_tam :integer range 0 to 254:=0;

Trang 11

q : out STD_LOGIC_VECTOR (7 downto 0)); end main;

architecture Behavioral of main is

Trang 13

architecture Behavioral of main is

Trang 16

variable dem:integer range 0 to 15;

Trang 18

variable dem2: integer range 0 to 500000000; variable b: std_logic;

Trang 19

end process;

end Behavioral;

Trang 20

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

Trang 24

Port ( clock : in STD_LOGIC;

Trang 25

-dem - process(clk,rst,A)

variable dem: integer range 0 to 9; begin

Trang 27

architecture machine_state of main is

Trang 28

clk <= 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 29

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

architecture Behavioral of main is

type state is (zero,one,two,three);

signal pr_state, nx_state: state;

Trang 30

begin

case pr_state is

Trang 31

when 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 32

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

Trang 36

end process;

end Behavioral;

Trang 37

Câu 16: Thiết kế bộ đếm theo mã Gray 4 bit, kết quả hiển thị LED đơn

Trang 38

variable dem: integer range 0 to 15; begin

Trang 40

led7 : out STD_LOGIC_VECTOR (7 downto 0)); end main;

architecture Behavioral of main is

Trang 44

cout : out STD_LOGIC;

led7 : out STD_LOGIC_VECTOR (7 downto 0));

Trang 45

begin

-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 46

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

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 47

h(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 48

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

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 49

h <= 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 50

architecture Behavioral of main is

signal d: std_logic_vector(3 downto 0);

Trang 51

when "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 52

b : 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 53

cout <= (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 54

rst : 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 56

when 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 58

when 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 62

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

Trang 63

variable 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 64

elsif 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 65

architecture Behavioral of main is

type state is (khoidong,tron,hoatan,kethuc); signal s: state;

Trang 66

clk <= b;

end process;

-hoat dong - process(clk,rst,x)

variable d: integer range 0 to 4;

Trang 68

type state is (khoidong,bom1,giat,thao1,bom2,xa,thao2,vat,ketthuc); signal s: state;

Trang 69

elsif clk'event and clk='1' then

begin

case s is

when khoidong => q <= "000000"; when bom1 => q <= "100000";

when giat => q <= "110000";

Trang 70

when 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;

Ngày đăng: 27/07/2024, 16:31

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w