SlideShare a Scribd company logo
1 of 17
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
Môn : TT Thiết kế hệ thống và vi mạch tích hợp
Thành viên: Đặng Thanh Hưng - 18119018
Nguyễn Văn Lượng - 18119094
Gồm 5 phần
chính
NỘI DUNG
Hệ Thống điều khiên đèn giao thông Thực tâp thiết kế vi mạch và
1-GIỚI THIỆU
Yêu cầu thực hiện:
a. Thời gian dừng tại mỗi trạng thái đèn có thể cấu
hình được trước khi biên dịch RTL code.
b. Tần số điều khiển đèn là 1 Hz, tương ứng với chu
kỳ 1s
a. Mỗi đường sẽ có 3 tín hiệu điều khiển đèn tương
ứng với 3 màu Green/Yellow/Red>Trạng thái khởi
động là trạng thái đèn trên cả STREET A và STREET
B đều đỏ (Red), trạng thái khởi động là trạng thái
đèn trên cả STREET A và STREET B đều đỏ (Red).
Hệ Thống điều khiển đèn giao thông Thực tâp thiết kế vi mạch và
STREETA STREET B
GREEN RED
YELLOW RED
RED RED
RED GREEN
RED YELLOW
RED RED
BẢNG CHUYỂN TRẠNG THÁI ĐÈN
Hệ Thống điều khiển đèn giao thông Thực tâp thiết kế vi mạch và
1.1 PHÂN TÍCH TỔNG QUAN
Hệ Thống điều khiển đèn giao thông Thực tâp thiết kế vi mạch và
Từ yêu cầu bài ta có được
thiết kế sơ đồ tín hiệu như
sau:
STREETA STREET
B
Street_a[2:0] Street_a[2:0]
GREEN RED 100 001
YELLOW RED 010 001
RED RED 001 001
RED GREEN 001 100
RED YELLOW 001 010
RED RED 001 001
Bảng giá trị ngõ ra
TRAFFIC_LIGHT_CONTROLLER
Clk
rst_n
Street_b[2:0]
Street_a[2:0]
2-SƠ ĐỒ KHỐI HỆ THỐNG
state Street_a
[2:0]
Street_b
[2:0]
fsm_g fsm_r fsm_y
AG_BR 100 001 1 0 0
AY_BR 010 001 0 1 0
AR_BR1 001 001 0 0 1
AR_BG 001 100 1 0 0
AR_BY 001 010 0 1 0
AR_BR2 001 001 0 0 1
Bảng giá trị ngõ ra
Lưu đồ giải thuật
Hệ Thống điều khiên đèn giao thông Thực tâp thiết kế vi mạch và
2-SƠ ĐỒ KHỐI HỆ THỐNG
TIME_COUNTER FSM
clk
rst_n
g_end Street_a[2:0]
Street_b[2:0]
r_end
y_end
fsm_g
fsm_r
fsm_y
Sơ đồ khối của bộ điều khiển đèn giao thông
Hệ Thống điều khiển đèn giao thông Thực tâp thiết kế vi mạch và
2-SƠ ĐỒ KHỐI HỆ THỐNG
Hệ Thống điều khiên đèn giao thông Thực tâp thiết kế vi mạch và
2.1-SƠ ĐỒ NGUYÊN LÝ CỦA FSM
AG_BR
AY_BR
AR_BR1
AR_BG
AR_BY
AR_BR2
AG_BR
AY_BR
AR_BG
AR_BY
AG_BR
/AR_BG
AY_BR
/AR_BY
AR_BR1
/AR_BR2
fsm_g
fsm_r
fsm_y
rst_n
clk
Street_a[2:0]
Street_b[2:0]
Current_state[2:0]
Current_state2:0]
Current_state2:0]
g_end
Current_state2:0]
Current_state2:0]
y_end
Current_state2:0]
r_end
Current_state2:0]
khác
khác
khác
khác
khác
y_end
g_end
r_end
AY_BR
AR_BR1
AR_BG
AR_BY
AR_BR2
AG_BR
Next_state[
2:0]
Current_state2:0]
100
010
001
100
010
001
1
0
1
0
1
0
NEXT_STATE OUT_FSM
Hệ Thống điều khiên đèn giao thông Thực tâp thiết kế vi mạch và
2.1-SƠ ĐỒ NGUYÊN LÝ CỦA KHỐI TIME_COUNTER
fsm_g
fsm_r
fsm_y
rst_n
clk
Clk_counter[7:0]
0
+1
0
1
Clr_cnt
GREEN_TIME
YELLOW_TIME
RED_TIME
3.1CODE RTL_FSM
Hệ Thống điều khiên đèn giao thông Thực tâp thiết kế vi mạch và
module fsm(
// Outputs
street_a, street_b, fsm_g, fsm_y, fsm_r,
// Inputs
clk, rst_n, g_end, y_end, r_end
);
//
//interface
input clk;
input rst_n;
input g_end;
input y_end;
input r_end;
output reg [2:0] street_a;
output reg [2:0] street_b;
output wire fsm_g;
output wire fsm_y;
output wire fsm_r;
//Internal signals
//
reg [2:0] current_state, next_state;
//STATE code
localparam AG_BR = 3'd0;
localparam AY_BR = 3'd1;
localparam AR_BR1 = 3'd2;
localparam AR_BG = 3'd3;
localparam AR_BY = 3'd4;
localparam AR_BR2 = 3'd5;
//
initial begin
street_a[2:0] = 3'b001;
street_b[2:0] = 3'b001;
end
Hệ Thống điều khiên đèn giao thông Thực tâp thiết kế vi mạch và
//Next state logic
always @ (*) begin
case (current_state [2:0])
AG_BR: begin
if (g_end) next_state [2:0] = AY_BR;
else next_state[2:0] = current_state[2:0];
end
AY_BR: begin
if (y_end) next_state [2:0] = AR_BR1;
else next_state [2:0] = current_state[2:0];
end
AR_BR1: begin
if (r_end) next_state [2:0] = AR_BG;
else next_state [2:0 ] = current_state[2:0];
end
AR_BG: begin
if (g_end) next_state [2:0] = AR_BY;
else next_state [2:0] = current_state [2:0];
end
AR_BY: begin
if (y_end) next_state [2:0] = AR_BR2;
else next_state [2:0] = current_state [2:0];
end
AR_BR2: begin
if (r_end) next_state[2:0] = AG_BR;
else next_state [2:0] = current_state [2:0];
end
default: next_state [2:0] = current_state [2:0];
endcase
end
3-CODE RTL_FSM
Hệ Thống điều khiên đèn giao thông Thực tâp thiết kế vi mạch và
//STATE MEMORY
always @ (posedge clk, posedge rst_n) begin
if (~rst_n) current_state [2:0] <= AR_BR1;
else current_state [2:0] <= next_state[2:0];
end
//Output logic
always @ (*) begin
case (current_state [2:0] )
AG_BR: street_a [2:0] = 3'b100;
AY_BR: street_a [2:0] = 3'b010;
default: street_a [2:0] = 3'b001;
endcase
end
always @ (*) begin
case (current_state [2:0])
AR_BG: street_b [2:0] = 3'b100;
AR_BY: street_b [2:0] = 3'b010;
default: street_b [2:0] = 3'b001;
endcase
end
assign fsm_g = (current_state [2:0] ==
AG_BR) | (current_state [2:0] == AR_BG);
assign fsm_y = (current_state [2:0] ==
AY_BR) | (current_state [2:0] == AR_BY);
assign fsm_r = (current_state [2:0] ==
AR_BR1) | (current_state [2:0] ==
AR_BR2);
endmodule
3-CODE RTL_FSM
Hệ Thống điều khiên đèn giao thông Thực tâp thiết kế vi mạch và
3.2 CODE RTL-TIME_COUNTER
3-CODE RTL
Hệ Thống điều khiên đèn giao thông Thực tâp thiết kế vi mạch và
module controller(
// Outputs
street_b, street_a,
// Inputs
rst_n, clk
);
input clk; // To cnt of time_counter.v,
input rst_n; // To cnt of time_counter.v
output [2:0] street_a; // From fsm of fsm.v
output [2:0] street_b; // From fsm of fsm.v
wire fsm_g; // From fsm of fsm.v
wire fsm_r; // From fsm of fsm.v
wire fsm_y; // From fsm of fsm.v
wire g_end; // From cnt of counter.v
wire r_end; // From cnt of counter.v
wire y_end; // From cnt of counter.v
4-TEST BENCH
module tb;
// Inputs
reg rst_n;
reg clk;
// Outputs
wire [2:0] street_b;
wire [2:0] street_a;
// Instantiate the Unit Under Test (UUT)
controller uut (
.street_b(street_b),
.street_a(street_a),
.rst_n(rst_n),
.clk(clk)
);
initial begin
clk = 0;
forever #0.5 clk =~clk;
end
initial begin
rst_n = 0;#10;
rst_n = 1;#500;
end
endmodule
Hệ Thống điều khiên đèn giao thông Thực tâp thiết kế vi mạch và
4-TEST BENCH
Hệ Thống điều khiên đèn giao thông Thực tâp thiết kế vi mạch và
5-KẾT LUẬN HƯỚNG PHÁT TRIỂN
Hệ Thống điều khiên đèn giao thông Thực tâp thiết kế vi mạch và

More Related Content

What's hot

Bài giảng môn học siemens plc s7 – 300
Bài giảng môn học siemens plc s7 – 300Bài giảng môn học siemens plc s7 – 300
Bài giảng môn học siemens plc s7 – 300
Lê Gia
 
động cơ BLDC
động cơ BLDCđộng cơ BLDC
động cơ BLDC
VI Vu
 
Tai lieu lap trinh plc s7 200 full-01_2011_v1
Tai lieu lap trinh plc s7 200 full-01_2011_v1Tai lieu lap trinh plc s7 200 full-01_2011_v1
Tai lieu lap trinh plc s7 200 full-01_2011_v1
cuongcungdfdfdf
 
đồ áN phân loại sản phâm dùng plc s71200
đồ áN phân loại sản phâm dùng plc s71200đồ áN phân loại sản phâm dùng plc s71200
đồ áN phân loại sản phâm dùng plc s71200
Lê Gia
 
1.gioi thieu 8051
1.gioi thieu 80511.gioi thieu 8051
1.gioi thieu 8051
DngBi73
 
Báo cáo hệ thống đóng táo tự động dùng plc
Báo cáo hệ thống đóng táo tự động dùng plcBáo cáo hệ thống đóng táo tự động dùng plc
Báo cáo hệ thống đóng táo tự động dùng plc
Tony Tun
 
