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

M c đích, n i dung

• N i dung

: Phát bi u đ ng th i ờ

• Th i l

t bài gi ng

ờ ượ : 3 ti ng

ế

ng II: Ngôn ng VHDL

ươ

2/18

Ch quangkien82@gmail.com

VHDL statements

ng II: Ngôn ng VHDL

ươ

3/18

Ch quangkien82@gmail.com

Concurrent statements

c th c thi không ph ụ ng ấ

ự ệ

ể ị

ươ

Đn: Phát bi u đ ượ thu c vào v trí xu t hi n trong ch ộ trình.

V trí ị

Tr c ti p trong mô t

ki n trúc

: ự

ế

ả ế

cho m ch d ng c u

trúc ho c dataflow

ụ : ng d ng Dùng mô t ặ

ng II: Ngôn ng VHDL

ươ

4/18

Ch quangkien82@gmail.com

Concurrent statements

1. PROCESS

2. COMPONENT INSTALLATION

3. GENERATE

4. Concurrent Signal Assignment

ng II: Ngôn ng VHDL

ươ

5/18

Ch quangkien82@gmail.com

PROCESS

Ø M i kh i câu l nh PROCESS th c ra là m t kh i ố

l nh tu n t ệ

ầ ự

Ø Kh i PROCESS không có danh sách Sensitive

list thì b t bu c ph i xu t hi n l nh WAIT

ệ ệ

Ø Không gi

i h n l nh PROCESS trong m t mô t

ớ ạ ệ

ế

ng II: Ngôn ng VHDL

6/18

ki n trúc Ch ươ quangkien82@gmail.com

COMPONENT INSTALLATION

DECLARATION

COMPONENT component_name IS GENERIC (generic_variable_declarations ); PORT (input and_output_variable declarations); END COMPONENT component_name;

INSTALATION

instant_name: COMPONENT component_name GENERIC MAP( generic_variables => generic values) PORT MAP (input_and_output_variables => signals);

ng II: Ngôn ng VHDL

ươ

7/18

Ch quangkien82@gmail.com

EXAMPLE: configurable counter

entity counter is generic ( N : natural; top_value : std_logic_vector(15 downto 0); SETTOP : boolean := FALSE ); port ( count :out std_logic_vector(N-1 downto 0); enable :in std_logic; clk :in std_logic; reset :in std_logic); end entity;

ng II: Ngôn ng VHDL

ươ

8/18

Ch quangkien82@gmail.com

EXAMPLE: configurable counter

-- installation of 4 bit counter counter1: counter generic map (4, x"000a", TRUE) port map (cnt1, enable, clk, reset); counter2: counter generic map (4, x"101a", FALSE) port map (cnt2, enable, clk, reset); counter3: counter generic map (8, x"101b", TRUE) port map (cnt3, enable, clk, reset);

ng II: Ngôn ng VHDL

ươ

9/18

Ch quangkien82@gmail.com

CONCURRENT SIGNAL ASSIGNMENT

Syntax:

target <= waveform1;

Examples: A <= (others => '0'); A <= B or C xor D; A <= "00" & B(k+m-1 downto m); A <= B(m+3 downto 1) & (k-3 downto 0 => '0');

ng II: Ngôn ng VHDL

ươ

10/18

Ch quangkien82@gmail.com

CONDITIONAL SIGNAL ASSIGNMENT

target <= waveform1 when condition1 else waveform2 when condition2 else • • • waveformN–1 when conditionN–1 else waveformN when conditionN else default_waveform;

ng II: Ngôn ng VHDL

ươ

11/18

Ch quangkien82@gmail.com

CONDITIONAL SIGNAL ASSIGNMENT

WITH expression SELECT target <= options waveform1 WHEN choice_list1, waveform2 WHEN choice_list2, • • • waveformN–1 WHEN choice_listN–1, waveformN WHEN choice_listN, default_value WHEN OTHERS;

ng II: Ngôn ng VHDL

ươ

12/18

Ch quangkien82@gmail.com

GENERATE

[label]:for generate_parameter_specification generate { concurrent_statement } end generate [label];

[label]: if condition generate { concurrent_statement } end generate [label];

ng II: Ngôn ng VHDL

ươ

13/18

Ch quangkien82@gmail.com

Tr c nghi m

ng

ườ

Câu 1: C u trúc l nh FOR .. GENERATE th ệ ng h p nào dùng trong tr ợ

ườ

A. Dùng cho các c u trúc ch

