1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài tập ôn vhdl

11 1,1K 4
Tài liệu được quét OCR, nội dung có thể không chính xác
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

Định dạng
Số trang 11
Dung lượng 1,69 MB

Nội dung

Bài tập ôn vhdl

Trang 1

ĐHBK Tp HCM

Khoa Dién-DT

BMDT

Bai tap 6n VHDL

1 Tìm dạng tối thiểu hóa theo SOP của

a fXi, Xo, X3) = Xm (3, 4, 6, 7)

b f(x, Xo, Xa) = Im (1, 3, 4, 6, 7)

Kiểm tra lại kết quả tính tay bằng cách nhập các hàm trên chưa rút gọn thông qua biểu diễn bảng chân trị trong MAX+plus II bằng Waveform Editor và compile nó Ta đọc được kết quả rút gọn trong file rpt

2 Tìm dạng tối thiểu hóa theo POS của

c f(X1, X2, X:) = II M(O, 2, 5)

d flX1, xa, X3) = M(0, 1, 5, 7)

Kiém tra lai két qua tính tay bằng cách nhập các hàm trên chưa rút gọn thông qua biểu diễn bảng chân trị trong MAX+plus H bằng Waveform Editor va compile nó Ta đọc được kết quả rút gọn trong file rpt

3 Cho các biến vào X=x¡Xo và Y=y Yo, ra cua hé tổ hợp là hàm ƒ được

định nghĩa ƒ(X,Y) = 1 nếu X khác Y; ƒ(X,Y)=0 nếu X=Y Tìm dạng tối thiểu của ƒ theo SOP

4 Dùng Graphic Editor để vẽ mạch thực hiện các hàm sau

a fi = XoX3X4 + XIX¿X¿ + XIX¿X: + XIX2Xã

b fp = XoX4 + XIX¿ + X2X:

Hãy sử dụng mô phỏng chức năng/hàm để chứng tỏ rằng ƒ, = fe

5 Tương tự 4 với các hàm sau

a f =(Xị +X¿ + %2) ( X¿ + X: + X4) (Ky + Xs + X4) (Xi + Xã + Xã)

b fo = (2 + X4) (K3 + X4) (Xi + X4) -

Hãy sử dụng mô phỏng chức năng/hàm đê chứng tỏ rắng ƒ¡ = ƒ

6 Dùng Text Editor viết bằng VHDL các hàm:

7 a) Xét các phát biểu gán sau

fl <= ((xl AND x3) OR (NOT x1 AND NOT x3)) AND ((x2 AND

x4) OR (NOT x2 AND NOT x4)); f2 <=(x1 AND x2 AND x3 AND NOT x4) OR (NOT x1 AND NOT x2 AND x3 AND x4) OR (xl AND NOT x2 AND NOT x3 AND x4) OR (NOT x1 AND x2 AND x3 AND NOT x4);

a Viết mã VHDL đầy đủ cho các ham f1, f2 6 trén

b Sử dụng mô phỏng để chứng tỏ rằng f1 = f2

VHDL-BTOT-trang 1/11

Trang 2

b) Trong các danh hiệu sau hãy tìm ra các danh hiệu hợp lệ và không hợp lệ Với các danh hiệu không hợp lệ, hãy giải thích tại saovới cách

viết đó không hợp lệ? reset_ out Time_Co CaRryOut? 32bit_addr = Addr32bit

c) Đoạn mã sau có các lỗi Hãy tìm ra và giải thích?

line 3

line 5 PORT IS (w : IN STD_LOGIC_VECTOR(3 DOWNTO 0); line 6 y : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);

line 9

line 10 ARCHITECTURE Behavior OF encoder42 IS

line 12 "11" WHEN w(3) ='1'ELSE; y <=

line 13 "10" WHEN w(2) ='1' ELSE;

line 14 "01" WHEN w(1) ='l' ELSE;

line 16 z <='0' WHEN w = "0000" ELSE '1';

đ) Hãy cho biết những lệnh nào sau đây có cú pháp và ngữ nghĩa đúng để

mô tả cho hàm f = x’y + xy’

f<=(x AND NOT y) OR(NOTxANDy);

f<=(NOT x AND NOT y) ORx;

f<= NOT x AND y OR x AND NOT y;

f<=( NOT x OR y) AND NOT y;

f<= (NOT x AND y) OR (x AND NOT y) ;

8 Tìm tối thiểu hoa dang SOP va POS cho cdc ham sau:

A4 Xa X:) = Ym (1, 2, 3, 5)

AX, Xp, X3) = Em (1, 4, 7) + d(2,5)

ƒẤXu, Xa, Xạ, x¿) = IM(0, 1, 2, 4, 5, 7, 8, 9, 10, 12, 14, 15)

