Tài liệu Chương 4: Các FLIP FLOP thanh ghi, bộ đếm trong VHDL pptx

25 3.1K 107
Tài liệu Chương 4: Các FLIP FLOP thanh ghi, bộ đếm trong VHDL pptx

Đ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

Chương 4 CÁC FLIP FLOP, THANH GHI, BỘ ĐẾM TRONG VHDL GIỚI THIỆU THIẾT KẾ CÁC LOẠI FLIP FLOP THIẾT KẾ FLIP FLOP JK THIẾT KẾ FLIP FLOP D CÓ ENABLE THIẾT KẾ THANH GHI DỊCH THIẾT KẾ THANH GHI DỊCH 4 BIT THIẾT KẾ THANH GHI DỊCH 8 BIT THIẾT KẾ MẠCH ĐẾM JOHNSON 8 BIT THIẾT KẾ MẠCH ĐẾM VÒNG 8 BIT THIẾT KẾ MẠCH ĐIỀU KHIỂN 8 LED SÁNG DẦN – TẮT DẦN THIẾT KẾ MẠCH ĐẾM THIẾT KẾ MẠCH ĐẾM NHỊ PHÂN 4 BIT – ĐẾM LÊN THIẾT KẾ MẠCH BCD – ĐẾM LÊN THIẾT KẾ MẠCH ĐẾM BCD VÀ GIẢI MÃ HIỂN THỊ LED 7 ĐOẠN THIẾT KẾ MẠCH ĐẾM BCD TỪ 00 ĐẾN 59 – HIỂN THỊ TRÊN 2 LED 7 ĐOẠN THIẾT KẾ MẠCH ĐẾM BCD TỪ 000 ĐẾN 999 – HIỂN THỊ TRÊN 3 LED 7 ĐOẠN CÂU HỎI ÔN TẬP VÀ BÀI TẬP Chương 4. Flip flop, thanh ghi, bộ đếm trong VHDL SPKT – Nguyễn Đình Phú 142 Kỹ thuật PLD và ASIC Hình 4-1. Sơ đồ khối FLIP FLIP JK. Hình 4-2. Sơ đồ khối FLIP FLIP D có enable. Hình 4-3. Sơ đồ khối thanh ghi 4 bit. Hình 4-4. Sơ đồ khối thanh ghi 4 bit, nạp song song. Hình 4-5. Sơ đồ khối thanh ghi 8 bit. Hình 4-6. Sơ đồ khối mạch đếm vòng Johnson 8 bit. Hình 4-7. Sơ đồ khối mạch đếm vòng 8 bit. Hình 4-8. Sơ đồ khối mạch điều khiển 8 led sáng tắt dần. Hình 4-9. Sơ đồ khối mạch đếm nhò phân 4 bit. Hình 4-10. Sơ đồ khối mạch đếm BCD. Hình 4-11. Sơ đồ khối mạch đếm BCD có giải mã 7 đoạn anode chung. Hình 4-12. Sơ đồ khối mạch đếm từ 00 đến 59 có hiển thò. Hình 4-13. Sơ đồ khối mạch đếm từ 000 đến 999. Bảng 4-1. BTT FLIP FLIP JK. Bảng 4-2. BTT FLIP FLIP D có enable. Bảng 4-3. BTT mạch thanh ghi dòch 4 bit. Bảng 4-4. BTT mạch thanh ghi dòch 4 bit, nạp song song. Bảng 4-5. BTT thanh ghi dòch 8 bit. Bảng 4-6. BTT mạch đếm JOHNSON 8 bit. Bảng 4-7. BTT mạch mạch đếm vòng 8bit. Bảng 4-8. BTT mạch điều khiển 8 led sáng tắt dần. Bảng 4-9. BTT mạch đếm nhò phân 4 bit. Bảng 4-10. BTT mạch đếm BCD. Bảng 4-11. BTT mạch đếm BCD có giải mã 7 đoạn. Chương 4. Flip flop, thanh ghi, bộ đếm trong VHDL SPKT – Nguyễn Đình Phú Kỹ thuật PLD và ASIC 143 I. GIỚI THIỆU: Trong phần này sẽ thiết kế các mạch flip flop, thanh ghi và mạch đếm dùng ngôn ngữ VHDL và sử dụng thiết lập trình. Các mạch flip flop bao gồm flip flop JK, flip flop T, flip flop D. Thanh ghi dòch bao gồm thanh ghi dòch nối tiếp sang nối tiếp, nối tiếp sang song song, mạch đếm vòng, mạch đếm JohnSon. Mạch đếm nhò phân, mạch đếm lên đếm xuống, mạch đếm BCD, mạch đếm đặt trước số đếm, mạch đếm có giải mã sang led 7 đoạn, mạch đếm giây, đếm phút giây,… Các thiết lập trình có thể dùng CPLD XC9572, XC 95144, Coolrunner XC2C256. II. THIẾT KẾ CÁC LOẠI FLIP FLOP 1. THIẾT KẾ FLIP FLOP JK: Bài 4-1: Thiết kế flip flop JK gồm có các ngõ vào J, K, CLK, PRE, CLR và các ngõ ra gồm Q và Q : Bước 1: Vẽ sơ đồ khối của mạch: Hình 4-1. Sơ đồ khối FF JK. Bước 2: Bảng trạng thái: NGÕ VÀO NGÕ RA Hàng PRE CLR CLK J K Q QD 1 0 0 X X X 1 1 2 0 1 X X X 1 0 3 1 0 X X X 0 1 4 1 1 0 X X Q 0 QD 0 5 1 1 ↓ 0 0 Q 0 QD 0 6 1 1 ↓ 0 1 0 1 7 1 1 ↓ 1 0 1 0 8 1 1 ↓ 1 1 NOT Q 0 NOT QD 0 Bảng 4-1. BTT FF JK. Bước 3: Viết chương trình: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; Chương 4. Flip flop, thanh ghi, bộ đếm trong VHDL SPKT – Nguyễn Đình Phú 144 Kỹ thuật PLD và ASIC use IEEE.STD_LOGIC_UNSIGNED.ALL; entity ffjk is Port ( J : in STD_LOGIC; K : in STD_LOGIC; CLK : in STD_LOGIC; PRE : in STD_LOGIC; CLR : in STD_LOGIC; Q : out STD_LOGIC; QD : out STD_LOGIC); end ffjk; architecture Behav_ffjk of ffjk is SIGNAL QT,QDT: STD_LOGIC; SIGNAL JK : STD_LOGIC_VECTOR(1 DOWNTO 0); begin PROCESS(J,K,CLK,PRE,CLR) BEGIN IF (PRE='0') AND (CLR='0') THEN QT <='1'; QDT <='1'; -- hang 1 btt ELSIF (PRE='0') AND (CLR='1') THEN QT <='1'; QDT <='0'; -- hang 2 btt ELSIF (PRE='1') AND (CLR='0') THEN QT <='0'; QDT <='1'; -- hang 3 btt ELSIF (PRE='1') AND (CLR='1') THEN IF CLK='0' AND CLK'EVENT THEN JK <=J & K; CASE JK IS WHEN "11" => QT <=NOT QT; QDT <=NOT QDT; WHEN "10" => QT <='1'; QDT <='0'; WHEN "01" => QT <='0'; QDT <='1'; WHEN OTHERS => NULL; -- khong doi TT END CASE; END IF; -- cua lenh kiem tra xung clock END IF; END PROCESS; Q <= QT; QD <= QDT; end Behav_ffjk; 2. THIẾT KẾ FLIP FLOP D CÓ ENABLE: Chương 4. Flip flop, thanh ghi, bộ đếm trong VHDL SPKT – Nguyễn Đình Phú Kỹ thuật PLD và ASIC 145 Bài 4-2: Thiết kế flip flop D gồm có các ngõ vào D, CLK, Enable và ngõ ra gồm Q và Q : Bước 1: Vẽ sơ đồ khối của mạch: D E CLK Q Q Hình 4-2. Sơ đồ khối FF D có enable. Bước 2: Bảng trạng thái: NGÕ VÀO NGÕ RA E clk D Q QD 0 x x Q 0 QD 0 1 0 0 Q 0 QD 0 1 ↓ 0 0 1 1 ↓ 1 1 0 Bảng 4-2. BTT FF D có enable. Bước 3: Viết chương trình: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity ff_de is Port ( D : in STD_LOGIC; E : in STD_LOGIC; CLK : in STD_LOGIC; Q : out STD_LOGIC; QD : out STD_LOGIC); end ff_de; architecture Behavioral of ff_de is SIGNAL QT: STD_LOGIC; begin PROCESS(D,E,CLK) BEGIN IF E='1' THEN IF CLK='0' AND CLK'EVENT THEN QT <= D; END IF; END IF; Chương 4. Flip flop, thanh ghi, bộ đếm trong VHDL SPKT – Nguyễn Đình Phú 146 Kỹ thuật PLD và ASIC END PROCESS; Q <= QT; QD <= NOT QT; end Behavioral; III. THIẾT KẾ THANH GHI DỊCH 1. THIẾT KẾ THANH GHI DỊCH 4 BIT: Bài 4-3: Thiết kế thanh ghi dòch 4 bit vào nối tiếp ra nối tiếp. Bước 1: Vẽ sơ đồ khối của mạch: D CLK CLR Q0 Q1 Q2 Q3 Hình 4-3. Sơ đồ khối thanh ghi 4 bit. Bước 2: Lập bảng trạng thái: NGÕ VÀO NGÕ RA Ghi chú clr clk D Q3 Q2 Q1 Q0 0 x x 0 0 0 0 Reset 1 0 x Q3 0 Q2 0 Q1 0 Q0 0 Không có xung clk 1 ↑ d Q2 0 Q1 0 Q0 0 d Dòch dữ liệu vào Bảng 4-3. BTT thanh ghi 4 bit. Bước 3: Viết chương trình: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity reg4b is Port ( D : in STD_LOGIC; CLK : in STD_LOGIC; CLR : in STD_LOGIC; Q : out STD_LOGIC_VECTOR (3 downto 0)); end reg4b; architecture Behavioral of reg4b is begin process(D,CLK,CLR) variable QT: std_logic_vector(3 downto 0); Chương 4. Flip flop, thanh ghi, bộ đếm trong VHDL SPKT – Nguyễn Đình Phú Kỹ thuật PLD và ASIC 147 begin if CLR ='0' then QT :="0000"; elsif CLK='1' and CLK'event then QT(3 downto 0) := QT(2 downto 0) & D; end if; Q <= QT; end process; end Behavioral; Bài 4-4: Thiết kế thanh ghi dòch 4 bit vào nối tiếp, song song, ra nối tiếp song song. Bước 1: Vẽ sơ đồ khối của mạch: Q0 Q1 Q2 Q3 P0 P1 P2 P3 PL CLR CLK D Hình 4-4. Sơ đồ khối thanh ghi 4 bit, nạp song song, nối tiếp. Bước 2: Lập bảng trạng thái: NGÕ VÀO NGÕ RA Ghi chú CLR CLK D PL P3 P2 P1 P0 Q3 Q2 Q1 Q0 0 x x x x x x x 0 0 0 0 Reset 1 x x 0 P3 P2 P1 P0 P3 P2 P1 P0 Load 1 0 x 1 x x x x Q3 0 Q2 0 Q1 0 Q0 0 Không có xung clk 1 ↑ d 1 x x x X Q2 0 Q1 0 Q0 0 d Dòch dữ liệu vào Bảng 4-4. BTT mạch thanh ghi dòch 4 bit, nạp song song, nối tiếp. Bước 3: Viết chương trình: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity tghi4b_ntss is Port ( D : in STD_LOGIC; CLR : in STD_LOGIC; CLK : in STD_LOGIC; Chương 4. Flip flop, thanh ghi, bộ đếm trong VHDL SPKT – Nguyễn Đình Phú 148 Kỹ thuật PLD và ASIC P : in STD_LOGIC_VECTOR (3 downto 0); Q : out STD_LOGIC_VECTOR (3 downto 0); PL : in STD_LOGIC); end tghi4b_ntss; architecture Behavioral of tghi4b_ntss is begin PROCESS(D,CLR,CLK,P,LOAD) VARIABLE QT: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF CLR='0' THEN QT:= "0000"; ELSIF PL='0' THEN QT:= P; ELSIF CLK='1' AND CLK'EVENT THEN QT:= QT(2 DOWNTO 0) & D; END IF; Q <= QT; END PROCESS; end Behavioral; 2. THIẾT KẾ THANH GHI DỊCH 8 BIT: Bài 4-5: Thiết kế thanh ghi dòch 8 bit vào nối tiếp, ra nối tiếp song song. Bước 1: Vẽ sơ đồ khối của mạch: CLK CLR Q0 Q1 Q2 Q3 D Q4 Q5 Q6 Q7 Hình 4-5. Sơ đồ khối thanh ghi 8 bit. Bước 2: Lập bảng trạng thái: NGÕ VÀO NGÕ RA Ghi chú clr clk D Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 0 x x 0 0 0 0 0 0 0 0 Reset 1 0 x Q7 O Q6 O Q5 O Q4 O Q3 O Q2 O Q1 O Q0 O Không có xung clk 1 ↑ d Q6 O Q5 O Q4 O Q3 O Q2 O Q1 O Q0 O d Dòch dữ liệu vào Bảng 4-5. BTT thanh ghi dòch 8 bit. Bước 3: Viết chương trình: Chương 4. Flip flop, thanh ghi, bộ đếm trong VHDL SPKT – Nguyễn Đình Phú Kỹ thuật PLD và ASIC 149 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity TGHI8BIT is Port ( CLK : in STD_LOGIC; CLR,D : in STD_LOGIC; Q : out STD_LOGIC_VECTOR (7 downto 0)); end TGHI8BIT; architecture Behavioral of TGHI8BIT is SIGNAL QT: STD_LOGIC_VECTOR (7 downto 0); begin PROCESS (CLK,CLR) BEGIN IF CLR = '0' THEN QT <= "00000000"; ELSIF CLK='1' AND CLK'EVENT THEN QT <= QT(6 DOWNTO 0) & D; END IF; END PROCESS; Q <= QT; end Behavioral; 3. THIẾT KẾ MẠCH ĐẾM JOHNSON 8 BIT: Bài 4-6: Thiết kế mạch đếm vòng JONHSON 8 bit. Bước 1: Vẽ sơ đồ khối của mạch: CLK CLR Q0 Q1 Q2 Q3 8 BIT JOHNSON COUNTER D Q4 Q5 Q6 Q7 Hình 4-6. Sơ đồ khối mạch đếm vòng Johnson 8 bit. Chú ý: D đã được kết nối với ngõ ra 7Q và nằm bên trong mạch điện. Bước 2: Lập bảng trạng thái: Chương 4. Flip flop, thanh ghi, bộ đếm trong VHDL SPKT – Nguyễn Đình Phú 150 Kỹ thuật PLD và ASIC NGÕ VÀO NGÕ RA clr clk Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 0 X 0 0 0 0 0 0 0 0 1 ↑ 0 0 0 0 0 0 0 1 1 ↑ 0 0 0 0 0 0 1 1 1 ↑ 0 0 0 0 0 1 1 1 1 ↑ 0 0 0 0 1 1 1 1 1 ↑ 0 0 0 1 1 1 1 1 1 ↑ 0 0 1 1 1 1 1 1 1 ↑ 0 1 1 1 1 1 1 1 1 ↑ 1 1 1 1 1 1 1 1 1 ↑ 1 1 1 1 1 1 1 0 1 ↑ 1 1 1 1 1 1 0 0 1 ↑ 1 1 1 1 1 0 0 0 1 ↑ 1 1 1 1 0 0 0 0 1 ↑ 1 1 1 0 0 0 0 0 1 ↑ 1 1 0 0 0 0 0 0 1 ↑ 1 0 0 0 0 0 0 0 1 ↑ 0 0 0 0 0 0 0 0 Bảng 4-6. BTT mạch đếm JOHNSON 8 bit. Bước 3: Viết chương trình: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity johnson8bit is Port ( CLK : in STD_LOGIC; CLR : in STD_LOGIC; Q : out STD_LOGIC_VECTOR (7 downto 0)); end johnson8bit; architecture Behavioral of johnson8bit is begin PROCESS (CLK,CLR) VARIABLE QT: STD_LOGIC_VECTOR (7 downto 0); VARIABLE D : STD_LOGIC; BEGIN IF CLR = '0' THEN QT <= "00000000"; ELSIF CLK='1' AND CLK'EVENT THEN D <= NOT QT(7); [...]... Behavioral; 154 Kỹ thuật PLD và ASIC Chương 4 Flip flop, thanh ghi, bộ đếm trong VHDL SPKT – Nguyễn Đình Phú Trong chương trình biến DEM có chức năng làm biến đếm để thực hiện lần lượt các trạng thái IV THIẾT KẾ MẠCH ĐẾM 1 THIẾT KẾ MẠCH ĐẾM NHỊ PHÂN 4 BIT – ĐẾM LÊN Bài 4-9: Thiết kế mạch đếm nhò phân 4 bit Bước 1: Vẽ sơ đồ khối của mạch: CLK CLR Q0 Q1 Q2 Q3 Hình 4-9 Sơ đồ khối mạch đếm nhò phân 4 bit Bước 2:... trình đếm xuống sẽ bắt đầu cho đến khi giá trò đếm bằng 00 thì relay sẽ tác động Hệ thống ngừng Bài tập 4-23: Dùng PLD kết nối với IC đếm BCD 74LS90, hãy viết chương trình điều khiển IC 74LS90 đếm với trình tự như sau: Đếm từ 0 đến 9, sau đó đếm từ 0 đến 8, tương tự đếm từ 0 đến 7 rồi lặp lại 164 Kỹ thuật PLD và ASIC Chương 4 Flip flop, thanh ghi, bộ đếm trong VHDL SPKT – Nguyễn Đình Phú Bài tập 4- 24:. .. con đếm hàng đơn vò và một con đếm hàng chục Bài tập 4- 14: Thiết kế mạch đếm nhò phân 4 bit – đếm xuống Bài tập 4-15: Thiết kế mạch đếm nhò phân 4 bit – đếm lên, đếm xuống được điều khiển bằng tín hiệu UD (UD = 0 thì đếm lên, UD = 1 thì đếm xuống), có một tín hiệu CLK, một tín hiệu CLR Bài tập 4-16: Thiết kế mạch đếm nhò phân 4 bit – đếm lên, đếm xuống được điều khiển bằng tín hiệu UD (UD = 0 thì đếm. .. 0); Kỹ thuật PLD và ASIC 155 Chương 4 Flip flop, thanh ghi, bộ đếm trong VHDL SPKT – Nguyễn Đình Phú BEGIN IF CLR ='0' THEN QT:= "0000"; ELSIF CLK='1' AND CLK'EVENT THEN QT:= QT +1; END IF; Q . Chương 4 CÁC FLIP FLOP, THANH GHI, BỘ ĐẾM TRONG VHDL GIỚI THIỆU THIẾT KẾ CÁC LOẠI FLIP FLOP THIẾT KẾ FLIP FLOP JK THIẾT KẾ FLIP FLOP D CÓ ENABLE. KẾ FLIP FLOP D CÓ ENABLE: Chương 4. Flip flop, thanh ghi, bộ đếm trong VHDL SPKT – Nguyễn Đình Phú Kỹ thuật PLD và ASIC 145 Bài 4-2: Thiết kế flip flop

Ngày đăng: 22/12/2013, 17:15

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan