Thiết kế logic số (VLSI design)

Bộ môn KT Xung, số, VXL quangkien82@gmail.com https://sites.google.com/site/bmvixuly/thiet-ke- logic-so 08/2012

11:38:07 PM 1

Chương II: Ngôn ngữ VHDL

quangkien82@gmail.com

11:38:07 PM

Mục đích nội dung

• Nội dung: Toán tử và biểu thức, phép dịch

và khối dịch không sử dụng toán tử

• Thời lượng: 3 tiết bài giảng

2/13

Chương II: Ngôn ngữ VHDL quangkien82@gmail.com

11:38:07 PM

Toán tử

Toán tử logic

not, and, or, nand, nor, xor

=, /=, <, <=, >, >=

Tập hợp toán tử nào đủ để thiết kế mọi khối số (về Các phép toán quan hệ lý thuyết)? Các phép toán dịch

sll, srl, sla, sra, rol, ror

Các phép toán cộng, hợp

+, -, &

+, -

*, /, mod, rem

Toán tử dấu Tập hợp toán tử nào thường sử dụng để thiết kế Các phép toán nhân các khối số?

Các phép toán khác

**, abs

3/13

Chương II: Ngôn ngữ VHDL quangkien82@gmail.com

11:38:07 PM

Toán tử dịch

Arithmetic

+

Horizotal

Right

A L

Logical

=

+

Left

Cyclic

R L

S Ro

SRA SRL SLA SLL

Syntax

Shift_out <= Shift_in SLL shift_value

Shift_out, Shift_in : BIT_VECTOR SHIFT_VALUE : Integer

RoL RoR

library ieee; USE ieee.Numeric_STD.all; USE ieee.Numeric_BIT.all;

4/13

Chương II: Ngôn ngữ VHDL quangkien82@gmail.com

11:38:07 PM

Toán tử dịch

Sho = "11000110"; # sho sll 2 = 00011000 # sho srl 2 = 00110001 # sho sla 2 = 00011000 # sho sra 2 = 11110001 # sho rol 2 = 00011011 # sho ror 2 = 10110001

Sự khác biệt giữa dịch logic và dịch số học?

5/13

Chương II: Ngôn ngữ VHDL quangkien82@gmail.com

11:38:07 PM

Khối dịch không sử dụng toán tử

Shift_in

?

Shift_value

SHIFTER

Shift_out

Điểm phức tạp?

Giá trị dịch không xác định.

6/13

Chương II: Ngôn ngữ VHDL quangkien82@gmail.com

11:38:07 PM

Khối dịch không sử dụng toán tử

A(4:0) = A4 .24 + A3 .23 + A2 .22 + A1 .21 + A0 .20

Q SLL 5

Q (31:0) <= Q(27:0) & “00000”;

7/13

Chương II: Ngôn ngữ VHDL quangkien82@gmail.com

11:38:07 PM

Khối dịch không sử dụng toán tử

Shift_in

SH16

Shift16

Shift_value(4)

Shift_in4

SH8

Shift8

Shift_value(3)

Shift_in3

….

…. ….

Shift_in1

SH1

Shift1

Shift_value(0)

Shift_out

8/13

Chương II: Ngôn ngữ VHDL quangkien82@gmail.com

Trắc nghiệm

Câu 1: Toán tử logic trả về giá trị dạng gì?

A. Dạng Logic

B. Dạng Numeric

C. Các cổng logic tương ứng

D. Dạng logic tương ứng hoặc dạng Boolean

11:38:08 PM 9/13

Chương II: Ngôn ngữ VHDL quangkien82@gmail.com

Trắc nghiệm

Câu 2: Dịch logic một chuỗi bit sang phải 2 bit tương

ứng là:

A. Chia giá trị biểu diễn bởi chuỗi bit với 2^2

B. Chia giá trị biểu diễn không dấu bởi chuỗi bit với 2^2

C. Nhân giá trị biểu diễn bởi chuỗi bit với 2^2

D. Chia giá trị biểu diễn logic bởi chuỗi bit với 2^2

11:38:08 PM 10/13

Chương II: Ngôn ngữ VHDL quangkien82@gmail.com

Trắc nghiệm

Câu 3: Khác nhau giữa kết quả dịch logic và dịch số học A. Dịch logic chỉ áp dụng cho số có dấu còn dịch số học áp

dụng cho số có dấu

B. Tính chất số học của phép dịch logic đúng cho biểu diễn số nguyên không dấu, phép dịch số học đúng cho số nguyên có dấu.

C. Khác nhau căn bản ở giá trị bit được điền vào vị trí trống khi dịch D. Giá trị thu được tương ứng là số không dấu và số có dấu.

11:38:08 PM 11/13

Chương II: Ngôn ngữ VHDL quangkien82@gmail.com

Trắc nghiệm

Câu 4: Khối dịch không sử dụng toán tử được xây

dựng trên nguyên lý nào

A. Sử dụng toán tử hợp (&) có thể thực thi được mọi

thao tác dịch với số bit dịch là một hằng số

B. Khối dịch đi một đại lượng 2i và khối chọn kênh

C. Công thức tính giá trị số nguyên không dấu của một

chuỗi bit nhị phân.

D. Chia thao tác dịch thành nhiều bước với mỗi bước

dịch đi một hằng số cố định.

11:38:08 PM 12/13

Chương II: Ngôn ngữ VHDL quangkien82@gmail.com

Trắc nghiệm

Vẽ giản đồ sóng thu được bởi khối lệnh sau:

begin waiting: process begin A <= 'Z'; B <= 'X'; wait for 100 ns; A <= '1'; B <= 'Z'; wait for 200 ns; A <= '0'; B <= '1'; wait for 300 ns; A <= '1'; B <= '0'; wait; end process waiting; end behavioral;

11:38:08 PM 13/13

Chương II: Ngôn ngữ VHDL quangkien82@gmail.com