ƒŒi, Xa, X3, X4) =Em(0, 2,8, 9, 10, 15) + d(1, 3, 6,7)

Hãy kiểm tra lại kết quả bằng cách sử dụng nhập thiết kế bang bang

chân trị (qua Waveform Editor)

9 Một hàm logic 4 biến có giá trị ra là 1 nếu 3 trong 4 biến vào là 1 Thiết kế và cài đặt hàm này bằng: sơ đồ mạch; bảng chân trị; va VHDL

Trang 3

10 Thiết kế mạch nhân 2 số nhị phan 2 bit: Z = A x B, voi A=A, Ao, B=B¡Bụ và Z=Z¿Z¿Z¡Zo Thiết kế và cài đặt bằng 1 trong 3 cách design

entry

11 So sánh 2 số A (2bït: A¡A¿), B (2 bít: B¡Bọ); hệ có 3 ngõ ra f1=1 nếu

A=B, f2=1 nếu A < B và f3=l nếu A>B

12 Tương tự câu trên cho A và B đều là dữ liệu 4 bit

13 Mach tao parity chan cho dé liéu vào 4 bit

14 Tương tự câu trên cho dữ liệu là 8 bit

15 Thiết kế mạch thực hiện x”“+x+1 với x=xaX¡Xo

16 Thực hiện hàm f hoạt động theo bảng sau:

Mạch nhận một số X (4 bit: xạxạX¡Xọ) có 4 ngõ ra như sau:

» f1 =1 nếu X chia hết cho 2

f2 = 1 nếu X chia hết cho 3 f3 = 1 nếu X chia hết cho 4

#4 = 1 nếu X chia hết cho 5

11

Cho mạch sau:

A

be

a) Hãy tìm biểu thức tối thiểu cho F(A,B,C,D) dạng SOP

b) Viết chương trình VHDL cài đặt hàm trên

c) Thêm một tín hiệu clk dé chi cho ngõ ra F thay đổi khi có cạnh lên ở

clk, còn khi clk ở trạng thái khác thì ngõ ra F giữ trị cũ vừa trước đó

18 Dưới đây là một chương trình VHDL mô tả bộ đếm lên 4 bit đơn giản

LIBRARY ieee ;

USE ieee.std_logic_1164.all ;

USE ieee.std_logic_unsigned.all ;

PORT ( Clock : IN STD_LOGIC ;

Q: BUFFER STD_LOGIC_VECTOR(1 DOWNTO 0) ) ;

END upcount ;

Behavior OF upcount IS ARCHITECTURE

BEGIN

PROCESS ( Clock )

BEGIN

IF (Clock’ EVENT AND Clock = ‘1’) THEN

VHDL-BTOT-trang 3/11

Trang 4

Q<=QH'T;

END IF;

END PROCESS;

END Behavior ;

a) Dựa vào chương trình trên hãy phát triển bộ đếm lên BCD (có 2 số mã [digit] BCD là B,Bạ (nghĩa là đếm từ 00 đến 99, B¡ và Bọ là 2 số 4 bi)

Giả sử bộ đếm BCD làm việc theo cạnh lên Clk và có thêm ngõ vào Reset

bat đồng bộ voi Clk (nghĩa là bất cứ khi nào Reset=1 thì các ngõ ra là 0)

b) Giả sử Bị và Bọ được đưa vào một mạch khác mà sẽ cho ngõ ra G trị là

1 khi B¡Bọ trong tầm từ 00 đến 90 và có trị số là bội số của 9 Hãy cài đặt

mạch trên

19 Thiết kế một bộ đếm lên/xuống 4 bit có 5 ngõ vào điều khiển là Up,

Down, Clear, Load và Enable (trong đó chỉ có Clear và Enable hoạt động không đồng bộ với CIk) có tác đụng như sau:

¢ Enable =l thì ngõ ra Data_out=giá trị 4 bit chứa trong bộ đếm; còn ngược lại khi Enable =0 thì ngõ ra Data_out=”Z⁄ZZ⁄Z”;

»_ Load = 1 thì bộ đếm thực hiện tác vụ nạp song song từ giá trị 4 bit ở Data_in vào bộ đếm ở cạnh lên của xung nhịp CIk

* Clear = 1 thi x6a b6 dém về 0

» Up = I khi có cạnh lên ở CIk thì làm bộ đếm tăng thêm 1

© Down = 1 khi có cạnh lên ở Clk thì làm bộ đếm giảm đi 1

Như vậy bộ đếm hoạt động bình thường khi Load=0 và Clear=0

20 Ma VHDL cia 1 thiết bị là

1 entity test is

