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
ủ
ề
ệ
ế
ặ
ặ
ặ