Tai lieu lap trinh plc s7 200 full
Tai lieu lap trinh plc s7 200 fullTai lieu lap trinh plc s7 200 full
Tai lieu lap trinh plc s7 200 full
vo long
 

What's hot (20)

lâp trình plc mitsubishi
lâp trình plc mitsubishilâp trình plc mitsubishi
lâp trình plc mitsubishi
 
Lập trình PLC S7 1200 tiếng Việt-Chuong 7 truyền thông điểm điểm
Lập trình PLC S7 1200 tiếng Việt-Chuong 7 truyền thông điểm điểmLập trình PLC S7 1200 tiếng Việt-Chuong 7 truyền thông điểm điểm
Lập trình PLC S7 1200 tiếng Việt-Chuong 7 truyền thông điểm điểm
 
Bài giảng môn học siemens plc s7 – 300
Bài giảng môn học siemens plc s7 – 300Bài giảng môn học siemens plc s7 – 300
Bài giảng môn học siemens plc s7 – 300
 
Co ban ve msp430
Co ban ve msp430Co ban ve msp430
Co ban ve msp430
 
Chuong2 taplenh-s7300
Chuong2 taplenh-s7300Chuong2 taplenh-s7300
Chuong2 taplenh-s7300
 
Tài liệu tìm hiểu về PLC - Ban Cơ điện tử ĐH BKHN
Tài liệu tìm hiểu về PLC - Ban Cơ điện tử ĐH BKHNTài liệu tìm hiểu về PLC - Ban Cơ điện tử ĐH BKHN
Tài liệu tìm hiểu về PLC - Ban Cơ điện tử ĐH BKHN
 