2 port (inl : in bit_vector (2 downto 0);

3 out : out bit_vector (3 downto 0));

4 end test;

5 architecture test_arch of test is

6 begin

7 outl(0)<=in1(1);

8 out1(1)<=in1(2);

9 outl(2)<=in1(0) and in1(1);

10 outl(3)<=’1’;

11 end test_arch ;

Tên của entity va than architecture 14 gi? Vẽ sơ đồ mach

21 Vẽ mạch của mã VHDL cho ở phía sau Sửa mã dé cho out1 có kiểu

đữ liệu là std_ logic Có thê bỏ tín hiệu connectI được không? Giải thích

1 entity nandgate is

2 port (

3 inl: in bit;

4 in2: in bit;

5 outl: out bit;

6 );

Trang 5

24

7 end nandgate;

8 architecture nandgate_arch of nandgate is

9 signal connect] : bit;

10 begin

11 connectl <= in1 and in2;

12 outl <= not connectl;

13 end nandgate_arch;

22 Các tín hiệu a, b, c được gán như sau:

a<= “01”; b<= “11”; c<= “10”;

Tìm d1 khi nó được gán: dl<= (a nand b) nand c;

Tìm d2 khi nó được gán: d2<= a nand (b nand c);

23 Cho trước bảng chân trị của cổng xnor:

1 entity test9 is

2 port (in1, in2 : in std_logic;

3 out! : out std_logic);0

4 end test9;

Cai dat céng nay bang:

a) Các phát biểu when-else

b) Các phát biểu with-select-when

c) Các phát biểu case-when

đ) Các phát biểu if-then-else

Ta muốn thiết kế mạch phát hiện có 3 ngõ vào là l trong 4 ngõ vào (Da,D›,D¡ và

Dạ) của hệ, khi đó ngõ ra Y =1 Viết phương trình của Y Cài đặt mạch bằng các

lệnh có thể sử dụng được? Có bao nhiêu cách?

25 Thiết kế mạch chuyền đổi mã BCD8421 sang mã quá 3 (excess-3) với các cách

Sau:

a Viét truc tiép entity cho mach này dùng các lệnh đồng thời

b Viết trực tiếp entity cho mạch này dùng các lệnh tuần tự

c Dùng hàm (function)

d Dùng thủ tục (procedure)

26 _ Viết khai báo cho cấu trúc sau, giả sử các tín hiệu trong mã là port:

architecture write_entity of exercise2 is begin

mapper: process (addr) begin

shadow_ram_sel <= ‘0’;

sram_sel <= ‘0’;

if addr >= x0100” and addr < x”4000” then

shadow_ram_sel <= ‘1’;

elsif addr >= x’8000” and addr < x”C000” then

sram_sel <= ‘1’;

end if;

promsel <= ‘0’;

if eme_mapped = ‘0’ and bootup then

prom_sel <= ‘1’;

end if;

end process mapper;

mem_mapped <= shadow_ram_sel or sram_sel;

VHDL-BTOT-trang 5/11

Trang 6

27

28

29

30

31

32

33

end write_entity;

Tìm các lỗi trong đoạn mã sau và hãy sửa lại cho đúng:

entity 4to1_mux

port( signal a, b, c, d: std_logic_vectors(3 downto 0);

select: in std_logic-vector(1 downto 0);

x: out bit_vector(3 downto 0);

end

architecture of 4to1_mux

begin p1: process begin

if select =’00’ then

X <= a)

elsif select = ‘10’

x<=b;

elsif select = ‘11’

X <=C}

else

x<=d end if;

Xây dựng mạch so sánh độ lớn của 2 sô 4 bit A và B với 3 ngõ ra (băng nhau:

AEQB, nhỏ hơn: ALTB, và lớn hơn: AGTB) dùng:

a Các toán tử logic

Các toán tử quan hệ

Mô hình cấu trúc

Lệnh when-else Lénh if-then-else Thiét ké tua cộng BCD va hién thi LED bay doan:

Thiét kế mạch chuyền đổi nhị phan 8 bit sang BCD (2 digit)

Thiét ké mạch cộng, song song 2 so BCD (1 digit)

c Sử dụng các thiết kế ở ở a và b để làm các component cho mạch cộng 2

số BCD 2 digit, két quả ra 1a 2 digit 1/2 (2 digit rudi)

d Thiết kế mạch hiển thị BCD ra bảy đoạn

e._ Ráp lại các phần c và d thành 1 mạch hoàn chỉnh để cộng 2 số nhị phân vào và cho ra kết quả BCD

Thiết kế bộ đếm Johnson 4 bit:

a Viét mi VHDL cho JK flifpflop kích cạnh lên

