5 2.1.2 Các ki u dể ữ liệu trong Verilog Có 2 ki u dể ữ liệu: - Kiểu dữ liệu net - Kiểu dữ liệu thanh ghi Nếu các đối tượng dữ liệu net wire, wand, wor, tri, supply0, supply1 hoặc regite
TỔNG QUAN
Đặ ấn đề t v
Ngày nay cùng v i s phát tri n c a khoa h c kớ ự ể ủ ọ ỹ thuật, xã hội ngày càng văn minh và hiện đại, s phát tri n ự ể ở đô thị ngày một đi lên Nhu cầu v giao thông ngày ề càng tr nên c p thi t, nh t là trong các khu v c thành th ở ấ ế ấ ự ị
Với cu c s ng hiộ ố ện đại và s phát tri n nhanh chóng c a n n kinh tự ể ủ ề ế và lượng dân cư đông đúc Ùn tắc giao thông gây thiệt hại không nhỏ cho sự phát triển kinh tế quốc gia, gi m hi u suả ệ ất lao động và tăng các chi phí không cần thiết trong quá trình sản xuất Trong b i c nh kinh tố ả ế lạm phát và khó khăn như hiện nay, lãng phí trong giao thông lại đặt thêm m t gánh nộ ặng đố ới đờ ối v i s ng kinh t cế ủa người dân Nguyên nhân của vấn đề này một phần là do cơ sở hạ tầng chưa đáp ứng được nhu cầu lưu thông hiện nay, m t ph n là do vi c phân chộ ầ ệ ia, định th i gian c a hờ ủ ệ thống đèn giao thông hiệ ại n t ở các giao l ộ chưa hợp lý khiến cho s ố lượng phương tiện giao thông b ùn t c theo thị ắ ời gian r i dồ ẫn đế ắn t c ngh n giao thông Qua th c trẽ ự ạng đó, nhóm muốn xây d ng mự ột hệ thống điều thiết giao thông tự động, phân luồng trực tiếp và hiệu quả hơn phần nào đó giảm b t tình tr ng ùn tớ ạ ắc giao thông Đồng th i tiêu ti p c n, b sung các ki n thờ ế ậ ổ ế ức mới cũng như củng cố lại những kỹ năng kiến thức trong suốt quá trình học tập Tại Việt Nam s ố lượng xe máy trong những năm qua 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á Vi Nam ở ệt 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, ách t c giao thông, ắ đặc biệt là tai n n giao thông ngày càng phô bi n tr thanh m i hi m h a 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 đó hệ thống đèn giao thông là công cụ điều khi n giao thông công c ng th c t và hi u qu có vai trò r t l n trong viế ộ ự ế ệ ả ấ ớ ệc đảm bảo an toàn và gi m thi u tai n n giao thông ả ế ạ
M ục tiêu đề tài
Trước tình hình phương tiện tham gia giao thông ngày càng gia tăng không ngừng và h ệthống giao thông nước ngày càng ph c t p D n n ta ứ ạ ầ đế tình trạng ùn t c ắ và tai n n ạ giao thông ngày càng gia tăng Xuất phát t nhu c u th c từ ầ ự ế đó, chúng ta thiết nghĩ cần các giải pháp để giải quy t m t phế ộ ần nào đó về các nhu c u th c tầ ự ế trên
" Hệ thống đèn giao thông thông minh" là hết sức cần thiết, nó có thể có những tính năng được cài đặ ẵn đểt s giải quyết những sự cố kịp thời, tránh thời giờ lãng phí trong khi giao thông b ùn t t tị ắ ại các ngã tư.
Và để đảm b o giao ả thông được an toan và thông suốt thì việc s d ng ử ụ các h ệ thống tín hi u ệ đế điều khi n và phân ế luồng t i ạ các nút giao thông là r t c n ấ ầ thiết V i ớ tầm quan trọng như v y hậ ệ thống điều khi n tín hi u giao thông c n m b o yêu c u: ế ệ ầ đả ả ầ
- Đảm b o ho t ả ạ động m t ộ cách chính xác, liên t c ụ trong thời gian dài
- Đảm b o làm ả việc n nh, ố đị lâu dài
- Dễ quan sát cho ngườ đi đười ng
- Chi phí nh , ỏ tiết kiệm năng lượng
N i dung nghiên c u ộ ứ
Tìm hi u và nguyên c u các ki n thể ứ ế ức đã học ở môn h c thi t k vi mọ ế ế ạch và tích hợp để xây dựng module điều khiển đèn giao thông dựa trên ngôn ngữ verilog Công cụ thực hi n là ph n m m ISE Xệ ầ ề ilinx Design Suite
Trình bày vấn đề ẫ d n nh p lý do chậ ọn đề tài, m c tiêu, n i dung nghiên c u, các ụ ộ ứ giới h n thông s và các nạ ố ội dung cơ bản có liên quan
Chương 2: Cơ sở lý thuyết
Tìm hi u ể và đưa ra những cơ sở lý thuyết có liên quan đến đề tài để dẫn ch ng cho ứ việc thi t k hế ế ệ thống module điều khiển đàn giao thông
Thiết kế và tính toán hân tích, xây dựng sơ đồ khối, sơ đồ phần cứng, thiết kế ,p chương trình , giao diện mô phỏng quá trình thực hiện
Xây dựng chương trình hoàn chỉnh cho toàn hệ thống, các hàm, các lưu đồ, các chương trình được sử dụng Lắp ráp và chạy chương trình
Viết tài liệu hướng dẫn sử dụng, quy trình thao tác.
Chương 4: Kết quả và đánh giá
Nêu các kết quả đạt được khi th c hiự ện chương trình, phân tích, nhận xét, đánh giá kết quả thực thi được
Chương 5: Kết luận và hướng phát triển
Kết luận và hướng phát tri n ể
Tóm t t nh ng k t quắ ữ ế ả đạt được, nh ng h n chữ ạ ế và nêu lên các hướng phát tri n ể trong tương lai
Trong quá trình th c hiự ện đề tài có th ể không tránh được các thiếu sót và mức độ hoàn thành đề tài, mong thầy xem xét và có th ể đưa ra nhận xét để chúng em có th ểkhắc phục được những thiếu sót đó và có thể hoàn thiện cũng như mở ộng đề r tài sau này
Vì một số điều khi n không cho phép nên chúng em ch ệ ỉthực hi n mô ph ng trên ệ ỏ phần m m ISim và không có kit FPGA Xilinx Spartan-ề 3E để ạ n p code Nên chúng em xin thay th t n s 1Hz bế ầ ố ằng 1KHz để ễ d dàng cho vi c mô phệ ỏng hơn.
Gi i h n ớ ạ
Trong quá trình th c hiự ện đề tài có th ể không tránh được các thiếu sót và mức độ hoàn thành đề tài, mong thầy xem xét và có th ể đưa ra nhận xét để chúng em có th ểkhắc phục được những thiếu sót đó và có thể hoàn thiện cũng như mở ộng đề r tài sau này
Vì một số điều khi n không cho phép nên chúng em ch ệ ỉthực hi n mô ph ng trên ệ ỏ phần m m ISim và không có kit FPGA Xilinx Spartan-ề 3E để ạ n p code Nên chúng em xin thay th t n s 1Hz bế ầ ố ằng 1KHz để ễ d dàng cho vi c mô phệ ỏng hơn.
CƠ SỞ LÝ THUYẾT
Ngôn ng l p trình Verilog ữ ậ
Verilog là m t trong hai ngôn ng mô t ph n c ng chính (g m VHDL và Verilog ộ ữ ả ầ ứ ồ HDL) được người thiết kế phần cứng sử dụng để mô tả, thiết kế các hệ thống số, ví dụ như máy tính hay linh kiện điện tử
Verilog d h c và d s dễ ọ ễ ử ụng hơn VHDL Verilog được chu n hoá theo chuẩ ẩn IEEE vào năm 1995 và 2001 Verilog rất gi ng ngôn ngố ữ C và được gi i chuyên môn ớ nghiên c u, s d ng nhi u ứ ử ụ ề
Verilog HDL có thể đượ ử ụng để thiế ế ệ thốc s d t k h ng số ở nhi u m c khác nhau, ề ứ ví dụ ở ức cao như các mô hình đặc trưng đế m n các mức thấp như mô hình bố trí dây, điện tr , transistor trên m t m ch tích h p; mô t các c ng logic, flip_flop trong h ở ộ ạ ợ ả ổ ệthống số; mô t thanh ghi và s di chuy n d ả ự ể ữliệu gi a các thanh ghi (RTL - Register Transfer ữ Level)
2.1.1.2 Mục đích sử ụ d ng Verilog HDL
Hệ thống s là m t hố ộ ệ thống ph c t p b c cao ứ ạ ậ Ở cấp độ chi ti t nh t, chúng có ế ấ thể bao gồm hàng nghìn thành phần như: các transistor hoặc các c ng logic, cho nên vổ ới hệ thống s l n, thi t kố ớ ế ế ở m c c ng không còn s d ng n a Qua nhi u th p k , giứ ổ ử ụ ữ ề ậ ỷ ản đồ logic của các thiết kế logic cũng không còn nhiều n a Ngày nay, s ph c tạp của ữ ự ứ phần cứng đã tăng lên ở ộ m t mức độ mà giản đồ ủ c a c ng logic hổ ầu như vô ích khi nó chỉ biểu diễn một mạng lưới phức tạp các liên kết không theo chức năng của thiết kế Cách s dử ụng cơ bản c a Verilog HDL trong thi t k m ch tích h p là mô ph ng ủ ế ế ạ ợ ỏ thiết k và t o mế ạ ẫu trên FPGA trước khi chuy n sang s n xu t M c tiêu c a Verilog ể ả ấ ụ ủ không ph i t o ra nh ng chip VLSI mà s dả ạ ữ ử ụng Verilog để mô tả một cách chính xác chức năng của bất k hỳ ệ thống s nào và nố ạp chương trình tạo m u lên FPGA, ví d ẫ ụ như máy tính, các b vi xộ ử lý,… tuy tốc độ chậm và lãng phí diện tích hơn Những thi t k ế ế mức thấp hơn trong Verilog được thực hiện trên VLSI để đạt đế ốc độ ực đạn t c i và có diện tích cực ti u Tuy nhiên sể ử d ng thi t k dùng Verilog trên FPGA sụ ế ế ẽ tiết ki m chi ệ phí và th i gian thi t k ờ ế ế
2.1.2 Các ki u dể ữ liệu trong Verilog
- Kiểu dữ liệu thanh ghi
Nếu các đối tượng dữ liệu net (wire, wand, wor, tri, supply0, supply1) hoặc regiter (reg) được khai báo mà không có tầm, theo mặc định các đối tượng này rộng 1-bit và được tham chiếu ở dạng vô hướng Nếu một tầm được khai báo, đối tượng có nhiều bit và được gọi là vector Một vector có thể được tham chiếu trong trạng thái toàn bộ, một phần hoặc từng bit riêng rẽ khi cần
Các đối tượng dữ liệu net là khả năng tổng hợp, sẽ biểu diễn và mô hình sự kết nối vật lý các tín hiệu Một phép gán trong verilog là cơ chế cơ bản để gán giá trị đến các kiểu dữ liệu của net và register Cụ thể là, phát biểu gán tiếp tục sẽ gán giá trị đến bất kỳ kiểu nào trong các kiểu dữ liệu của net và do vậy kết nối đến một đường dây thực tế trong mạch điện suy ra được
Wire: Một tín hiệu kiểu wire biểu diễn cho một dây nối trong mạch thiết kế và được dùng để kết nối các cổng logic, các module Các tín hiệu kiểu wire chỉ được đọc, không được gán trong các hàm hoặc các block Tín hiệu kiểu wire không lưu trử giá trị của nó và nó phải được gán giá trị bằng các lệnh gán đồng thời hoặc được kết nối vào các output của các cổng logic, các module
Wire [msb : lsb ] wire_variable_list ;
Wor: Mô hình OR- nối dây của vài mạch kích đang kích cùng một net Một cổng
OR sẽ được tổng hợp
Wand: Mô hình AND- nối dây của vài mạch đang kích cùng một net Một cổng
AND sẽ được tổng hợp
Kiểu dữ liệu register lưu giữ giá trị từ một phát biểu gán thủ tục đến phát biểu gán thủ tục kế tiếp và có ý nghĩa là đối tượng này lưu giữ giá trị trên các chu kỳ delta mô phỏng Phép gán thủ tục là một phép gán cho một kiểu dữ liệu của register và không hàm ý rảng một thanh ghi vật lý sẽ được tổng hợp, mặc dù phép gán được sử dụng cho mục đích này
Phép gán được sử dụng để gán giá trị dưới những điều kiện kích khởi, chẳng hạn như các phát biểu if và case Phép gán thủ tục lưu giữ giá trị trong một kiểu dữ liệu của register và được duy trì cho đến phép gán thủ tục kế tiếp cho kiểu dữ liệu của register
Một kiểu dữ liệu thông số sẽ định nghĩa một hằng Chỉ có các hằng thông số nguyên (không thực ) được sử dụng với phần mềm tổng hợp Giống như mọi kiểu dữ liệu khác, vị trí của chúng sẽ được xác định chúng là toàn cục đối với một module hay là cục bộ đối với một phát biểu always riêng biệt
Parameter Stop = 0, Slow = 1, Medium = 2, Fast = 3;
Các kiểu dữ liệu nguyên được dùng để khai báo các biến có công dụng tổng quát để sử dụng trong các vòng lặp, chúng không có ý định phần cứng trực tiếp và lưu giữ giá trị số Không có tầm nào được chỉ rõ khi một đối tượng nguyên được khai báo Đây là các số nguyên có dấu và tạo ra các kết quả dạng bù 2
Các đối tượng dữ liệu wire và dữ liệu reg có thể có những giá trị sau :
X giá trị logic không xác định
Z trạng thái tổng trở cao của cổng ba trạng thái
Biến reg được gán giá trị ban đầu là X ở đầu chương trình Biến wire không được nối với bất kỳ cái gì cũng có giá trị là X
Có thể xác định cỡ của thanh ghi hoặc dây trong khai báo
Ví dụ: reg [7:0] A,B; //thanh ghi A và B có 8 bit từ 0 – 7, bit cao nhất là bit 7 (MSB). wire [3:0] data; //dây data có 4 đường từ 0 – 3
Vùng nhớ: Vùng nhớ được định nghĩa giống như vectơ của thanh ghi Ví dụ một vùng nhớ gồm 1024 từ, mỗi từ 16 bit reg [15:0] Mem [1024:0];
Kí hiệu Mem[0] sẽ tham chiếu đến vùng nhớ đầu tiên
Chú ý rằng không thể tham chiếu đến một bit trong 1 từ của vùng nhớ, muốn làm điều này phải chuyển dữ liệu vào một thanh ghi trung gian
2.1.3 Mô t module ả Định nghĩa module luôn luôn bắt đầu bằng từ khóa module Tên module, danh sách port, khai báo port, thông số (parameter) phải hiện diện trước tiên trong định nghĩa module Danh sách port và khai báo port chỉ hiện diện khi module có port tương tác với môi trường bên ngoài
Năm thành phần trong module là:
- Các phát biểu luồng dữ liệu
- Thể hiện của các module thấp hơn
Các thành phần này có thể ở bất kỳ nơi nào trong module và không cần thứ tự Phát biểu endmodule là phát biểu sau cùng trong định nghĩa module
Mọi thành phần (ngoại trừ module, tên module và endmodule) là tùy chọn, có thể trộn lẫn và tương thích theo yêu cầu thiết kế Verilog cho phép nhiều module được định nghĩa trong một tập tin duy nhất và không cần thứ tự
2.1.4 Toán t và các phát biử ểu điều khi n ể
Gồm các toán tử quan hệ so sánh 2 toán hạng và trả ra giá trị logic Đúng là 1, sai là 0
Nếu bất kì bit nào không xác định thì kết quả ra là không xác định
Các toán tử điều kiện
Các toán tử set bit
{,} : ghép thanh ghi hoặc dây
Ví dụ: dùng điều lệnh assign để viết một module giải đa hợp từ 2 đường sang
4 đường (bạn có thể tự viết giải đa hợp từ 3 sang 8 hay 4 sang 16) module demux(data, in1, in0, out0, out1, out2, out3); input data; input in0,in1; output out0,out1,out2,out3; assign out0= data&(~in1)&(~in0); assign out1= data&(~in1)&(in0);
9 assign out2= data&(in1)&(~in0); assign out3= data&(in1)&(in0); endmodule
2.1.4.2 Các cấu trúc điều khi n ể
Verilog rất phong phú các câu lệnh điều khiển có thể sử dụng trong phần thủ tục Hầu hết chúng rất quen thuộc với những người lập trình bằng ngôn ngữ C Điểm khác biệt lớn nhất chính là thay dấu ngoặc {} trong ngôn ngữ C bằng từ khóa begin và end trong Verilog HDL Như đã nói ở trên, dấu ngoặc {,} dùng để nối chuỗi các bit Có các loại cấu trúc sau:
Cấu trúc if else Cấu trúc case: không giống cấu trúc case trong C ở chỗ không cần lệnh break
Ví dụ: case (State) st0: State = st1; st1: State = st2; st2: State = st3; st3: State = st0; endcase
Quy trình thi t k h ế ế ệ thống
Các con Chip hiện nay đang tồn tại ở trong hầu hết các vật dụng điện tử, nhận thấy vai trò đóng góp to lớn của Chip do đó trên thế giới ngành công nghiệp để sản xuất ra những con chip hay những vi mạch tich hợp này hiện đang là một trong những lĩnh vực mới mẻ và hứa hẹn nhiều tiềm năng Vậy quy trình và những đòi hỏi về mặt kỹ thuật phải có chất lượng cao
2.2.1 Quy trình thi t k mế ế ột ASIC
Mạch tích hợp ứng dụng cụ thể ASIC là linh kiện được sản xuất chưa hoàn chỉnh (hay một phần) bởi nhà cung cấp ASIC ở dạng tổng quát Quá trình chế tạo ban đầu này rất phức tạp, mất nhiều thời gian và là phần đắc tiền nhất trong toàn bộ quá trình sản xuất Kết quả của quá trình chế tạo ban đầu này sẽ là những chip silicon có các dải transistor chưa nối với nhau
Quá trình chế tạo sau cùng là quá trình kết nối các transistor với nhau, sẽ được hoàn tất khi người thiết kế chip có một thiết kế cụ thể và người này muốn thực hiện lên trên ASIC Nhà cung cấp ASIC thường có thể thực hiện điều này trong vài tuần và gọi đây là thời gian làm thay đổi hoàn toàn
Có hai loại linh kiện ASIC, đó là dải cổng (gate array) và cell chuẩn (standard cell)
2.2.1.1 D i cả ổng Được chia thành hai loại dải cổng là dải cổng được chia kênh hay có kênh và dải cổng không có kênh:
- Dải cổng có kênh được sản xuất một hoặc vài hàng cell cơ bản ngang qua chip silicon Một cell cơ bản bao gồm một số transistor Các kênh giữa các hàng cell cơ bản được sử dụng để liên kết nối các cell cơ bản trong thời gian của quá trình sản xuất sau cùng theo yêu cầu khách hàng
- Dải cổng không có kênh được sản xuất với rất nhiều cell cơ bản ngang qua chip silicon và không có các kênh chuyên dụng cho việc liên kết nối Các dải cổng chứa từ vài ngàn cổng tương đương (như cổng NAND 2 ngõ vào) đến vài trăm ngàn cổng tương đương hoặc hơn nữa Do không gian định tuyến (để liên kết nối) bị giới hạn trên các dải
15 cổng có kênh, cho nên số lượng cổng này khó có thể được sử dụng hết tổng số cổng có sẵn (khoảng từ 70 đến 90%)
- Thư viện các cell do những nhà cung cấp dải cổng hỗ trợ sẽ bao gồm: các cổng logic cơ bản mẫu, thanh ghi, macro cứng và macro mền Các macro cứng và macro mềm thường có độ phức tạp của MSI và LSI, chẳng hạn như mạch ghép kênh, mạch so sánh và mạch đếm Macro cứng được định nghĩa bởi nhà sản xuất dưới dạng các mẫu cell cơ bản Khi so sánh các macro mền được đặc trưng hóa bởi người thiết kế, như việc chỉ ra độ rộng các bit trong mạch so sánh hai ngõ vào chẳng hạn
Mô hình lu ng thi t kồ ế ế ASIC
Các linh kiện cell chuẩn không có khái niệm về cell cơ bản và không có thành phần nào được sản xuất trước trên chip silicon Nhà sản xuất tạo ra các mặt nạ tùy thuộc khách hàng cho từng giai đoạn của quá trình sản xuất chip, có nghĩa là silicon được tận dụng hiệu quả hơn nhiều so với các dải cổng Nhà sản xuất cung cấp các thư viện macro cứng và macro mềm chức những phần tử có độ phức tạp của LSI và VLSI , chẳng hạn như bộ điều khiển, ALU và bộ vi xử lý
Ngoài ra thư viện macro mền còn chứa nhiều mạch chức năng RAM mà ta không thể thực hiện được một cách có hiệu quả các linh kiện dải cổng; Mạch chức năng ROM thường được thực hiện hiệu quả hơn trong các mẫu cell cơ bản
2.2.2 Quy trình thi t k d a trên FPGAế ế ự
Dải cổng lập trình được dạng trường là linh kiện được sản xuất hoàn chỉnh nhưng vẫn duy trì được tính độc lập với thiết kế Mỗi nhà sản xuất FPGA đều đăng ký độc quyền các kiến trúc FPGA của mình Tuy nhiên, những kiến trúc này sẽ bao gồm một số khối logic lập trình được và những khối này được nối với nhau bằng các ma trận chuyển mạch lập trình được Để cấu hình cho một linh kiện cho một chức năng cụ thể, những ma trận chuyển mạch này được lập trình để định tuyến các tín hiệu giữa nhiều khối logic riêng rẽ
Như vậy với các tính năng của ASIC và FPGA sẽ được chọn lựa tùy vào giá thành của sản phẩm Tuy nhiên với FPGA, việc lập trình thường dễ dàng và nhanh chóng, chức năng tùy thuộc khách hàng Hơn nữa các FPGA cho phép việc bố trí bo mạch in bằng công cụ CAD được tiến hành, trong khi thiết kế bên trong FPGA vẫn đang hoàn tất Thủ tục này cho phép ta kiểm tra sự tích hợp phần cứng và phần mền Nếu việc kiểm tra hệ thống thất bại, thiết kế này có thể được sửa đổi và linh kiện khác FPGA được lập trình ngay lập tức với chi phí tương đối thấp Với các chip FPGA và CPLD dạng SSP (lập trình ngay trên hệ thống) hiện nay, việc lập trình lại sẽ hoàn toàn dễ dàng với chi phí không đáng kể
Với những lý do trên, các thiết kế thường trước tiên hướng đến FPGA để kiểm tra hệ thống và có thời gian sản xuất nhỏ Kế đến, thiết kế được định hướng lại đến một ASIC để sản xuất ở quy mô lớn hơn Các thỏa hiệp thiết kế phải được xem xét khi định hướng lại từ FPGA sang ASIC Thí dụ như thời gian giữ dài có thể không bao giờ xuất hiện trong ASIC do tốc độ thực hiện chức năng được cải tiến
Mô hình luồng thiết kế FPGA
(c) Antifuse hoạt động như 1 công tắc
Chú thích : Antifuse: cầu chì nghịch
Lập trình bằng dòng điện
Quy trình chế tạo khác với công nghệ CMOS
Cấu trúc tế bào Sram:
Cấu trúc tế bào SRAM (hãng Xilinx)
Tái sử dụng và nâng cấp thiết kế dễ dàng Cập nhật và thay đổi hệ thống bằng tái cấu hình phần cứng trực tiếp Công nghệ CMOS
Dữ liệu bị mất khi nguồn cung cấp bị ngắt Kích thước lớn hơn antifuse
2.3.3.3 Nguyên lý UVEPROM và EEPROM
Nguyên lý hoạt động Transistor EPROM:
Cấu trúc transistor EPROM (hãng Xilinx)
Tái lập trình không cần bộ nhớ ngoài Diện tích nhỏ
Không tái cấu hình trực tiếp trên mạch
THIẾT KẾ HỆ THỐNG
Các module
FPGA prototype kit cung c p m ch dao ấ ạ động t n s cao (t ầ ố ừ 50Mhz đến 100MHz) Trong m t sộ ố ứng d ng c n t n sụ ầ ầ ố thấp hơn, ví dụ ạch đế m m, m ch ghi d ch, hoạ ị ặc điều khiển ngo i vi c n các xung clock có t n s khác nhau và thạ ầ ầ ố ấp hơn để có th quan sát ể được Module chia xung được thiết k nh m t o ra m t ho c nhi u ngõ ra xung clock có ế ằ ạ ộ ặ ề tần số thấp hơn
Mạch chia xung có th ể được thi t kế ế ằ b ng nhiều cách khác nhau, trong đó, có thể sử d ng mụ ạch đếm nh phân n-ị bit để thiết k m ch chia xung ế ạ
Module chia xung này l y t n s 50Mhz tấ ầ ố ừ kit FPGA để đưa vào ngõ vào và tại ngõ ra nó s cho ra t n s là 1 KHz ẽ ầ ố
Bộ ghép kênh , được viết tắt là “MUX” hoặc “MPX”, là một mạch logic tổ hợp được thiết kế chuyển m t trong số các đường đầđể ộ u vào sang một đường đầu ra chung duy nh t b ng cách áp d ng tín hiấ ằ ụ ệu điều khi n Bể ộ ghép kênh hoạt động giống như công t c xoay nhi u v trí hoắ ề ị ạt động r t nhanh k t n i hoấ ế ố ặc điều khi n nhiể ều đường đầu vào được gọi là “kênh” tại một thời điểm đến đầu ra
Mạch ghép kênh hai sang m t có mộ ột ngõ điều khi n là s nên chúng t o ra hai ể ạ trạng thái logic M i tr ng thái t i m t thỗ ạ ạ ộ ời điểm s cho phép mẽ ột ngõ và in nào đó để truyền đến ngõ ra out
3.2.3 Module chuy n t sể ừ ố nhị phân sang s BCD ố
Giải thu t chuyậ ển đổ ừi t nh phân sang BCD ị
Dịch số nh phân sang trái 1 bit ị
Nếu s nh phân trong nhóm số ị ố BCD nào hơn hơn 5 thì cộng nó v i 3 ớLặp l i quá trình ạ
Tạo ra đèn vàng chớp tắt
3.2.5 Module máy trạng thái dành cho đèn giao thông
Máy trạng thái được s dử ụng để thiế ết k các hệ thống số mà trong đó trạng thái của hệ thống có thể chuyển đổi giữa nhi u trề ạng thái được định nghĩa trước Mô hình máy tr ng thái là m t m ch tu n tạ ộ ạ ầ ự đồng bộ, trong đó ngõ ra có thể phụ thuộc vào ngõ
25 vào (mô hình Mealy) ho c ngõ ra ch phặ ỉ ụ thuộc vào các tr ng thái bên trong c a h ạ ủ ệ thống (Mô hình Moore) Ở module này ta có bốn trạng thái:
Trạng thái 1: Ta có biến đếm count = 15, và đèn X1 và D2 sẽ ở ức 1 còn m các đèn lại thì ở mức 0
Trạng thái 2: Ta có biến đếm count = 5, và đèn V1 và D2 sẽ ở mức 1 còn các đèn lại thì ở mức 0
Trạng thái 3: Ta có biến đếm count = 15, và đèn D1 và X2 sẽ ở ức 1 còn m các đèn lại thì ở mức 0
Trạng thái 4: Ta có biến đếm count = 5, và đèn D1 và V2 sẽ ở m c 1 còn ứ các đèn lại thì ở mức 0
Sau khi k t thúc tr ng thái th 4 thì nó s quay l i tr ng thái th 1 ế ạ ứ ẽ ạ ạ ứ
Ban đầu tao khởi tao các ngõ vào cho clk, rs ,s và các ngõ ra X1, V1, D1, X2, V2, D2 (biểu thị cho đèn giao thông xanh đỏ vàng), ONES, TENS, HUNDREDS, ONES0, TENS0, HUNDREDS0 (bi u th cho s hi n thể ị ố ể ị hàng đơn vị, hàng chục, hàng trăm ).
Ta ti p t c kh i t o q[5:0], q1[5:0], q2[5:0], q3[5:0] , clko, counter1[7:0], ế ụ ở ạ counter2[7:0] và khai báo chúng ở kiểu dữ liệu wire
Chức năng các module được gọi trong chương trình chính:
Module traficlight: T o ra tín hiạ ệu đèn giao thông và các biến đếm Module HEX2BCD: Module này chuy n các biể ến đếm ra số hàng đơn vị, hàng chục, hàng trăm để có th hi n th trên LCD ể ệ ị
Module xung: T o ra xung 1KHz cho module ledchoptat ạ
Module ledchoptat: Tạo ra đèn vàng chớ ắt.p t
Module mux2_1: với s = 0 thì đèn giao thông sẽ hoạt động bình thường khi s = 1 lên mức 1 thì đèn sẽ chuyển sang dạng đèn vàng chớ ắt.p t
Tạo m t xung clk b ng khộ ằ ối always, đưa rs lên 1 để đèn giao thông bắt đầu hoạt động và sau #90000000 đưa s lên 1 để thực hiện chế độ đèn vàng nhấp nháy.
KẾT QUẢ
Đèn xanh sáng và biến đếm đếm t 15 v 0 r i t t chuyừ ề ồ ắ ển sang đèn vàng sáng và biến đếm đếm t 5 vừ ề 0 trong khi đó đèn đỏ bên còn l i sáng và biạ ến đếm đếm t ừ
Sau khi s chuy n lên trể ạng thái 1 thì đen giao thông chuyển sang chế độ đèn vàng nh p nháy ấ
KẾ T LU ẬN VÀ HƯỚ NG PHÁT TRIỂN
K t lu n ế ậ
Sau hơn 4 tuần tìm hiểu và thực hiện đề tài “Thiết kế thi công module điều khiển tín hiệu đèn giao thông”, nhóm đã đạt được những kết quả như : Đảm bảo hoạt động m t ộ cách chính xác, liên t c ụ trong thời gian dài Độ tin c y ậ cao Đảm bảo làm việc ổn nh đị
Dễ quan sát cho ngườ đi đười ng
Chi phí nh , ỏ tiết kiệ năng lượng m
Hướng phát triển
Để h ệthống mang tính th c tiự ễn cao hơn, cần cải ti n h ế ệthống những hướng sau:
- Xây d ng các tr m xự ạ ử lý trung tâm để điều khiển đồng bộ các đèn giao thông để giải quyết tốt hơn về ấn đề v ùn tắc giao thông hiện nay
- Ngoài ra, ý th c tham gia giao thông cứ ủa người dân cần được nâng cao để ể hi u rõ hơn về ật an toàn giao thông cũng như chấp hành đúng luậ lu t pháp Việt Nam.