động cơ BLDC
động cơ BLDCđộng cơ BLDC
động cơ BLDC
 
Lập trình PLC S7 1200 tiếng Việt-Chuong 4 khái niệm lập trình
Lập trình PLC S7 1200 tiếng Việt-Chuong 4 khái niệm lập trìnhLập trình PLC S7 1200 tiếng Việt-Chuong 4 khái niệm lập trình
Lập trình PLC S7 1200 tiếng Việt-Chuong 4 khái niệm lập trình
 
Tai lieu lap trinh plc s7 200 full-01_2011_v1
Tai lieu lap trinh plc s7 200 full-01_2011_v1Tai lieu lap trinh plc s7 200 full-01_2011_v1
Tai lieu lap trinh plc s7 200 full-01_2011_v1
 
đồ áN phân loại sản phâm dùng plc s71200
đồ áN phân loại sản phâm dùng plc s71200đồ áN phân loại sản phâm dùng plc s71200
đồ áN phân loại sản phâm dùng plc s71200
 
1.gioi thieu 8051
1.gioi thieu 80511.gioi thieu 8051
1.gioi thieu 8051
 
Báo cáo hệ thống đóng táo tự động dùng plc
Báo cáo hệ thống đóng táo tự động dùng plcBáo cáo hệ thống đóng táo tự động dùng plc
Báo cáo hệ thống đóng táo tự động dùng plc
 
Plc nang cao
Plc nang caoPlc nang cao
Plc nang cao
 
Truyền thông freeport và ứng dụng
Truyền thông freeport và ứng dụngTruyền thông freeport và ứng dụng
Truyền thông freeport và ứng dụng
 
Tai lieu lap trinh plc s7 200 full
Tai lieu lap trinh plc s7 200 fullTai lieu lap trinh plc s7 200 full
Tai lieu lap trinh plc s7 200 full
 
Bài tập và ứng dụng PLC
Bài tập và ứng dụng PLCBài tập và ứng dụng PLC
Bài tập và ứng dụng PLC
 
Ceec
CeecCeec
Ceec
 
Cau truc phan cung pic16 f8xx
Cau truc phan cung pic16 f8xxCau truc phan cung pic16 f8xx
Cau truc phan cung pic16 f8xx
 
Chuong 1
Chuong 1Chuong 1
Chuong 1
 
Đề tài: Dòng PLC hoạt động vô cùng hiệu quả công việc, HOT
Đề tài: Dòng PLC hoạt động vô cùng hiệu quả công việc, HOTĐề tài: Dòng PLC hoạt động vô cùng hiệu quả công việc, HOT
Đề tài: Dòng PLC hoạt động vô cùng hiệu quả công việc, HOT
 

Similar to Trafic light 1

chuong-3-tap-lenh-avr-atmega-324p-p1.pdf
chuong-3-tap-lenh-avr-atmega-324p-p1.pdfchuong-3-tap-lenh-avr-atmega-324p-p1.pdf
chuong-3-tap-lenh-avr-atmega-324p-p1.pdf
quocdo23evnhcmc
 
