SlideShare a Scribd company logo
Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN
Tài liệu tham khảo ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Phần mềm học tập ,[object Object],[object Object],[object Object],[object Object]
Giảng viên ,[object Object],[object Object],[object Object],[object Object],[object Object]
Yêu cầu môn học ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Nội dung môn học ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Nội dung môn học ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
1. Giới thiệu ngôn ngữ VHDL. ,[object Object],[object Object],[object Object],Phương pháp thiết kế truyền thống
1. Giới thiệu ngôn ngữ VHDL. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
1. Giới thiệu ngôn ngữ VHDL. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
1. Giới thiệu ngôn ngữ VHDL. ,[object Object],[object Object],[object Object],[object Object]
1. Giới thiệu ngôn ngữ VHDL. ,[object Object],[object Object],[object Object],[object Object],[object Object]
Quy trình thiết kế mạch dựa trên VHDL
Các công cụ thiết kế VHDL ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Một ví dụ VHDL đơn giản
Một ví dụ VHDL đơn giản
Nội dung môn học ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Code structure library IEEE;   use IEEE.std_logic_1164.all; ENTITY full_adder IS PORT (a,b,cin: in bit; s,cout:out bit); END full_adder; Architecture dataflow of full_adder is begin s <= a xor b xor cin; cout <= (a and b) or (a and cin)  or (b and cin); end dataflow;
Cấu trúc code ,[object Object],[object Object],[object Object]
Thư viện LIBRARY ,[object Object]
Thư viện LIBRARY ,[object Object]
Thư viện LIBRARY ,[object Object],[object Object],[object Object],[object Object],LIBRARY ieee;    -- A semi-colon (;) indicates USE ieee.std_logic_1164.all;  -- the end of a statement or LIBRARY std;    -- declaration, while a double USE std.standard.all;    -- dash (--) indicates acomment. LIBRARY work; USE work.all;
Thư viện LIBRARY ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Thư viện LIBRARY ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Cấu trúc code ,[object Object],[object Object],[object Object]
ENTITY ,[object Object],[object Object],BLACK_BOX rst d[7:0] clk q[7:0] co
ENTITY ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ENTITY ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Entity
Ví dụ về ENTITY ENTITY mux IS PORT (a, b: IN std_logic_vector(7 downto 0); sel: IN STD_LOGIC_VECTOR(0 to 1); c: OUT STD_LOGIC_VECTOR(7 downto 0)); END mux;
Cấu trúc code ,[object Object],[object Object],[object Object]
ARCHITECTURE ,[object Object],Một ARCHITECTURE luôn gắn với một ENTITY và mô tả  hoạt động của ENTITY đó. Một ARCHITECTURE chỉ gắn với một ENTITY nhưng  Một ENTIY có thể có nhiều ARCHITECTURE khác nhau ?
ARCHITECTURE ,[object Object],[object Object],[object Object],[object Object],[object Object]
ARCHITECTURE ,[object Object],Mô tả kết nối mạch: Mạch thực hiện thao  tác NAND trên 2 đầu  vào (a,b) và gán (<=)  kết quả cho đầu ra x.
VD1: Full_adder ,[object Object],library IEEE;   use IEEE.std_logic_1164.all; ENTITY full_adder IS PORT (a,b,cin: in std_logic; s,cout:out std_logic); END full_adder; Architecture dataflow of full_adder is begin s <= a xor b xor cin; cout <= (a and b) or (a and cin) or  (b and cin); end dataflow; Adder A(7:0) B(7:0) C(7:0)
library IEEE;   use IEEE.std_logic_1164.all; ENTITY adder IS PORT (A,B: IN std_logic_vector(7 downto 0); C: OUT std_logic_vector(7 downto 0)); END adder; Architecture dataflow of adder is begin C <= A+B; end dataflow; Adder A(7:0) B(7:0) C(7:0)
VD2: D Flip-flop, asyn reset ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],D flip-flop tích cực theo sườn dương của xung đồng hồ clk với tín hiệu reset không đồng bộ. Hoạt động: + rst = ‘1’ => q<=‘0’ không phụ thuộc clk. + rst = ‘0’, sườn dương clk => q<=d. DEMO
VD2: RS Flip-flop, asyn reset ,[object Object],[object Object]
VD2: RS Flip-flop, asyn reset ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
VD3: asyn-reset DFF & NAND ENTITY example IS PORT ( a, b, clk: IN BIT;   q: OUT BIT); END example; --------------------------------------- ARCHITECTURE example OF example IS SIGNAL temp : BIT; BEGIN temp <= a NAND b; PROCESS (clk) BEGIN IF (clk'EVENT AND clk='1') THEN q<=temp; END IF; END PROCESS; END example; --------------------------------------- Sự kết hợp giữa mạch  tổ hợp và mạch dãy DEMO
VD4: Bộ dồn kênh Multilpexor a,b:  hai kênh vào 8bit sel:  các bit chọn kênh c:  kênh ra 8bit
VD4: Bộ dồn kênh Multilpexor ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Demostration ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Nội dung môn học ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
3. Các kiểu dữ liệu. ,[object Object],[object Object],[object Object],[object Object],[object Object]
3.1. Các kiểu đối tượng ,[object Object],[object Object],[object Object],[object Object]
3.1.1. Signal ,[object Object],Signal
3.1.1. Signal ,[object Object],[object Object],[object Object]
3.1.1. Signal ,[object Object],External Signal Internal Signal Khai báo  trong Entity Khai báo  trong Architecture ENTITY myboard IS PORT ( [SIGNAL] a,b,c: inout bit; data,extbus,result: inout bit_vector(0 to 7)); END myboard; ARCHITECTURE structure OF myboard IS SIGNAL x,y: bit; SIGNAL intbus: bit_vector(0 to 7); BEGIN
3.1.1. Signal ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Không cần trong ENTITY Chỉ cần trong ENTITY
3.1.1. Signal ,[object Object],LIBRARY IEEE;  USE IEEE.std_logic_1164.ALL; PACKAGE sigdecl IS TYPE bus_type IS ARRAY(0 to 7) OF std_logic; SIGNAL vcc  : std_logic := ‘1’; SIGNAL ground : std_logic := ‘0’; FUNCTION magic_function( a : IN bus_type) RETURN bus_type; END sigdecl; => USE WORK.sigdecl.ALL;
3.1.1. Signal ,[object Object],[object Object],[object Object],[object Object],[object Object]
3.1.1. Signal ,[object Object],A B C D E F
3.1.1. Signal ,[object Object],[object Object],Về nhà tìm hiểu, hôm sau hỏi
3.1.2. Biến (variable) ,[object Object],[object Object],[object Object]
3.1.2. Biến (variable) ,[object Object],[object Object],VARIABLE control: BIT := '0'; VARIABLE count: INTEGER RANGE 0 TO 100; VARIABLE y: STD_LOGIC_VECTOR (7 DOWNTO 0) := &quot;10001000&quot;;
Ví dụ về sử dụng variable trong VHDL ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
LIBRARY ieee; USE ieee.std_logic_1164.all; ----------------------------------------- ENTITY mux IS PORT ( a, b, c, d, s0, s1: IN STD_LOGIC; y: OUT STD_LOGIC); END mux; ----------------------------------------- ARCHITECTURE not_ok OF mux IS SIGNAL sel : INTEGER RANGE 0 TO 3; BEGIN PROCESS (a, b, c, d, s0, s1) BEGIN sel <= 0; IF (s0='1') THEN sel <= sel + 1;END IF; IF (s1='1') THEN sel <= sel + 2;END IF; CASE sel IS WHEN 0 => y<=a; WHEN 1 => y<=b; WHEN 2 => y<=c; WHEN 3 => y<=d; END CASE; END PROCESS; END not_ok; LIBRARY ieee; USE ieee.std_logic_1164.all; ----------------------------------------- ENTITY mux IS PORT ( a, b, c, d, s0, s1: IN STD_LOGIC; 7y: OUT STD_LOGIC); END mux; ----------------------------------------- ARCHITECTURE ok OF mux IS BEGIN PROCESS (a, b, c, d, s0, s1) VARIABLE sel : INTEGER RANGE 0 TO 3; BEGIN sel := 0; IF (s0='1') THEN sel := sel + 1; END IF; IF (s1='1') THEN sel := sel + 2; END IF; CASE sel IS WHEN 0 => y<=a; WHEN 1 => y<=b; WHEN 2 => y<=c; WHEN 3 => y<=d; END CASE; END PROCESS; END ok;
So sánh giữa Signal & Variable
3.1.3. Hằng số (Constant) ,[object Object],[object Object],[object Object],[object Object]
3.1.3. Hằng số (Constant) ,[object Object],CONSTANT set_bit : BIT := '1'; CONSTANT pi: REAL := 3.1414; CONSTANT datamemory : memory := ( ('0','0','0','0'), ('0','0','0','1'), ('0','0','1','1'));
3.2. Các kiểu dữ liệu VHDL
3.2.1. Kiểu dữ liệu vô hướng ,[object Object],[object Object],[object Object],[object Object],[object Object]
Kiểu số nguyên Integer ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Kiểu số thực Real ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Kiểu dữ liệu liệt kê ENUMERATED ,[object Object],TYPE bit IS ('0', '1'); TYPE bit_vector IS ARRAY (NATURAL RANGE <>) OF BIT; TYPE fourval IS ( ‘X’, ‘0’, ‘1’, ‘Z’ ); TYPE state IS (idle, forward, backward, stop); TYPE color IS ( red, yellow, blue, green, orange ); Các kiểu  dữ liệu  liệt kê đã định nghĩa  trước
[object Object],[object Object],[object Object],Kiểu dữ liệu liệt kê ENUMERATED
ENTITY traffic_light IS PORT(sensor : IN std_logic; clock : IN std_logic; red_light : OUT std_logic; green_light : OUT std_logic; yellow_light : OUT std_logic); END traffic_light; ------------------------------------------------------------ ARCHITECTURE simple OF traffic_light IS TYPE t_state is (red, green, yellow); Signal present_state, next_state : t_state; BEGIN PROCESS(present_state, sensor) BEGIN CASE present_state IS WHEN green => next_state <= yellow; red_light <= ‘0’; green_light <= ‘1’; yellow_light <= ‘0’; WHEN red => red_light <= ‘1’; green_light <= ‘0’; yellow_light <= ‘0’; IF (sensor = ‘1’) THEN next_state <= green; ELSE next_state <= red; END IF; WHEN yellow => red_light <= ‘0’; green_light <= ‘0’; yellow_light <= ‘1’; next_state <= red; END CASE; END PROCESS; PROCESS BEGIN WAIT UNTIL clock’EVENT and clock=‘1’; present_state <= next_state; END PROCESS; END simple;
Kiểu dữ liệu PHYSICAL ,[object Object],[object Object],TYPE current IS RANGE 0 to 1000000000 UNITS na;  --nano amps ua = 1000 na;  --micro amps ma = 1000 ua;  --milli amps a  = 1000 ma;  --amps END UNITS;  Primary unit Secondary units
Kiểu dữ liệu PHYSICAL ,[object Object],TYPE TIME IS RANGE -2147483647 to 2147483647 UNITS fs;  --femtosecond ps  =  1000 fs;  --picosecond ns  =  1000 ps;  --nanosecond us  =  1000 ns;  --microsecond ms  =  1000 us; --millisecond sec  =  1000 ms; --second min  =  60 sec;  --minute hr  =  60 min;  --hour END UNITS;
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
3.2.2. Kiểu dữ liệu tổng hợp ,[object Object],[object Object],[object Object]
Kiểu mảng (Array Types) ,[object Object],[object Object],1D 1Dx1D 2D
Kiểu mảng (Array Types) ,[object Object],[object Object],[object Object],[object Object]
Kiểu mảng (Array Types) ,[object Object],[object Object],[object Object],[object Object],TYPE data_bus IS ARRAY(0 TO 31) OF BIT; VARIABLE X: data_bus; VARIABLE Y: BIT; Y := X(0);  --line 1 Y := X(15);  --line 2
Kiểu mảng (Array Types) ,[object Object],[object Object],TYPE row IS ARRAY (7 DOWNTO 0) OF STD_LOGIC; -- 1D array TYPE matrix IS ARRAY (0 TO 3) OF row;    -- 1Dx1D array SIGNAL x: matrix;    -- 1Dx1D signal -------------------------------------------------------------------------------------------- TYPE matrix IS ARRAY (0 TO 3) OF STD_LOGIC_VECTOR(7 DOWNTO 0); TYPE matrix2D IS ARRAY (0 TO 3, 7 DOWNTO 0) OF STD_LOGIC; -- 2D array
Kiểu mảng (Array Types) ,[object Object],[object Object],[object Object],[object Object],[object Object]
Ví dụ về mảng 1D ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ví dụ về mảng 1Dx1D LIBRARY IEEE;  USE IEEE.std_logic_1164.ALL; PACKAGE memory IS CONSTANT width  : INTEGER := 3; CONSTANT memsize : INTEGER := 7; TYPE data_out IS ARRAY(0 TO width)  OF std_logic; TYPE mem_data IS ARRAY(0 TO memsize)  OF data_out; END memory; LIBRARY IEEE;  USE IEEE.std_logic_1164.ALL; USE WORK.memory.ALL; ENTITY rom IS PORT( addr : IN INTEGER; PORT( data : OUT data_out; PORT( cs  : IN std_logic); END rom; ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Kiểu mảng không ràng buộc ,[object Object],[object Object],[object Object],TYPE BIT_VECTOR IS ARRAY(NATURAL RANGE <>) OF BIT;
Kiểu dữ liệu con subtype ,[object Object],TYPE INTEGER IS -2,147,483,647 TO +2,147,483,647; SUBTYPE NATURAL IS INTEGER RANGE 0 TO +2,147,483,647;
Ví dụ về khai báo subtype ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Kiểu bản ghi record ,[object Object],[object Object],[object Object]
Kiểu bản ghi record ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Kiểu bản ghi record PROCESS(X) VARIABLE inst : instruction; VARIABLE source, dest : INTEGER; VARIABLE operator : optype; BEGIN source := inst.src;  --Ok line 1 dest  := inst.src;  --Ok line 2 source := inst.opcode;  --error line 3 operator := inst.opcode;  --Ok line 4 inst.src  := dest;  --Ok line 5 inst.dst := dest;  --Ok line 6 inst := (add, dest, 2);  --Ok line 7 inst := (source);  --error line 8 END PROCESS; ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Kiểu bản ghi record TYPE word IS ARRAY(0 TO 3) OF std_logic; TYPE t_word_array IS ARRAY(0 TO 15) OF word; TYPE addr_type IS RECORD source : INTEGER; key  : INTEGER; END RECORD; TYPE data_packet IS RECORD addr : addr_type; data : t_word_array; checksum : INTEGER; parity : BOOLEAN; END RECORD; PROCESS(X) VARIABLE packet : data_packet; BEGIN packet.addr.key := 5;  --Ok packet.addr := (10, 20);  --Ok packet.data(0) := (‘0’, ‘0’, ‘0’, ‘0’); packet.data(10)(4) := ‘1’;  --error packet.data(10)(0) := ‘1’;  --Ok  END PROCESS;
Kiểu dữ liệu File ,[object Object],[object Object]
Kiểu dữ liệu File ,[object Object],[object Object],[object Object],[object Object]
Kiểu dữ liệu File ,[object Object],[object Object],[object Object],[object Object]
Ví dụ về truy cập file ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Các kiểu DL có thể tổng hợp
 
Đề tài môn học Thiết kế nhờ MT Nhóm: 6 người/nhóm
Đề tài môn học Thiết kế nhờ MT ,[object Object],[object Object],[object Object]
Đề tài phần 2 ( μ C) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Đề tài phần 2 (others) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object]
Đề tài phần 3 (ko làm) ,[object Object],[object Object]
Yêu cầu: ,[object Object],[object Object],[object Object],[object Object]
Tài liệu tham khảo ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

More Related Content

What's hot

Do thi-smith-chart
Do thi-smith-chartDo thi-smith-chart
Do thi-smith-chart
Ngô Văn Đức
 
Giáo trình thiết kế mạch logic số
Giáo trình thiết kế mạch logic sốGiáo trình thiết kế mạch logic số
Giáo trình thiết kế mạch logic số
Man_Ebook
 
Đề tài: Thiết kế hệ thống đo nhiệt độ, HAY, 9đ
Đề tài: Thiết kế hệ thống đo nhiệt độ, HAY, 9đĐề tài: Thiết kế hệ thống đo nhiệt độ, HAY, 9đ
Đề tài: Thiết kế hệ thống đo nhiệt độ, HAY, 9đ
Dịch vụ viết bài trọn gói ZALO 0917193864
 
bài giảng ký thuật vi xử lý PTIT
bài giảng ký thuật vi xử lý PTITbài giảng ký thuật vi xử lý PTIT
bài giảng ký thuật vi xử lý PTIT
NguynMinh294
 
Bài Tập Xử Lí Tín Hiệu Số
Bài Tập Xử Lí Tín Hiệu SốBài Tập Xử Lí Tín Hiệu Số
Bài Tập Xử Lí Tín Hiệu Số
viethung094
 
Cac ky thuat_dieu_che_4543
Cac ky thuat_dieu_che_4543Cac ky thuat_dieu_che_4543
Cac ky thuat_dieu_che_4543
PTIT HCM
 
Đề tài: Hệ thống điều khiển tốc độ động cơ DC sử dụng bộ PID
Đề tài: Hệ thống điều khiển tốc độ động cơ DC sử dụng bộ PIDĐề tài: Hệ thống điều khiển tốc độ động cơ DC sử dụng bộ PID
Đề tài: Hệ thống điều khiển tốc độ động cơ DC sử dụng bộ PID
Dịch vụ viết bài trọn gói ZALO 0917193864
 
Thiết kế mạng cảm biến không dây cho giám sát sức khỏe, HAY
Thiết kế mạng cảm biến không dây cho giám sát sức khỏe, HAYThiết kế mạng cảm biến không dây cho giám sát sức khỏe, HAY
Thiết kế mạng cảm biến không dây cho giám sát sức khỏe, HAY
Dịch vụ viết bài trọn gói ZALO 0917193864
 
Truyen song-va-anten
Truyen song-va-antenTruyen song-va-anten
Truyen song-va-anten
Đỗ Kiệt
 
Xử lý tín hiệu số
Xử lý tín hiệu sốXử lý tín hiệu số
Xử lý tín hiệu số
Khôi Nguyễn Đăng
 
Các loại mã đường truyền và ứng dụng neptune
Các loại mã đường truyền và ứng dụng neptuneCác loại mã đường truyền và ứng dụng neptune
Các loại mã đường truyền và ứng dụng neptune給与 クレジット
 
Kho 200 đề tài luận văn tốt nghiệp ngành điện tử viễn thông, 9 điểm
Kho 200 đề tài luận văn tốt nghiệp ngành điện tử viễn thông, 9 điểmKho 200 đề tài luận văn tốt nghiệp ngành điện tử viễn thông, 9 điểm
Kho 200 đề tài luận văn tốt nghiệp ngành điện tử viễn thông, 9 điểm
Dịch vụ viết bài trọn gói ZALO 0917193864
 
ứNg dụng phép biến đổi wavelet trong xử lý ảnh
ứNg dụng phép biến đổi wavelet trong xử lý ảnhứNg dụng phép biến đổi wavelet trong xử lý ảnh
ứNg dụng phép biến đổi wavelet trong xử lý ảnh
Thanh Hoa
 
Luận văn: Thiết kế hệ thống tưới cây tự động, HAY
Luận văn: Thiết kế hệ thống tưới cây tự động, HAYLuận văn: Thiết kế hệ thống tưới cây tự động, HAY
Luận văn: Thiết kế hệ thống tưới cây tự động, HAY
Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Luận văn: Thiết kế mạch điều khiển tốc độ động cơ một chiều, HAY
Luận văn: Thiết kế mạch điều khiển tốc độ động cơ một chiều, HAYLuận văn: Thiết kế mạch điều khiển tốc độ động cơ một chiều, HAY
Luận văn: Thiết kế mạch điều khiển tốc độ động cơ một chiều, HAY
Dịch vụ viết bài trọn gói ZALO 0917193864
 
đề Tài thiết kế hệ thống đèn giao thông tại ngã tư
đề Tài thiết kế hệ thống đèn giao thông tại ngã tưđề Tài thiết kế hệ thống đèn giao thông tại ngã tư
đề Tài thiết kế hệ thống đèn giao thông tại ngã tư
nataliej4
 
Đề tài: Mô phỏng kênh truyền vô tuyến số bằng matlab, 9đ
Đề tài: Mô phỏng kênh truyền vô tuyến số bằng matlab, 9đ Đề tài: Mô phỏng kênh truyền vô tuyến số bằng matlab, 9đ
Đề tài: Mô phỏng kênh truyền vô tuyến số bằng matlab, 9đ
Dịch vụ viết bài trọn gói ZALO: 0909232620
 

What's hot (20)

Do thi-smith-chart
Do thi-smith-chartDo thi-smith-chart
Do thi-smith-chart
 
Kythuatanten
KythuatantenKythuatanten
Kythuatanten
 
Giáo trình thiết kế mạch logic số
Giáo trình thiết kế mạch logic sốGiáo trình thiết kế mạch logic số
Giáo trình thiết kế mạch logic số
 
Đề tài: Thiết kế hệ thống đo nhiệt độ, HAY, 9đ
Đề tài: Thiết kế hệ thống đo nhiệt độ, HAY, 9đĐề tài: Thiết kế hệ thống đo nhiệt độ, HAY, 9đ
Đề tài: Thiết kế hệ thống đo nhiệt độ, HAY, 9đ
 
bài giảng ký thuật vi xử lý PTIT
bài giảng ký thuật vi xử lý PTITbài giảng ký thuật vi xử lý PTIT
bài giảng ký thuật vi xử lý PTIT
 
Bài Tập Xử Lí Tín Hiệu Số
Bài Tập Xử Lí Tín Hiệu SốBài Tập Xử Lí Tín Hiệu Số
Bài Tập Xử Lí Tín Hiệu Số
 
Cac ky thuat_dieu_che_4543
Cac ky thuat_dieu_che_4543Cac ky thuat_dieu_che_4543
Cac ky thuat_dieu_che_4543
 
Đề tài: Hệ thống điều khiển tốc độ động cơ DC sử dụng bộ PID
Đề tài: Hệ thống điều khiển tốc độ động cơ DC sử dụng bộ PIDĐề tài: Hệ thống điều khiển tốc độ động cơ DC sử dụng bộ PID
Đề tài: Hệ thống điều khiển tốc độ động cơ DC sử dụng bộ PID
 
Thiết kế mạng cảm biến không dây cho giám sát sức khỏe, HAY
Thiết kế mạng cảm biến không dây cho giám sát sức khỏe, HAYThiết kế mạng cảm biến không dây cho giám sát sức khỏe, HAY
Thiết kế mạng cảm biến không dây cho giám sát sức khỏe, HAY
 
Truyen song-va-anten
Truyen song-va-antenTruyen song-va-anten
Truyen song-va-anten
 
Xử lý tín hiệu số
Xử lý tín hiệu sốXử lý tín hiệu số
Xử lý tín hiệu số
 
Các loại mã đường truyền và ứng dụng neptune
Các loại mã đường truyền và ứng dụng neptuneCác loại mã đường truyền và ứng dụng neptune
Các loại mã đường truyền và ứng dụng neptune
 
Kho 200 đề tài luận văn tốt nghiệp ngành điện tử viễn thông, 9 điểm
Kho 200 đề tài luận văn tốt nghiệp ngành điện tử viễn thông, 9 điểmKho 200 đề tài luận văn tốt nghiệp ngành điện tử viễn thông, 9 điểm
Kho 200 đề tài luận văn tốt nghiệp ngành điện tử viễn thông, 9 điểm
 
ứNg dụng phép biến đổi wavelet trong xử lý ảnh
ứNg dụng phép biến đổi wavelet trong xử lý ảnhứNg dụng phép biến đổi wavelet trong xử lý ảnh
ứNg dụng phép biến đổi wavelet trong xử lý ảnh
 
Luận văn: Thiết kế hệ thống tưới cây tự động, HAY
Luận văn: Thiết kế hệ thống tưới cây tự động, HAYLuận văn: Thiết kế hệ thống tưới cây tự động, HAY
Luận văn: Thiết kế hệ thống tưới cây tự động, HAY
 
Giao tiếp TTL-CMOS
Giao tiếp TTL-CMOSGiao tiếp TTL-CMOS
Giao tiếp TTL-CMOS
 
Luận văn: Thiết kế mạch điều khiển tốc độ động cơ một chiều, HAY
Luận văn: Thiết kế mạch điều khiển tốc độ động cơ một chiều, HAYLuận văn: Thiết kế mạch điều khiển tốc độ động cơ một chiều, HAY
Luận văn: Thiết kế mạch điều khiển tốc độ động cơ một chiều, HAY
 
đề Tài thiết kế hệ thống đèn giao thông tại ngã tư
đề Tài thiết kế hệ thống đèn giao thông tại ngã tưđề Tài thiết kế hệ thống đèn giao thông tại ngã tư
đề Tài thiết kế hệ thống đèn giao thông tại ngã tư
 
Đề tài: Mô phỏng kênh truyền vô tuyến số bằng matlab, 9đ
Đề tài: Mô phỏng kênh truyền vô tuyến số bằng matlab, 9đ Đề tài: Mô phỏng kênh truyền vô tuyến số bằng matlab, 9đ
Đề tài: Mô phỏng kênh truyền vô tuyến số bằng matlab, 9đ
 
Chuong 3 he thong viba va ve tinh
Chuong 3 he thong viba va ve tinhChuong 3 he thong viba va ve tinh
Chuong 3 he thong viba va ve tinh
 

Similar to Vhdl

Vhdl Slides
Vhdl SlidesVhdl Slides
Vhdl Slides
hoadktd
 
De-cuong-on-tap-NNMTPC.pdf
De-cuong-on-tap-NNMTPC.pdfDe-cuong-on-tap-NNMTPC.pdf
De-cuong-on-tap-NNMTPC.pdf
AnhTVit1
 
Đề tài: Thiết kế một bộ chuyển đổi Analog – Digital (ADC) 8-Bits sử dụng chip...
Đề tài: Thiết kế một bộ chuyển đổi Analog – Digital (ADC) 8-Bits sử dụng chip...Đề tài: Thiết kế một bộ chuyển đổi Analog – Digital (ADC) 8-Bits sử dụng chip...
Đề tài: Thiết kế một bộ chuyển đổi Analog – Digital (ADC) 8-Bits sử dụng chip...
Dịch vụ viết thuê Khóa Luận - ZALO 0932091562
 
Giáo trình vi điều khiển avr
Giáo trình vi điều khiển avr Giáo trình vi điều khiển avr
Giáo trình vi điều khiển avr Ky Nguyen Ad
 
418 giaotrinh avr
418 giaotrinh avr418 giaotrinh avr
418 giaotrinh avr
anhhoi12345
 
Giaotrinh avr tech24.vn
Giaotrinh avr tech24.vnGiaotrinh avr tech24.vn
Giaotrinh avr tech24.vn
bibibobo2007
 
Thietke ic baigiang.v1.0
Thietke ic baigiang.v1.0Thietke ic baigiang.v1.0
Thietke ic baigiang.v1.0ba191992
 
Bao cao tom tat nckh2015
Bao cao tom tat nckh2015Bao cao tom tat nckh2015
Bao cao tom tat nckh2015
New Way
 
LUẬN VĂN THIẾT KẾ HỆ THỐNG NHÚNG VỚI VI ĐIỀU KHIỂN LÕI MỀM VÀ HỆ ĐIỀU HÀNH TR...
LUẬN VĂN THIẾT KẾ HỆ THỐNG NHÚNG VỚI VI ĐIỀU KHIỂN LÕI MỀM VÀ HỆ ĐIỀU HÀNH TR...LUẬN VĂN THIẾT KẾ HỆ THỐNG NHÚNG VỚI VI ĐIỀU KHIỂN LÕI MỀM VÀ HỆ ĐIỀU HÀNH TR...
LUẬN VĂN THIẾT KẾ HỆ THỐNG NHÚNG VỚI VI ĐIỀU KHIỂN LÕI MỀM VÀ HỆ ĐIỀU HÀNH TR...
KhoTi1
 
Gioi thieu-ve-vi-dieu-khien-pic
Gioi thieu-ve-vi-dieu-khien-picGioi thieu-ve-vi-dieu-khien-pic
Gioi thieu-ve-vi-dieu-khien-picCu Bi
 
Tong quan ve_fpga__1226
Tong quan ve_fpga__1226Tong quan ve_fpga__1226
Tong quan ve_fpga__1226KowLoon1
 
Tài liệu tham khảo lập trình PLC Mitsubishi dòng IQ-R.pdf
Tài liệu tham khảo lập trình PLC Mitsubishi dòng IQ-R.pdfTài liệu tham khảo lập trình PLC Mitsubishi dòng IQ-R.pdf
Tài liệu tham khảo lập trình PLC Mitsubishi dòng IQ-R.pdf
Man_Ebook
 
Lập trình PLC S7 1200 tiếng Việt-Chuong 1 tổng quan thiết bị
Lập trình PLC S7 1200 tiếng Việt-Chuong 1 tổng quan thiết bịLập trình PLC S7 1200 tiếng Việt-Chuong 1 tổng quan thiết bị
Lập trình PLC S7 1200 tiếng Việt-Chuong 1 tổng quan thiết bị
Xuân Thủy Nguyễn
 
Giới thiệu CGAS Xcell-C RTU (sản phẩm của CGAS)
Giới thiệu CGAS Xcell-C RTU (sản phẩm của CGAS)Giới thiệu CGAS Xcell-C RTU (sản phẩm của CGAS)
Giới thiệu CGAS Xcell-C RTU (sản phẩm của CGAS)
HaiPham949574
 
OOP_02_Java can ban.pdf
OOP_02_Java can ban.pdfOOP_02_Java can ban.pdf
OOP_02_Java can ban.pdf
ssuserd01a5c
 
Bai 1 Gioi Thieu Verilog Va Quartus
Bai 1   Gioi Thieu Verilog Va QuartusBai 1   Gioi Thieu Verilog Va Quartus
Bai 1 Gioi Thieu Verilog Va Quartusngoclanhoa116
 
BGKTMT Ch2 tổ chức hệ thống máy tính
BGKTMT Ch2 tổ chức hệ thống máy tínhBGKTMT Ch2 tổ chức hệ thống máy tính
BGKTMT Ch2 tổ chức hệ thống máy tínhCao Toa
 

Similar to Vhdl (20)

Vhdl Slides
Vhdl SlidesVhdl Slides
Vhdl Slides
 
De-cuong-on-tap-NNMTPC.pdf
De-cuong-on-tap-NNMTPC.pdfDe-cuong-on-tap-NNMTPC.pdf
De-cuong-on-tap-NNMTPC.pdf
 
Đề tài: Thiết kế một bộ chuyển đổi Analog – Digital (ADC) 8-Bits sử dụng chip...
Đề tài: Thiết kế một bộ chuyển đổi Analog – Digital (ADC) 8-Bits sử dụng chip...Đề tài: Thiết kế một bộ chuyển đổi Analog – Digital (ADC) 8-Bits sử dụng chip...
Đề tài: Thiết kế một bộ chuyển đổi Analog – Digital (ADC) 8-Bits sử dụng chip...
 
Giáo trình vi điều khiển avr
Giáo trình vi điều khiển avr Giáo trình vi điều khiển avr
Giáo trình vi điều khiển avr
 
418 giaotrinh avr
418 giaotrinh avr418 giaotrinh avr
418 giaotrinh avr
 
Giaotrinh avr tech24.vn
Giaotrinh avr tech24.vnGiaotrinh avr tech24.vn
Giaotrinh avr tech24.vn
 
Thietke ic baigiang.v1.0
Thietke ic baigiang.v1.0Thietke ic baigiang.v1.0
Thietke ic baigiang.v1.0
 
Bao cao tom tat nckh2015
Bao cao tom tat nckh2015Bao cao tom tat nckh2015
Bao cao tom tat nckh2015
 
LUẬN VĂN THIẾT KẾ HỆ THỐNG NHÚNG VỚI VI ĐIỀU KHIỂN LÕI MỀM VÀ HỆ ĐIỀU HÀNH TR...
LUẬN VĂN THIẾT KẾ HỆ THỐNG NHÚNG VỚI VI ĐIỀU KHIỂN LÕI MỀM VÀ HỆ ĐIỀU HÀNH TR...LUẬN VĂN THIẾT KẾ HỆ THỐNG NHÚNG VỚI VI ĐIỀU KHIỂN LÕI MỀM VÀ HỆ ĐIỀU HÀNH TR...
LUẬN VĂN THIẾT KẾ HỆ THỐNG NHÚNG VỚI VI ĐIỀU KHIỂN LÕI MỀM VÀ HỆ ĐIỀU HÀNH TR...
 
Gioi thieu-ve-vi-dieu-khien-pic
Gioi thieu-ve-vi-dieu-khien-picGioi thieu-ve-vi-dieu-khien-pic
Gioi thieu-ve-vi-dieu-khien-pic
 
Vi dieu khien_pic
Vi dieu khien_picVi dieu khien_pic
Vi dieu khien_pic
 
Tong quan ve_fpga__1226
Tong quan ve_fpga__1226Tong quan ve_fpga__1226
Tong quan ve_fpga__1226
 
Tài liệu tham khảo lập trình PLC Mitsubishi dòng IQ-R.pdf
Tài liệu tham khảo lập trình PLC Mitsubishi dòng IQ-R.pdfTài liệu tham khảo lập trình PLC Mitsubishi dòng IQ-R.pdf
Tài liệu tham khảo lập trình PLC Mitsubishi dòng IQ-R.pdf
 
Lập trình PLC S7 1200 tiếng Việt-Chuong 1 tổng quan thiết bị
Lập trình PLC S7 1200 tiếng Việt-Chuong 1 tổng quan thiết bịLập trình PLC S7 1200 tiếng Việt-Chuong 1 tổng quan thiết bị
Lập trình PLC S7 1200 tiếng Việt-Chuong 1 tổng quan thiết bị
 
Giới thiệu CGAS Xcell-C RTU (sản phẩm của CGAS)
Giới thiệu CGAS Xcell-C RTU (sản phẩm của CGAS)Giới thiệu CGAS Xcell-C RTU (sản phẩm của CGAS)
Giới thiệu CGAS Xcell-C RTU (sản phẩm của CGAS)
 
Ch0
Ch0Ch0
Ch0
 
OOP_02_Java can ban.pdf
OOP_02_Java can ban.pdfOOP_02_Java can ban.pdf
OOP_02_Java can ban.pdf
 
Bai 1 Gioi Thieu Verilog Va Quartus
Bai 1   Gioi Thieu Verilog Va QuartusBai 1   Gioi Thieu Verilog Va Quartus
Bai 1 Gioi Thieu Verilog Va Quartus
 
Dsd05 01-rpca
Dsd05 01-rpcaDsd05 01-rpca
Dsd05 01-rpca
 
BGKTMT Ch2 tổ chức hệ thống máy tính
BGKTMT Ch2 tổ chức hệ thống máy tínhBGKTMT Ch2 tổ chức hệ thống máy tính
BGKTMT Ch2 tổ chức hệ thống máy tính
 

Vhdl

  • 1. Thiết kế nhờ máy tính Nguyễn Thành Kiên Bộ môn Kỹ thuật Máy tính Khoa Công nghệ thông tin, ĐH BKHN
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13. Quy trình thiết kế mạch dựa trên VHDL
  • 14.
  • 15. Một ví dụ VHDL đơn giản
  • 16. Một ví dụ VHDL đơn giản
  • 17.
  • 18. Code structure library IEEE; use IEEE.std_logic_1164.all; ENTITY full_adder IS PORT (a,b,cin: in bit; s,cout:out bit); END full_adder; Architecture dataflow of full_adder is begin s <= a xor b xor cin; cout <= (a and b) or (a and cin) or (b and cin); end dataflow;
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29. Ví dụ về ENTITY ENTITY mux IS PORT (a, b: IN std_logic_vector(7 downto 0); sel: IN STD_LOGIC_VECTOR(0 to 1); c: OUT STD_LOGIC_VECTOR(7 downto 0)); END mux;
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35. library IEEE; use IEEE.std_logic_1164.all; ENTITY adder IS PORT (A,B: IN std_logic_vector(7 downto 0); C: OUT std_logic_vector(7 downto 0)); END adder; Architecture dataflow of adder is begin C <= A+B; end dataflow; Adder A(7:0) B(7:0) C(7:0)
  • 36.
  • 37.
  • 38.
  • 39. VD3: asyn-reset DFF & NAND ENTITY example IS PORT ( a, b, clk: IN BIT; q: OUT BIT); END example; --------------------------------------- ARCHITECTURE example OF example IS SIGNAL temp : BIT; BEGIN temp <= a NAND b; PROCESS (clk) BEGIN IF (clk'EVENT AND clk='1') THEN q<=temp; END IF; END PROCESS; END example; --------------------------------------- Sự kết hợp giữa mạch tổ hợp và mạch dãy DEMO
  • 40. VD4: Bộ dồn kênh Multilpexor a,b: hai kênh vào 8bit sel: các bit chọn kênh c: kênh ra 8bit
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57. LIBRARY ieee; USE ieee.std_logic_1164.all; ----------------------------------------- ENTITY mux IS PORT ( a, b, c, d, s0, s1: IN STD_LOGIC; y: OUT STD_LOGIC); END mux; ----------------------------------------- ARCHITECTURE not_ok OF mux IS SIGNAL sel : INTEGER RANGE 0 TO 3; BEGIN PROCESS (a, b, c, d, s0, s1) BEGIN sel <= 0; IF (s0='1') THEN sel <= sel + 1;END IF; IF (s1='1') THEN sel <= sel + 2;END IF; CASE sel IS WHEN 0 => y<=a; WHEN 1 => y<=b; WHEN 2 => y<=c; WHEN 3 => y<=d; END CASE; END PROCESS; END not_ok; LIBRARY ieee; USE ieee.std_logic_1164.all; ----------------------------------------- ENTITY mux IS PORT ( a, b, c, d, s0, s1: IN STD_LOGIC; 7y: OUT STD_LOGIC); END mux; ----------------------------------------- ARCHITECTURE ok OF mux IS BEGIN PROCESS (a, b, c, d, s0, s1) VARIABLE sel : INTEGER RANGE 0 TO 3; BEGIN sel := 0; IF (s0='1') THEN sel := sel + 1; END IF; IF (s1='1') THEN sel := sel + 2; END IF; CASE sel IS WHEN 0 => y<=a; WHEN 1 => y<=b; WHEN 2 => y<=c; WHEN 3 => y<=d; END CASE; END PROCESS; END ok;
  • 58. So sánh giữa Signal & Variable
  • 59.
  • 60.
  • 61. 3.2. Các kiểu dữ liệu VHDL
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67. ENTITY traffic_light IS PORT(sensor : IN std_logic; clock : IN std_logic; red_light : OUT std_logic; green_light : OUT std_logic; yellow_light : OUT std_logic); END traffic_light; ------------------------------------------------------------ ARCHITECTURE simple OF traffic_light IS TYPE t_state is (red, green, yellow); Signal present_state, next_state : t_state; BEGIN PROCESS(present_state, sensor) BEGIN CASE present_state IS WHEN green => next_state <= yellow; red_light <= ‘0’; green_light <= ‘1’; yellow_light <= ‘0’; WHEN red => red_light <= ‘1’; green_light <= ‘0’; yellow_light <= ‘0’; IF (sensor = ‘1’) THEN next_state <= green; ELSE next_state <= red; END IF; WHEN yellow => red_light <= ‘0’; green_light <= ‘0’; yellow_light <= ‘1’; next_state <= red; END CASE; END PROCESS; PROCESS BEGIN WAIT UNTIL clock’EVENT and clock=‘1’; present_state <= next_state; END PROCESS; END simple;
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85. Kiểu bản ghi record TYPE word IS ARRAY(0 TO 3) OF std_logic; TYPE t_word_array IS ARRAY(0 TO 15) OF word; TYPE addr_type IS RECORD source : INTEGER; key : INTEGER; END RECORD; TYPE data_packet IS RECORD addr : addr_type; data : t_word_array; checksum : INTEGER; parity : BOOLEAN; END RECORD; PROCESS(X) VARIABLE packet : data_packet; BEGIN packet.addr.key := 5; --Ok packet.addr := (10, 20); --Ok packet.data(0) := (‘0’, ‘0’, ‘0’, ‘0’); packet.data(10)(4) := ‘1’; --error packet.data(10)(0) := ‘1’; --Ok END PROCESS;
  • 86.
  • 87.
  • 88.
  • 89.
  • 90. Các kiểu DL có thể tổng hợp
  • 91.  
  • 92. Đề tài môn học Thiết kế nhờ MT Nhóm: 6 người/nhóm
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.

Editor's Notes

  1. The initial version of VHDL, designed to IEEE standard 1076-1987, included a wide range of data types, including numerical ( integer and real ), logical ( bit and boolean ), character and time , plus arrays of bit called bit_vector and of character called string . A problem not solved by this edition, however, was &amp;quot;multi-valued logic&amp;quot;, where a signal&apos;s drive strength (none, weak or strong) and unknown values are also considered. This required IEEE standard 1164 , which defined the 9-value logic types: scalar std_ulogic and its vector version std_ulogic_vector. The second issue of IEEE 1076 , in 1993, made the syntax more consistent, allowed more flexibility in naming, extended the character type to allow ISO-8859-1 printable characters, added the xnor operator, etc. Minor changes in the standard (2000 and 2002) added the idea of protected types (similar to the concept of class in C++) and removed some restrictions from port mapping rules. In addition to IEEE standard 1164, several child standards were introduced to extend functionality of the language. IEEE standard 1076.2 added better handling of real and complex data types. IEEE standard 1076.3 introduced signed and unsigned types to facilitate arithmetical operations on vectors. IEEE standard 1076.1 (known as VHDL-AMS ) provided analog and mixed-signal circuit design extensions. Some other standards support wider use of VHDL, notably VITAL (VHDL Initiative Towards ASIC Libraries) and microwave circuit design extensions. In June 2006, VHDL Technical Committee of Accellera (delegated by IEEE to work on next update of the standard) approved so called Draft 3.0 of VHDL-2006. While maintaining full compatibility with older versions, this proposed standard provides numerous extensions that make writing and managing VHDL code easier. Key changes include incorporation of child standards (1164, 1076.2, 1076.3) into the main 1076 standard, an extended set of operators, more flexible syntax of &apos;case&apos; and &apos;generate&apos; statements, incorporation of VHPI (interface to C/C++ languages) and a subset of PSL (Property Specification Language). These changes should improve quality of synthesizable VHDL code, make testbenches more flexible, and allow wider use of VHDL for system-level descriptions. In February 2008, Accellera approved VHDL 4.0 also informally known as VHDL 2008, which addressed more than 90 issues discovered during the trial period for version 3.0 and includes enhanced generic types. In 2008, Accellera plans to release VHDL 4.0 to the IEEE for balloting for inclusion in IEEE 1076-2008.
  2. A very important aspect of a SIGNAL, when used inside a section of sequential code (PROCESS, for example), is that its update is not immediate. In other words, its new value should not be expected to be ready before the conclusion of the corresponding PROCESS, FUNCTION or PROCEDURE.
  3. Contrary to CONSTANT and SIGNAL, a VARIABLE represents only local infor- mation. It can only be used inside a PROCESS, FUNCTION, or PROCEDURE (that is, in sequential code), and its value can not be passed out directly. On the other hand, its update is immediate, so the new value can be promptly used in the next line of code.
  4. Constant objects are names assigned to specific values of a type. Constants give the designer the ability to have a better-documented model, and a model that is easy to update. For instance, if a model requires a fixed value in a number of instances, a constant should be used. By using a constant, the designer can change the value of the constant and recompile,
  5. The encoding of enumerated types is done sequentially and automatically (unless specified otherwise by a user-defined attribute, as will be shown in chapter 4). For example, for the type color above, two bits are necessary (there are four states), being ‘‘00’’ assigned to the first state (red), ‘‘01’’ to the second (green), ‘‘10’’ to the next (blue), and finally ‘‘11’’ to the last state (white).
  6. Indeed, the pre-defined VHDL data types (seen in section 3.1) include only the scalar (single bit) and vector (one-dimensional array of bits) categories. The pre-defined synthesizable types in each of these categories are the following: Scalars: BIT, STD_LOGIC, STD_ULOGIC, and BOOLEAN. Vectors: BIT_VECTOR, STD_LOGIC_VECTOR, STD_ULOGIC_VECTOR, INTEGER, SIGNED, and UNSIGNED.
  7. Subtype declarations are used to define subsets of a type. The subset can contain the entire range of the base type but does not necessarily need to. A typical subtype adds a constraint or constraints to an existing type.
  8. Record types group objects of many types together as a single object. Each element of the record can be accessed by its field name. Record elements can include elements of any type, including arrays and records. The elements of a record can be of the same type or different types. Like arrays, records are used to model abstract data elements.
  9. Files consist of sequential streams of a particular type. A file whose base object type is INTEGER consists of a sequential stream of integers. This is shown in Figure 4-10.