ấ ươ ng trình l p đi l p l ặ ặ ạ i gi ng ố

B. Dùng cho các c u trúc mô t

nhau trong mô t thi ả t k . ế ế

i gi ng nhau ho c có ấ l p l ả ặ ạ ặ ố

C. Dùng đ mô t

quy lu tậ

D. Dùng mô t

cho vòng l p c ng trong thi ể ả ứ ặ t k . ế ế

ả các c u trúc ph n c ng có tính tùy bi n v ề ứ ế ấ ầ

s l ố ượ ng các kh i cài đ t. ố ặ

ng II: Ngôn ng VHDL

ươ

14/18

Ch quangkien82@gmail.com

Tr c nghi m

ấ ủ

Câu 2: B n ch t c a câu l nh PROCESS trong VHDL

A. T o m t quá trình trong mô t

B. Là m t kh i l nh tu n t

ki n trúc c a thi ạ ộ ả ế ủ t k . ế ế

ố ệ . ầ ự ộ

C. Là m t kh i l nh ch a là các l nh tu n t ố ệ ầ ự ứ ệ ộ nh ng ư

D. Là m t câu l nh đ ng th i s d ng trong mô t

đ ượ c xem nh m t c u trúc l nh đ ng th i. ờ ư ộ ấ ệ ồ

các ờ ử ụ ệ ộ ồ ả

quá trình.

ng II: Ngôn ng VHDL

ươ

15/17

Ch quangkien82@gmail.com

Tr c nghi m

Ư

ơ ả ủ ử ụ

ớ ử ụ

Câu 3: u đi m c b n c a s d ng câu l nh gán tín hi u đ ng th i so v i s d ng c u trúc tu n t

ồ ng đ

ờ ng

t

ệ ầ ự ươ

ươ

A. Mang l

i k t qu thi

t k t

i u h n

ạ ế

ế ế ố ư

ơ

B. Mã ch

ng trình đ n gi n và ng n g n h n

ươ

ơ

ơ

C. Mô t

sát h n c u trúc c a m ch và gi m thi u

ơ

kh năng gây l

i ỗ

D. Gi m thi u kh năng gây ra l

i ch c năng c a

m ch.ạ

ng II: Ngôn ng VHDL

ươ

16/18

Ch quangkien82@gmail.com

Tr c nghi m

c s d ng nh th nào

ượ ử ụ

ư ế

Câu 4: Bi n generic đ ế t k VHDL trong thi ế ế

A. Là các tham bi n tĩnh ví d đ r ng bit, quy đ nh c u hình

ụ ộ ộ ế ấ ị

ch c năng…. ứ

B. S d ng nh tham bi n khi thi ư

t k nh ng ph i là h ng ử ụ ế ế ế ư ả ằ

C. Là m t bi n phát sinh ra trong quá trình s d ng kh i thi

s khi s d ng. ố ử ụ

t ử ụ ế ộ ố ế

D. S d ng đ quy đ nh cho các đ c tính c a các tham bi n

k nh m t kh i con. ế ư ộ ố

ử ụ ủ ể ế ặ ị

đ ng trong thi ộ t k . ế ế

ng II: Ngôn ng VHDL

ươ

17/17

Ch quangkien82@gmail.com

Tr c nghi m

t tác d ng c a l nh IF tu n t ủ ệ

ầ ự

Câu 5: Phân bi và IF… GENERATE

A.

L nh IF tu n t

ch tác đ ng lên các kh i mô t

còn

ầ ự

tu n t ả ầ ự

l nh IF … GENERATE tác đ ng lên kh i l nh song song ộ ệ

ố ệ

B.

L nh IF tu n t

ch tác đ ng lên các tham bi n đ ng còn l nh

ầ ự

ế

IF … GENERATE tác đ ng lên các tham bi n tĩnh.

ế

C.

L nh IF tu n t

là câu l nh r nhánh có đi u ki n phân c p

ầ ự

còn IF… GENERATE là l nh v i m t giá tr đi u ki n.

ị ề

D.

L nh IF tu n t

làm thay đ i c u trúc thi

i theo

ầ ự

ổ ấ

t k hi n t ế ế ệ ạ

đi u ki n logic c a tham bi n cài đ t còn IF … GENERATE

ế

cài đ t/ho c không cài đ t theo đi u ki n c a tham bi n tĩnh

ế

ng II: Ngôn ng VHDL

trong câu l nh.ệ ươ

18/18

Ch quangkien82@gmail.com