55727820 1-tổng-quan-tram-bts
55727820 1-tổng-quan-tram-bts55727820 1-tổng-quan-tram-bts
55727820 1-tổng-quan-tram-bts
Đào Sơn
 
Bao cao do an dieu khien dong co dc
Bao cao do an dieu khien dong co dcBao cao do an dieu khien dong co dc
Bao cao do an dieu khien dong co dc
namnam2005nt
 
Đề tài Lập trình C cho họ vi điều khiển 8051
Đề tài Lập trình C cho họ vi điều khiển 8051Đề tài Lập trình C cho họ vi điều khiển 8051
Đề tài Lập trình C cho họ vi điều khiển 8051
Brooklyn Abbott
 
Giáo trình Điều khiển số.pdf
Giáo trình Điều khiển số.pdfGiáo trình Điều khiển số.pdf
Giáo trình Điều khiển số.pdf
Man_Ebook
 
Bang gia plc_mitsubishi_fx
Bang gia plc_mitsubishi_fxBang gia plc_mitsubishi_fx
Bang gia plc_mitsubishi_fx
Lãng Quên
 
Do an lap_trinh_c_cho_vi_dieu_khien_8051_8462_1505
Do an lap_trinh_c_cho_vi_dieu_khien_8051_8462_1505Do an lap_trinh_c_cho_vi_dieu_khien_8051_8462_1505
Do an lap_trinh_c_cho_vi_dieu_khien_8051_8462_1505
Nguyen Luc
 

Similar to Trafic light 1 (20)

tailieuxanh_svm_inverter_5047.pptx
tailieuxanh_svm_inverter_5047.pptxtailieuxanh_svm_inverter_5047.pptx
tailieuxanh_svm_inverter_5047.pptx
 
Nhóm-HM.docx
Nhóm-HM.docxNhóm-HM.docx
Nhóm-HM.docx
 
baocaotuan2.pptx
baocaotuan2.pptxbaocaotuan2.pptx
baocaotuan2.pptx
 
Chuong 2
Chuong 2Chuong 2
Chuong 2
 
Báo cáo thực tập công nhân hệ thống báo động phát hiện rò rỉ khí gas
Báo cáo thực tập công nhân   hệ thống báo động phát hiện rò rỉ khí gas Báo cáo thực tập công nhân   hệ thống báo động phát hiện rò rỉ khí gas
Báo cáo thực tập công nhân hệ thống báo động phát hiện rò rỉ khí gas
 
[4_CV] Reduce The Number Calculations for Cost Function of The Predictive Con...
[4_CV] Reduce The Number Calculations for Cost Function of The Predictive Con...[4_CV] Reduce The Number Calculations for Cost Function of The Predictive Con...
[4_CV] Reduce The Number Calculations for Cost Function of The Predictive Con...
 
Tailieu.vncty.com do-an-vi-dieu-khien
Tailieu.vncty.com   do-an-vi-dieu-khienTailieu.vncty.com   do-an-vi-dieu-khien
Tailieu.vncty.com do-an-vi-dieu-khien
 
chuong-3-tap-lenh-avr-atmega-324p-p1.pdf
chuong-3-tap-lenh-avr-atmega-324p-p1.pdfchuong-3-tap-lenh-avr-atmega-324p-p1.pdf
chuong-3-tap-lenh-avr-atmega-324p-p1.pdf
 
55727820 1-tổng-quan-tram-bts
55727820 1-tổng-quan-tram-bts55727820 1-tổng-quan-tram-bts
55727820 1-tổng-quan-tram-bts
 
Điều khiển điện tử công suất DCDC bộ BUCK.pdf
Điều khiển điện tử công suất DCDC bộ BUCK.pdfĐiều khiển điện tử công suất DCDC bộ BUCK.pdf
Điều khiển điện tử công suất DCDC bộ BUCK.pdf
 
Bao cao do an dieu khien dong co dc
Bao cao do an dieu khien dong co dcBao cao do an dieu khien dong co dc
Bao cao do an dieu khien dong co dc
 
