1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo thiết kế hệ thống và vi mạch tích hợp đề tài module điều khiển đèn giao thông

36 0 0

Đ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

Nội dung

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

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM K Ỹ THUẬT TP H CHÍ MINH

KHOA ĐÀO ĐẠO CHẤT LƯỢNG CAO

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM K Ỹ THUẬT TP H CHÍ MINH

KHOA ĐÀO ĐẠO CHẤT LƯỢNG CAO

Trang 4

BẢNG PHÂN CÔNG

VÀ ĐÁNH GIÁ CÁC CÔNG VIỆC TỪNG THÀNH VIÊN

STT Họ và tên MSSV Nhiệm v Đánh giá

1 Diệp B o Ti n ả ế 18119123 - m code mô ph ng Tì ỏ

3 Nguyễn Hoàng Quân 20119272 - Tìm hi u vể ề cơ sở lý thuy t ế

- Tìm tài li u tham kh o ệ ả Hoàn thành t t ố 4 Ngô Qu c Thái ố 20119280 - Tìm hi u vể ề chương 1 và

chương 5 Hoàn thành t t ố

Trang 5

2.1.6 Mô hình structural và procedual 12

2.1.7 Mô hình m t s thành phộ ố ần logic cơ bả 12 n 2.1.8 Tối ưu hóa mô hình 12

2.2 Quy trình thi t k hế ế ệ thống 14

2.2.1 Quy trình thi t k m t ASIC ế ế ộ 14

2.2.1.1 D i c ng ả ổ 14

2.2.1.2 Cell chu n ẩ 15

Trang 6

2.2.2 Quy trình thi t k d a trên FPGA ế ế ự 16

3.2.1 Module chia xung 19

3.2.2 Module Mux 2 sang 1 20

3.2.3 Module chuy n t sể ừ ố nhị phân sang s ố BCD 21

Trang 7

1

CHƯƠNG 1: TỔNG QUAN

1.1 Đặ ấ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 ả ế ạ

1.2 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 n n ắ và tai ạ 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

Trang 8

" 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 hi u tín ệ đế đ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 ụ trong thờ t c i gian dài - Độ tin c y ậ cao

- Đả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

1.3 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

1.4 B cố ục

Chương 1: Giới thiệu

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

Chương 3: Thiết k hế ệ 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.

Trang 9

3 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

1.5 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.

Trang 10

CHƯƠNG 2 CƠ SỞ: LÝ THUYẾT

2.1 Ngôn ng l p trình Verilog ữ ậ

2.1.1 Gi i thi u v Verilog ớ ệ ề

2.1.1.1 Khái quát

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 ờ ế ế

Trang 11

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 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

2.1.2.1 Ki u dữ liệu Net

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

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

Trang 12

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

2.1.2.3 Thông s

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

Ví dụ:

Parameter A = 4’b 1011, B = 4’b 1000 ;

Parameter Stop = 0, Slow = 1, Medium = 2, Fast = 3;

2.1.2.4 S nguyên

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

Ví dụ: integer N;

2.1.2.5 T p giá tr ậ ị

Các đối tượng dữ liệu wire và dữ liệu reg có thể có những giá trị sau : 0 logic 0 hoặc sai

1 logic 1 hoặc đúng 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

Trang 13

7 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 khai báo biến

- 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 khối hành vi

- Task hoặc function

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

2.1.4.1 Toán t

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

Trang 14

Nếu bất kì bit nào không xác định thì kết quả ra là không xác định

{,} : ghép thanh ghi hoặc dây << : dịch trái thanh ghi >> : dịch phải thanh ghi ?: : điều kiện

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);

Trang 15

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:

Ngoài ra còn có các vòng lặp for, while và repeat Tuy nhiên chúng rất hiếm khi sử dụng trong việc mô tả các module nên bài viết này sẽ không đề cập đến

Ví dụ: Một module 3 trạng thái dùng always và cấu trúc if else, nếu ngõ Con là 1 thì ngõ ra bằng ngõ vào, nếu Con là 0 thì ngõ ra sẽ ở trạng thái tổng trở cao

module tristate(In, Con, Out); input In, Con;

Trang 16

output A_GT_B, A_EQ_B, A_LT_B; reg A_GT_B, A_EQ_B, A_LT_B;

Toán tử gán dùng để gán kết quả trả về của 1 biểu thức(hàm logic)

Phép gán đồng thời: phép gán này chỉ dùng để gán giá trị ở bên ngoài các block Syntax:

assign signal1 = signal2; ví dụ:

assign a = b & c;

Phép gán tuần tự chỉ dùng để gán giá trị bên trong các block Có 2 loại phép gán non-blocking assignment " <= " và blocking assignment "="

Trang 17

11

Blocking được xem xét giống như phép gán trong ngôn ngữ C Tín hiệu sẽ được gán giá trị ngay lập tức và giá trị mới này sẽ được sử dụng làm giá trị cho tín hiệu đó cho lệnh tiếp theo phía dưới

Non-Blocking được xem xét giống như phép gán đồng thời các lệnh gán non-blocking trong 1 block sẽ được gán đồng thời sau khoản thời gian t sau khi các lệnh trong block đươc thực hiện Tín hiệu sẽ được gán giá trị sau khoản thời gian t Giá trị mới này sẽ không sử dụng làm giá trị cho tín hiệu đó, tín hiệu vẫn lấy giá trị cũ sử dụng cho lệnh tiếp theo phía dưới Giá trị mới sẽ được sữ dụng cho lần thực hiện block

Đề nghị sử dụng nonblocking assignment trong always block dùng để mô tả hệ tuần tự và sử dụng blocking assignment trong always block dùng để mô tả hệ tổ hợp.

Always block là cấu trúc cơ sở trong mô hình mức RTL Các always block được xem như là các module thực thi đồng thời

Always block có thể được sử dụng để tổng hợp ra các bộ chốt (latch), các flip-flop hoặc hệ tổ hợp

Khối always được gọi thực thi các lệnh bên trong block bởi các sự kiện cảm nhận về mức logic, cạnh lên(posedge), cạnh xuống(negedge) của 1 hoặc nhiều tín hiệu ( các tín hiệu cách nhau bằng từ khóa or )

Trang 18

always @( tất cả các tín hiệu input của hệ tổ hợp ở trong list sự kiện mức logic) begin

… end

Đề nghị sử dụng always block để mô tả thiết kế hệ tuần tự như sau: always @(posedge clk or negedge rst_)

2.1.6 Mô hình structural và procedual

Các phát biểu thủ tục trong Verilog được sử dụng để mô tả thiết kế ở mức trừu tượng cao (algorithmic level, RTL level)

Các phát biểu này cung cấp các cách thức cho việc thực thi các thiết kế phức tạp Tuy nhiên với sự thay đổi nhỏ trong cách lập trình mô tả sẽ gây ra sự thay đổi lớn về mạch phần cứng được sinh ra Các phát biểu thủ tục chỉ được sử dụng bên trong các thủ tục (always, function …)

2.1.7 Mô hình m t s thành phộ ố ần logic cơ bản

Các giá trị ngõ ra chỉ phụ thuộc vào giá trị hiện thời của ngõ vào nên khi ngỏ vào thay đổi ngỏ ra sẽ thay đổi theo

Để mô tả sự phụ thuộc vào giá trị ngõ vào của ngõ ra Trong verilog sữ dụng lệnh gán đồng thời

Input Hệ t h p ổ ợ Output

Ngày đăng: 16/04/2024, 16:28

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w