Mạch đèn giao thông hoạt động dựa trên nội dung đã lập trình cho KIT XILINX , khi có tác động từ các nút điều khiển mạch hoạt động theo đúng thời gian yêu cầu . KIT XILINX đưa dữ liệu đến các LED xanh đỏ, vàng để điều khiển các led sang, tắt. Như vậy mỗi khi mạch bắt đầu thực hiện đếm. nếu trục lộ bên này đèn xanh hoặc đèn vàng sang thì trục lộ bên kia đèn đỏ sang và ngược lại. tuỳ theo thời gian yêu cầu mà ta điều khiển các đèn sang. Khi KIT nhân tín hiệu từ các sesor, reset nó sẽ quét và tìm ra chương trình được mã hoá phù hợp với tín hiệu điều khiển để hoạt động .
Trang 2Mục lục
I CƠ SỞ LÝ THUYẾT: 4
1) GIỚI THIỆU NGÔN NGỮ VHDL: 4
2) GIỚI THIỆU KIT XILINX VÀ HƯỚNG DẪN CÁCH NẠP CODE VÀO KIT XILINX: 5
II THIẾT KẾ: 70
1) GIỚI THIỆU ĐỀ TÀI: 70
2) SƠ ĐỒ KHỐI: 71
3) GIỚI THIỆU CÁC LINH KIỆN CÓ TRONG MẠCH: 72
4) HOẠT ĐỘNG CỦA MẠCH: 73
5) VẼ MẠCH: 73
6) CODE CHƯƠNG TRÌNH: 75
III KẾT QUẢ: 79
1) MÔ PHỎNG: 79
2) HÌNH ẢNH THỰC TẾ: 79
IV NHẬN XÉT CỦA GIÁO VIÊN: 79
Trang 3Lời mở đầu
Xu hướng hiện nay của thế giới là phát triển mạnh công nghệ bán dẫn Một Chip có thể tích hợp trên nó nhiều cổng logic có thể ứng dụng trong nhiều lĩnh vực Ngày nay ngành công nghệ chế tạo phần cứng luôn có những đột phá không ngừng Từ các mạch điện đơn giản đến các mạch số, mạch tích hợp, kiến trúc mạch trở nên ngày một phức tạp hơn Nhờ những ưu điểm hơn hẳn so với các phương pháp phân tích, mô hình hoá, thiết kế mạch số kiểu truyền thống mà phương pháp sử dụng các ngôn ngữ mô phỏng phần cứng (HDL-Hard ware Description Languages) đang trở thành một phương pháp thiết kế các hệ thống điện tử số phổ biến trên toàn thế giới Đối với em là sinh viên ngành điện tử viễn thông với luận văn tốt nghiệp của mình Việc xác định cho mình một đề tài thiết thực và gắn liền với chuyên ngành của mình là một điều cần thiết Nên em đã chọn
đề tài “Sử dụng ngôn ngữ VHDL xây dựng mạch đèn giao thông đơn giản”,.Bước đầu tìm hiểu ngôn ngữ VHDL, kiểm tra bằng Test bench của phần mềm chuyên dụng XiLinx và cuối cùng là nạp vào KIT để kiểm tra.
Trang 4I CƠ SỞ LÝ THUYẾT:
1) GIỚI THIỆU NGÔN NGỮ VHDL:
- VHDL là một ngôn ngữ mô tả phần cứng (HDL) được sử dụng để mô tả một hệ thống thiết kế logic Được dùng trong thiết kế CPLD hoặc FPGA, phần mềm sẽ nạp chương trình vào CPLD hoặc FPGA
để có được một hệ thống logic mà chúng ta đã thiết kế.
- VHDL viết tắt của VHSIC Hardware Description Language VHSIC là viết tắt của Very High Speed Integrated Circuit VHDL là ngôn ngữ mô tả phần cứng được phát triển dùng cho chương trình VHSIC (Very High Speed Intergrated Circuit) của bộ quốc phòng Mỹ.
- Hầu hết câu lệnh trong VHDL xảy ra đồng thời (song song với nhau), chứ không phải là xảy ra tuần
tự như C, C++ Điều này là một khó khăn cho những người bắt đầu lập trình VHDL Tuy nhiên, khi
đã quen với cách lập trình của ngôn ngữ mô tả phần cứng, điều này sẽ rất dễ dàng
- Trước khi VHDL ra đời, có nhiều ngôn ngữ mô tả phần cứng được sử dụng nhưng không có một tiêu chuẩn thống nhất Vì các ngôn ngữ mô phỏng phần cứng đó được các nhà cung cấp thiết bị phát triển, nên mang các đặc trưng gắn với các thiết bị của nhà cung cấp đó và thuộc sở hữu của nhà cung cấp.
- Trong khi đó, VHDL được phát triển như một ngôn ngữ độc lập không gắn với bất kỳ một phương pháp thiết kế, bộ mô phỏng hay công nghệ phần cứng nào Người thiết kế có thể tự do lựa chọn công nghệ, phương pháp thiết kế trong khi vẫn sử dụng một ngôn ngữ duy nhất.
- VHDL có một số ưu điểm hơn hẳn các ngôn ngữ mô tả phần cứng khác là:
· Tính công cộng: VHDL được phát triển dưới sự bảo trợ của chính phủ Mỹ và hiện nay là một tiêu
chuẩn của IEEE, VHDL không thuộc sở hữu của bất kỳ cá nhân hay tổ chức nào Do đó VHDL được
hỗ trợ của nhiều nhà sản xuất thiết bị cũng như nhiều nhà cung cấp công cụ thiết kế mô phỏng hệ thống Ðây là một ưu điểm nổi bật của VHDL, giúp VHDL trở nên ngày càng phổ biến.
· Khả năng hỗ trợ nhiều công nghệ và phương pháp thiết kế: VHDL cho phép thiết kế bằng nhiều
phương pháp như phương pháp thiết kế từ trên xuống, hay từ dưới lên dựa vào các thư viện có sẵn Như vậy VHDL có thể phục vụ tốt cho nhiều mục đích thiết kế khác nhau, từ việc thiết kế các phần tử phổ biến đến việc thiết kế các IC ứng dụng đặc biệt (Application Specified IC).
· Ðộc lập với công nghệ: VHDL hoàn toàn độc lập với công nghệ chế tạo phần cứng Một mô tả hệ
thống dùng VHDL thiết kế ở mức cổng có thể được chuyển thành các bản tổng hợp mạch khác nhau tuỳ thuộc vào công nghệ chế tạo phần cứng nào được sử dụng (dùng CMOS, nMOS, hay GaAs) Ðây cũng là một ưu điểm quan trọng của VHDL nó cho phép người thiết kế không cần quan tâm đến công nghệ phần cứng khi thiết kế hệ thống, như thế khi có một công nghệ chế tạo phần cứng mới ra đời nó
có thể được áp dụng ngay cho các hệ thống đã thiết kế.
· Khả năng mô tả mở rộng: VHDL cho phép mô tả hoạt động của phần cứng từ mức hệ thống số
(hộp đen) cho đến mức cổng VHDL có khả năng mô tả hoạt động của hệ thống trên nhiều mức nhưng chỉ sử dụng một cú pháp chặt chẽ thống nhất cho mọi mức Như thế ta có thể mô phỏng một bản thiết kế bao gồm cả các hệ con được mô tả ở mức cao và các hệ con được mô tả chi tiết.
· Khả năng trao đổi kết quả: Vì VHDL là một tiêu chuẩn được chấp nhận, nên một mô hình VHDL
có thể chạy trên mọi bộ mô phỏng đáp ứng được tiêu chuẩn VHDL và các kết quả mô tả hệ thống có thể được trao đổi giữa các nhà thiết kế sử dụng công cụ thiết kế khác nhau nhưng cùng tuân theo chuẩn VHDL Hơn nữa, một nhóm thiết kế có thể trao đổi mô tả mức cao của các hệ thống con trong một hệ thống; trong khi các hệ con đó được thiết kế độc lập.
Trang 5USB port
Nút nhấn nút ĐK
J6 J7
J5 J8
J9
Chip Xilinx CX2C256 TQ144
J4 J1
J3 J2
J10
Khả năng hỗ trợ thiết kế mức lớn và khả năng sử dụng lại các thiết kế: VHDL được phát triển như
một ngôn ngữ lập trình bậc cao, vì vậy nó có thể sử dụng để thiết kế một hệ thống lớn với sự tham gia của một nhóm nhiều người Bên trong ngôn ngữ VHDL có nhiều tính năng hỗ trợ việc quản lý, thử nghiệm và chia sẻ thiết kế VHDL cũng cho phép dùng lại các phần đã có sẵn
2) GIỚI THIỆU KIT XILINX VÀ HƯỚNG DẪN CÁCH NẠP CODE VÀO KIT XILINX:
A KIT THỰC HÀNH CPLD: X BOARD
X board là board mạch được thiết kế sử dụng cho các thiết kế CPLD dựa trên con chip
CoolRunner-II của hãng Xilinx Với việc sử dụng board này cùng với các modul hiển thị
cho phép người sử dụng có thể thực hành, kiểm tra, tải các chương trình thiết kế VHDL.
Trên board có cổng USB2 sẽ cung cấp nguồn cho board và tải chương trình thiết kế.
Trang 6Hình 2.2 Đặc điểm của kit thực hành CPLD X Board
Kit thực hành CPLD X Board gồm có:
- Chip CPLD Coolrunner II XC2C256-TQ144.
- Port USB2 cho phép truyền dữ liệu và chương trình JTAG.
- Bộ biến đổi A/D 16bit cho phép đo các đường tín hiệu thực trong quá trình board hoạt động (dữ liệu sẽ được gửi lên PC thông qua card USB).
- Bộ dao động (1000/100/10 KHz).
- 12 LED đơn
- 2 công tắc nhấn.
- 6 port kết nối gồm 6 chân (trong đó có 2 chân nguồn VCC=3.3V,GND)
- Port 26 chân, 16 chân 6 chân.
- Nguồn điện áp hoạt động của board là 3,3V
Trang 72.3.1 CHIP CPLD Coolrunner II
Hình 2.3: S¤ đo chân ket noi Coolrunner II v¤i I/O trên board
Kết nối Coolrunner II với 12 LED đơn trên board gồm các chân sau:
Trang 12J14-TMS-JTAG P65
Trang 13J14-TDI-JTAG P63 J14-TDO-JTAG P122 J14-TCK-JTAG P67
Cung cấp nguồn cho X Board
X Board được cấp nguồn thông qua port USB (JP3), JP2 cho phép chọn nguồn điện áp sử dụng bên ngoài.
Hình 2.5: Sơ đồ nguyên lý J13
Hình 2.13 Khoi J14 (Khoi JTAG)
Trang 14Các chân I/O
Trang 15Hình 2.6 Các port I/O
Trang 16Các port của CPLD được nối trực tiếp ra các port IO để giao tiếp với các khối khác Ngoài ra còn có các port sử dụng cho chức năng configCPLD
Hình 2.7 Port A có chnc năng
Hình 2.8 port B có chnc năng parallel configuration
Hình 2.9 Port D có chnc năng JTAG
Trang 17Hình 2.10 Micro Processor CY7C68013L-56
Micro Processor CY7C68013L-56 có một số tính năng như sau:
- Tần số dao động thạch anh tối đa 24 Mhz.
- Bus giao tiếp port A.
Hình 2.11 IC2 có chnc năng JP1
Hình 2.12 Khoi xung J11
Trang 18Khối J11 tạo ra các tần số 1 Mhz, 100 kHz, 10 kHz
Trang 19KIT THỰC HÀNH CPLD VÀ HƯỚNG DẪN THỰC HÀNH THIẾT KẾ CHIP
B Hướng dẫn nạp code:
Sau khi tổng hợp thiết kế tạo các file netlist rồi, bước tiếp theo là biên tập các file ràng buộc “ Constraints File” (Mô tả các nguyên tắc thiết kế, các ràng buộc về vật lý như gán vị trí cho các đầu vào/ra trên chip, các ràng buộc về tốc độ, thời gian, tần số…)
Bước 1: Trong cửa sổ Process, chọn User Constraints, chọn Floorplan IO
Trang 20KIT THỰC HÀNH CPLD VÀ HƯỚNG DẪN THỰC HÀNH THIẾT KẾ CHIP
Hình 4.5 Khai báo các chân I/O
Bước 3: Lưu file ucf.
Bước 4: Chọn top.ucf hoặc top_sch.ucf trên cửa sổ Source Nhấn Open, chương trình của file ucf sẽ xuất hiện như sau:
Hình 4.6 Chư¤ng trình dang text cúa file ucf
Trang 21KIT THỰC HÀNH CPLD VÀ HƯỚNG DẪN THỰC HÀNH THIẾT KẾ CHIP
Bước 5: Chạy lại Implement Design trong cửa sổ Process.
Bước 6: Kích chuột phải vào Implement Design, chọn Properties Tại đây ta có thể thay đổi các tiêu chuẩn của ngõ I/O CMOS, điện áp ngõ ra từ 1.4 Volt sang 3.3 Volt như sau:
Trang 23Để nạp chương trình CPLD cho kit Kit thực hành CPLD X Board, ta sử dụng phần mềm
Digilent Adapt thông qua card USB2
Hình 4.9 Card USB2 và X Board
Tải phần mềm DIGILENT ADEP tại trang web sau:
http://www.digilentinc.com/Products/Software/
Hình 4.10 Trang web cho phép tai phan mem Digilent Adep
Trang 24HƯỚNG DẪN CÀI ĐẶT DIGILENT ADEPT
Trang 2567Bước 1: Chạy Adept.msi cho setup
Bước 2: Chọn đường dẫn
Bước 3: Đọc nội quy, chọn Đồng ý, chọn Next.
Trang 2668
Trang 27Bước 4: Kết nối máy PC với kit Coolrunner thông qua USB Digilent.
Trang 28Hình: 4.11 Cài đ¾t phan cnng cho kit X Board
TẢI CHƯƠNG TRÌNH CPLD VÀO KIT THỰC HÀNH
Bước 1: Mở Start → Program→ Digilent →Adept
Máy tính sẽ nhận dạng phần cứng, địa chỉ IP, tên thiết bị phần cứng là Chip Coolrunner II XC2C256.
Bước 2: Chọn đường dẫn file thiết kế:
Trang 29Học Viện Công Nghệ Bưu Chính Viễn Thông Hệ thống Đèn Giao Thông
Chọn file tải chương trình
.jed Bước 3: Chọn
Program.
Chương trình sẽ được cài lên con chip Coolrunner II XC2C256.
II THIẾT KẾ:
1) GIỚI THIỆU ĐỀ TÀI:
minh hiện đại , các đô thị ngày một đi lên Nhu cầu về giao thông ngày trở nên cấp thiết , nhất là các khu vực thành thị Do nhu cầu của đời sống con người, đặc biệt là nhu cầu đi lại, các phương tiện giao thông đã tang lên một cách chóng mặt Riêng tại Việt Nam số lượng xe máy gia tăng một cách đột biến, mật độ xe lưu thông trên đường ngày một nhiều, trong khi đó hệ thống đường
xá tại Việt Nam còn quá nhiều hạn chế nên thường gây ra các hiện tượng như kẹt xe, ùn tắc giao thông, đặc biệt là tai nạn giao thông ngày càng phổ biến trở thành mối hiểm hoạ cho nhiều người
Vì lý do đó các luật giao thông lần lượt ra đời và được đưa vào sử dụng một cách lặng lẽ rồi dần trở nên phổ biến như hiện nay Trong đó đèn giao thông là
Trang 30Học Viện Công Nghệ Bưu Chính Viễn Thông Hệ thống Đèn Giao Thông
công cụ điều khiển giao thông thực tế và hiệu quả nhất để đảm bảo an toàn và giảm thiểu tai nạn cho mọi người.
Từ thục tế đó nhóm 7 xin chọn đề tài :” thiết kế đèn giao thông “ sử dụng ngôn ngữ VHDL làm đề tài môn học nhằm giúp cho mọi người nhất là tầng lớp sinh viên có ý thức hơn trong việc chấp hành luật lệ an toàn giao thông.
2) SƠ ĐỒ KHỐI:
NGUỒN
Trang 31Học Viện Công Nghệ Bưu Chính Viễn Thông Hệ thống Đèn Giao Thông
3) GIỚI THIỆU CÁC LINH KIỆN CÓ TRONG MẠCH:
- Nếu bạn lấy led ( thường loại 3V ) cắm vào nguồn 5V ===> led sẽ hỏng
- Nếu muốn tính điện trở hạn dòng cho led ( để nó không hỏng và hoạt động bình thường ở 5V ) thì : Giá trị điện trở nhỏ nhất : (5V - 3V ) / 20mA = 0,1 k ôm = 100 ôm.
- Giá trị lớn nhất : (5V-1,8V)/10mA = 0,32 k ôm = 320 ôm
Trang 32Học Viện Công Nghệ Bưu Chính Viễn Thông Hệ thống Đèn Giao Thông
4) HOẠT ĐỘNG CỦA MẠCH:
XILINX , khi có tác động từ các nút điều khiển mạch hoạt động theo đúng thời
gian yêu cầu KIT XILINX đưa dữ liệu đến các LED xanh đỏ, vàng để điều
khiển các led sang, tắt
Như vậy mỗi khi mạch bắt đầu thực hiện đếm nếu trục lộ bên này đèn xanh hoặc đèn vàng sang thì trục lộ bên kia đèn đỏ sang và ngược lại tuỳ theo thời
gian yêu cầu mà ta điều khiển các đèn sang Khi KIT nhân tín hiệu từ các
sesor, reset nó sẽ quét và tìm ra chương trình được mã hoá phù hợp với tín hiệu điều khiển để hoạt động
5) VẼ MẠCH:
Sơ đồ Schematic:
Trang 33Học Viện Công Nghệ Bưu Chính Viễn Thông Hệ thống Đèn Giao Thông
Mạch Pcb 2d:
Trang 34Học Viện Công Nghệ Bưu Chính Viễn Thông Hệ thống Đèn Giao Thông
Traffic ligh system for a intersection between highway and farm way
There is a sensor on the farm way side, when there are vehicles,
Traffic light turns to YELLOW, then GREEN to let the vehicles cross the highway
Otherwise, always green light on Highway and Red light on farm way
entity traffic_light_controller is
port ( sensor : in STD_LOGIC; Sensor
clk : in STD_LOGIC; clock
rst_n: in STD_LOGIC; reset active low
light_highway : out STD_LOGIC_VECTOR(2 downto 0); light outputs of high way
light_farm: out STD_LOGIC_VECTOR(2 downto 0) light outputs of farm way
RED_YELLOW_GREEN
Trang 35Học Viện Công Nghệ Bưu Chính Viễn Thông Hệ thống Đèn Giao Thông
);
end traffic_light_controller;
architecture traffic_light of traffic_light_controller is
signal counter_1s: std_logic_vector(27 downto 0):= x"0000000";
signal delay_count:std_logic_vector(3 downto 0):= x"0";
signal delay_10s, delay_3s_F,delay_3s_H, RED_LIGHT_ENABLE,
YELLOW_LIGHT1_ENABLE,YELLOW_LIGHT2_ENABLE: std_logic:='0';
signal clk_1s_enable: std_logic; 1s clock enable
type FSM_States is (HGRE_FRED, HYEL_FRED, HRED_FGRE, HRED_FYEL);
HGRE_FRED : Highway green and farm red
HYEL_FRED : Highway yellow and farm red
HRED_FGRE : Highway red and farm green
HRED_FYEL : Highway red and farm yellow
signal current_state, next_state: FSM_States;
when HGRE_FRED => When Green light on Highway and Red light on Farm way
RED_LIGHT_ENABLE <= '0'; disable RED light delay counting
YELLOW_LIGHT1_ENABLE <= '0'; disable YELLOW light Highway delay counting
YELLOW_LIGHT2_ENABLE <= '0'; disable YELLOW light Farmway delay counting
light_highway <= "001"; Green light on Highway
light_farm <= "100"; Red light on Farm way
if(sensor = '1') then if vehicle is detected on farm way by sensors
when HYEL_FRED => When Yellow light on Highway and Red light on Farm way
light_highway <= "010"; Yellow light on Highway
light_farm <= "100"; Red light on Farm way
RED_LIGHT_ENABLE <= '0'; disable RED light delay counting
YELLOW_LIGHT1_ENABLE <= '1'; enable YELLOW light Highway delay counting
YELLOW_LIGHT2_ENABLE <= '0'; disable YELLOW light Farmway delay counting
if(delay_3s_H='1') then
if Yellow light delay counts to 3s,
Trang 36Học Viện Công Nghệ Bưu Chính Viễn Thông Hệ thống Đèn Giao Thông
turn Highway to RED,
Farm way to green light
next_state <= HRED_FGRE;
else
next_state <= HYEL_FRED;
Remains Yellow on highway and Red on Farm way
if Yellow light not yet in 3s
end if;
when HRED_FGRE =>
light_highway <= "100"; RED light on Highway
light_farm <= "001"; GREEN light on Farm way
RED_LIGHT_ENABLE <= '1'; enable RED light delay counting
YELLOW_LIGHT1_ENABLE <= '0'; disable YELLOW light Highway delay counting
YELLOW_LIGHT2_ENABLE <= '0'; disable YELLOW light Farmway delay counting
light_highway <= "100"; RED light on Highway
light_farm <= "010"; Yellow light on Farm way
RED_LIGHT_ENABLE <= '0'; disable RED light delay counting
YELLOW_LIGHT1_ENABLE <= '0'; disable YELLOW light Highway delay counting
YELLOW_LIGHT2_ENABLE <= '1'; enable YELLOW light Farmway delay counting
if(delay_3s_F='1') then
if delay for Yellow light is 3s,
turn highway to GREEN light
Farm way to RED Light