b Ding a dé thiét ké mach dém Johnson 4 bit

c Viét truc tiép không sử dụng a

Suy ra giản đồ trạng thái của FSM có 1 ngõ vào X va 1 ngé ra Z FSM sé tao ra Z=l khi nhận được chuỗi vào 1001 hoặc 1111; ngược lại Z=0 Các mẫu vào phủ lắp được cho phép Thí dụ:

X: 010111100110011111 Z: 000000100100010011

Thiết kế mạch đếm lên 3 bit có ngõ diéu khién CNTRL:

a Khi CNTRL=0 theo số nhị phân thông thường: 000, 001, 010,

b Khi CNTRL=1 theo ma Gray : 000, 001, 011,

Xét ma VHDL sau, quan hệ giữa Input va Output cho ta biết chức năng của mạch này là gì? Với chức năng đó thì cách viết này có chỗ nào chưa đạt không? Nếu chưa đạt thì hãy viết lại để cho kết quả tốt nhất

Trang 7

34

LIBRARY ieee;

USE ieee.std_logic_1164.all;

ENTITY problem IS

PORT (Input: IN STD_LOGIC_VECTOR(3 DOWNTO 0);

Output: OUT STD_LOGIC_VECTOR(3DOWNTO 0)); END problem;

ARCHITECTURE LogicFunc OF problem IS

BEGIN

WITH Input SELECT

Output<= “0001” WHEN “0101”,

“0010” WHEN “0110”,

“0011” WHEN “0111”,

“0010” WHEN “1001”,

“0100” WHEN “1010”,

“0110” WHEN “1011”,

“0011” WHEN “1101”,

“0110” WHEN “1110”,

“1001” WHEN “1111”,

“0000” WHEN OTHERS;

END LogicFunc;

Cho trước mã VHDL sau:

library IEEE;

use TEEE.std logic 1164.all;

entity toto is

port (A, B, C : in std logic;

O1, O2 : out std logic);

end toto;

architecture synth of toto is

signal V, R : std logic;

begin

process (V, C)

begin

if (V='1*‘) then

Q92 <= C;

end if;

end process;

R <= B xor C;

process (A)

begin

if (A'event and A='1') then

O1 <= C;

V <= R;

end if;

end process;

end synth;

Hay hoan tat giản độ định thì của mạch được mô tả bởi mã VHDL ở trên:

VHDL-BTOT-trang 7/11

Trang 8

35 Xét mã VHDL ở hình sau:

a Vẽ mạch logic tương ứng với nó

b Cho biết danh sách dò sự thay đổi của tín hiệu trong process thỉs và that? Danh sách tối thiểu cho các process đó là gì?

'VHDL-BTOT-trang 8/11

Trang 9

36

library ieee;

use ieee.std_logic_1164.all;

entity toto is

port (a, b, c : in std_logic;

£ : out std logic);

end toto;

architecture titi of toto is

signal d, e : std_logic;

begin

this: process (a, b, c, e)

begin

if (b'event) and (b = '0')

then if c = '1'

then £ <= a;

else f <= not e;

end if;

end if;

end process;

that: process (a, b, d)

begin

if (b = '0')

then e <= d;

else d <= not a;

end if;

end process;

end titi;

Hay viét ma VHDL cho các FSM sau:

a

BARNEY = ’0°

VHDL-BTOT-trang 9/11

WILMA = ’0°

Trang 10

RESET=0'

/§ropprp` \ CE<=

a | START_STOP="1" |

\ CLEARS

N

\ START_STOP='1'

37 _ Thiết kế mạch nhân song song 2 số 2 bit bằng VHDL Từ đó xây dựng mạch nhân song song 2 số 4 bit

38 Thiết kế mạch nhân nối tiếp 2 số 4 bit bằng VHDL (hệ có 1 ngõ vào X và l ngõ Z,

cùng với xung nhịp CLK kích cạnh lên)

39 Cho trước mạch đêm 4 bit sau:

+ aL [TL L[Er Dor aL

TT [ = [

Reset

Hãy tim chuỗi đếm của mạch đếm nay

a

b Việt mã 'VHDL cho mạch trên

c Ding b dé thiết kế mạch đếm 16 bit có chức năng tương tự như mạch đêm 4 bit

d Có thể viết tổng quát thành mạch đếm N bit theo chức năng tương tự của a? Nếu được hãy viêt mã VHDL cho nó

40 _ Viết mã VHDL cho phần cứng sau (FA=Full Adder)

VHDL-BTOT-trang 10/11

Trang 11

41

VHDL-BTOT-trang 11/11

Sum

Asynchronous reset

Ngày đăng: 05/03/2013, 17:00

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w