Đề tài Lập trình C cho họ vi điều khiển 8051
Đề tài Lập trình C cho họ vi điều khiển 8051Đề tài Lập trình C cho họ vi điều khiển 8051
Đề tài Lập trình C cho họ vi điều khiển 8051
 
Đồ Án Đo Điện Áp Hiển Thị Trên LCD
Đồ Án Đo Điện Áp Hiển Thị Trên LCDĐồ Án Đo Điện Áp Hiển Thị Trên LCD
Đồ Án Đo Điện Áp Hiển Thị Trên LCD
 
Giáo trình Điều khiển số.pdf
Giáo trình Điều khiển số.pdfGiáo trình Điều khiển số.pdf
Giáo trình Điều khiển số.pdf
 
Bang gia plc_mitsubishi_fx
Bang gia plc_mitsubishi_fxBang gia plc_mitsubishi_fx
Bang gia plc_mitsubishi_fx
 
dieu khien dong co khong dong bo
dieu khien dong co khong dong bodieu khien dong co khong dong bo
dieu khien dong co khong dong bo
 
Do an lap_trinh_c_cho_vi_dieu_khien_8051_8462_1505
Do an lap_trinh_c_cho_vi_dieu_khien_8051_8462_1505Do an lap_trinh_c_cho_vi_dieu_khien_8051_8462_1505
Do an lap_trinh_c_cho_vi_dieu_khien_8051_8462_1505
 
Thiết kế hệ thống điều khiển chỉnh lưu tích cực 1 pha
Thiết kế hệ thống điều khiển chỉnh lưu tích cực 1 phaThiết kế hệ thống điều khiển chỉnh lưu tích cực 1 pha
Thiết kế hệ thống điều khiển chỉnh lưu tích cực 1 pha
 
CHƯƠNG 7 PHẦN 1 TÍNH TOÁN NGẮN MẠCH
CHƯƠNG 7 PHẦN 1 TÍNH TOÁN NGẮN MẠCHCHƯƠNG 7 PHẦN 1 TÍNH TOÁN NGẮN MẠCH
CHƯƠNG 7 PHẦN 1 TÍNH TOÁN NGẮN MẠCH
 
CHƯƠNG 7 PHẦN 2 TÍNH TOÁN NGẮN MẠCH
CHƯƠNG 7 PHẦN 2 TÍNH TOÁN NGẮN MẠCHCHƯƠNG 7 PHẦN 2 TÍNH TOÁN NGẮN MẠCH
CHƯƠNG 7 PHẦN 2 TÍNH TOÁN NGẮN MẠCH
 

Trafic light 1

  • 1. TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM Môn : TT Thiết kế hệ thống và vi mạch tích hợp Thành viên: Đặng Thanh Hưng - 18119018 Nguyễn Văn Lượng - 18119094
  • 2. Gồm 5 phần chính NỘI DUNG Hệ Thống điều khiên đèn giao thông Thực tâp thiết kế vi mạch và
  • 3. 1-GIỚI THIỆU Yêu cầu thực hiện: a. Thời gian dừng tại mỗi trạng thái đèn có thể cấu hình được trước khi biên dịch RTL code. b. Tần số điều khiển đèn là 1 Hz, tương ứng với chu kỳ 1s a. Mỗi đường sẽ có 3 tín hiệu điều khiển đèn tương ứng với 3 màu Green/Yellow/Red>Trạng thái khởi động là trạng thái đèn trên cả STREET A và STREET B đều đỏ (Red), trạng thái khởi động là trạng thái đèn trên cả STREET A và STREET B đều đỏ (Red). Hệ Thống điều khiển đèn giao thông Thực tâp thiết kế vi mạch và
  • 4. STREETA STREET B GREEN RED YELLOW RED RED RED RED GREEN RED YELLOW RED RED BẢNG CHUYỂN TRẠNG THÁI ĐÈN Hệ Thống điều khiển đèn giao thông Thực tâp thiết kế vi mạch và 1.1 PHÂN TÍCH TỔNG QUAN
  • 5. Hệ Thống điều khiển đèn giao thông Thực tâp thiết kế vi mạch và Từ yêu cầu bài ta có được thiết kế sơ đồ tín hiệu như sau: STREETA STREET B Street_a[2:0] Street_a[2:0] GREEN RED 100 001 YELLOW RED 010 001 RED RED 001 001 RED GREEN 001 100 RED YELLOW 001 010 RED RED 001 001 Bảng giá trị ngõ ra TRAFFIC_LIGHT_CONTROLLER Clk rst_n Street_b[2:0] Street_a[2:0] 2-SƠ ĐỒ KHỐI HỆ THỐNG
  • 6. state Street_a [2:0] Street_b [2:0] fsm_g fsm_r fsm_y AG_BR 100 001 1 0 0 AY_BR 010 001 0 1 0 AR_BR1 001 001 0 0 1 AR_BG 001 100 1 0 0 AR_BY 001 010 0 1 0 AR_BR2 001 001 0 0 1 Bảng giá trị ngõ ra Lưu đồ giải thuật Hệ Thống điều khiên đèn giao thông Thực tâp thiết kế vi mạch và 2-SƠ ĐỒ KHỐI HỆ THỐNG
  • 7. TIME_COUNTER FSM clk rst_n g_end Street_a[2:0] Street_b[2:0] r_end y_end fsm_g fsm_r fsm_y Sơ đồ khối của bộ điều khiển đèn giao thông Hệ Thống điều khiển đèn giao thông Thực tâp thiết kế vi mạch và 2-SƠ ĐỒ KHỐI HỆ THỐNG
  • 8. Hệ Thống điều khiên đèn giao thông Thực tâp thiết kế vi mạch và 2.1-SƠ ĐỒ NGUYÊN LÝ CỦA FSM AG_BR AY_BR AR_BR1 AR_BG AR_BY AR_BR2 AG_BR AY_BR AR_BG AR_BY AG_BR /AR_BG AY_BR /AR_BY AR_BR1 /AR_BR2 fsm_g fsm_r fsm_y rst_n clk Street_a[2:0] Street_b[2:0] Current_state[2:0] Current_state2:0] Current_state2:0] g_end Current_state2:0] Current_state2:0] y_end Current_state2:0] r_end Current_state2:0] khác khác khác khác khác y_end g_end r_end AY_BR AR_BR1 AR_BG AR_BY AR_BR2 AG_BR Next_state[ 2:0] Current_state2:0] 100 010 001 100 010 001 1 0 1 0 1 0 NEXT_STATE OUT_FSM
  • 9. Hệ Thống điều khiên đèn giao thông Thực tâp thiết kế vi mạch và 2.1-SƠ ĐỒ NGUYÊN LÝ CỦA KHỐI TIME_COUNTER fsm_g fsm_r fsm_y rst_n clk Clk_counter[7:0] 0 +1 0 1 Clr_cnt GREEN_TIME YELLOW_TIME RED_TIME
  • 10. 3.1CODE RTL_FSM Hệ Thống điều khiên đèn giao thông Thực tâp thiết kế vi mạch và module fsm( // Outputs street_a, street_b, fsm_g, fsm_y, fsm_r, // Inputs clk, rst_n, g_end, y_end, r_end ); // //interface input clk; input rst_n; input g_end; input y_end; input r_end; output reg [2:0] street_a; output reg [2:0] street_b; output wire fsm_g; output wire fsm_y; output wire fsm_r; //Internal signals // reg [2:0] current_state, next_state; //STATE code localparam AG_BR = 3'd0; localparam AY_BR = 3'd1; localparam AR_BR1 = 3'd2; localparam AR_BG = 3'd3; localparam AR_BY = 3'd4; localparam AR_BR2 = 3'd5; // initial begin street_a[2:0] = 3'b001; street_b[2:0] = 3'b001; end
  • 11. Hệ Thống điều khiên đèn giao thông Thực tâp thiết kế vi mạch và //Next state logic always @ (*) begin case (current_state [2:0]) AG_BR: begin if (g_end) next_state [2:0] = AY_BR; else next_state[2:0] = current_state[2:0]; end AY_BR: begin if (y_end) next_state [2:0] = AR_BR1; else next_state [2:0] = current_state[2:0]; end AR_BR1: begin if (r_end) next_state [2:0] = AR_BG; else next_state [2:0 ] = current_state[2:0]; end AR_BG: begin if (g_end) next_state [2:0] = AR_BY; else next_state [2:0] = current_state [2:0]; end AR_BY: begin if (y_end) next_state [2:0] = AR_BR2; else next_state [2:0] = current_state [2:0]; end AR_BR2: begin if (r_end) next_state[2:0] = AG_BR; else next_state [2:0] = current_state [2:0]; end default: next_state [2:0] = current_state [2:0]; endcase end 3-CODE RTL_FSM
  • 12. Hệ Thống điều khiên đèn giao thông Thực tâp thiết kế vi mạch và //STATE MEMORY always @ (posedge clk, posedge rst_n) begin if (~rst_n) current_state [2:0] <= AR_BR1; else current_state [2:0] <= next_state[2:0]; end //Output logic always @ (*) begin case (current_state [2:0] ) AG_BR: street_a [2:0] = 3'b100; AY_BR: street_a [2:0] = 3'b010; default: street_a [2:0] = 3'b001; endcase end always @ (*) begin case (current_state [2:0]) AR_BG: street_b [2:0] = 3'b100; AR_BY: street_b [2:0] = 3'b010; default: street_b [2:0] = 3'b001; endcase end assign fsm_g = (current_state [2:0] == AG_BR) | (current_state [2:0] == AR_BG); assign fsm_y = (current_state [2:0] == AY_BR) | (current_state [2:0] == AR_BY); assign fsm_r = (current_state [2:0] == AR_BR1) | (current_state [2:0] == AR_BR2); endmodule 3-CODE RTL_FSM
  • 13. Hệ Thống điều khiên đèn giao thông Thực tâp thiết kế vi mạch và 3.2 CODE RTL-TIME_COUNTER
  • 14. 3-CODE RTL Hệ Thống điều khiên đèn giao thông Thực tâp thiết kế vi mạch và module controller( // Outputs street_b, street_a, // Inputs rst_n, clk ); input clk; // To cnt of time_counter.v, input rst_n; // To cnt of time_counter.v output [2:0] street_a; // From fsm of fsm.v output [2:0] street_b; // From fsm of fsm.v wire fsm_g; // From fsm of fsm.v wire fsm_r; // From fsm of fsm.v wire fsm_y; // From fsm of fsm.v wire g_end; // From cnt of counter.v wire r_end; // From cnt of counter.v wire y_end; // From cnt of counter.v
  • 15. 4-TEST BENCH module tb; // Inputs reg rst_n; reg clk; // Outputs wire [2:0] street_b; wire [2:0] street_a; // Instantiate the Unit Under Test (UUT) controller uut ( .street_b(street_b), .street_a(street_a), .rst_n(rst_n), .clk(clk) ); initial begin clk = 0; forever #0.5 clk =~clk; end initial begin rst_n = 0;#10; rst_n = 1;#500; end endmodule Hệ Thống điều khiên đèn giao thông Thực tâp thiết kế vi mạch và
  • 16. 4-TEST BENCH Hệ Thống điều khiên đèn giao thông Thực tâp thiết kế vi mạch và
  • 17. 5-KẾT LUẬN HƯỚNG PHÁT TRIỂN Hệ Thống điều khiên đèn giao thông Thực tâp thiết kế vi mạch và