Tải bản đầy đủ (.docx) (32 trang)

Báo cáo bài tập lớn thiết kế thang máy nhóm 10 20172

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1 MB, 32 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
KHOA ĐIỆN TỬ - VIỄN THÔNG

Mục
Lục

***********

BÁO CÁO BÀI TẬP
LỚN
THIẾT KẾ TỔNG HỢP IC SỐ VÀ
HỆ THỐNG SỐ
Đề tài: Thiết kế hệ thống điều khiển
thang máy và mô phỏng trên FPGA
Giảng viên hướng dẫn: PGS. TS. Nguyễn
Đức Minh
Nhóm sinh viên thực hiện: Nhóm 10
1. Đinh Văn Vương 20134674
2. Bùi Công Tâm
20143932
3. Phạm Minh Hoàng 20179556

1

Hà Nội, 6 - 2018


DANH MỤC HÌNH ẢNH.........................................................................................4
DANH MỤC BẢNG BIỂU.......................................................................................5
LỜI NÓI ĐẦU..........................................................................................................6
CHƯƠNG 1. GIỚI THIỆU FPGA VÀ NGÔN NGỮ VERILOG..............................7



1.1. Giới thiệu về FPGA..............................................................................7
1.1.1. Khối logic có thể tái cấu hình.........................................................8
1.1.2. Kết nối có thể lập trình...................................................................8
1.1.3. Khối I/O khả trình...........................................................................8
1.2. Giới thiệu về ngôn ngữ Verilog............................................................8
CHƯƠNG 2. MÔ PHỎNG HOẠT ĐỘNG CỦA THANG MÁY 5 TẦNG.............10

2.1. Đặt vấn đề...........................................................................................10
2.2. Chỉ tiêu kỹ thuật của hệ thống thang máy..........................................10
2.2.1. Yêu cầu đầu vào, đầu ra................................................................10
2.2.2. Mô tả hoạt động của thang máy....................................................10
2.3. Thiết kế kiến trúc................................................................................11
2.3.1. Lưu đồ thuật toán..........................................................................11
2.3.2. Lưu đồ ASM.................................................................................14
2.3.3. Lưu đồ ASMD của thang máy......................................................17
2.4. Cấu trúc hệ thống................................................................................19
2.4.1. Khối control_unit..........................................................................19
2.4.2. Khối data_unit..............................................................................21
2.5. Kế hoạch kiểm tra hệ thống................................................................23
2.5.1. Kịch bản hoạt động.......................................................................23
2.5.2. Phương pháp kiểm tra...................................................................25
2.5.3. Phương pháp tạo đầu vào và đầu ra đúng.....................................25
2.5.4. Giao tiếp mạch chuẩn (chương trình C) với mạch thiết kế...........26
2.6. Triển khai............................................................................................26
2.6.1. Module control_unit và Data_unit................................................26
2.6.2. Module timer_fl_control...............................................................26
2.6.3. Module door_control....................................................................27
2.7. Thực nghiệm.......................................................................................27
2



2.7.1. Mô tả cấu hình phần cứng, phần mềm sử dụng............................27
2.7.2. Mô tả cấu hình phần thực nghiệm................................................27
2.7.3. Các bước tiến hành thực nghiệm..................................................28
2.7.4. Kết quả thực nghiệm.....................................................................28
2.7.5. Nhận xét kết quả thực nghiệm......................................................31
2.8. Kết luận...............................................................................................31
TÀI LIỆU THAM KHẢO.......................................................................................31

DANH MỤC HÌNH ẢN

3


Hình 1. 1: Mô tả một Chip FPGA.............................................................................7
Hình 2. 1: Thuật toán dừng của thang máy..............................................................11
Hình 2. 2: Thuật toán đi lên của thang máy.............................................................12
Hình 2. 3: Thuật toán đi xuống của thang máy........................................................13
Hình 2. 4: Lưu đồ ASM trường hợp đứng yên.........................................................14
Hình 2. 5: Lưu đồ ASM trường hợp đi lên..............................................................15
Hình 2. 6: Lưu đồ ASM trường hợp đi xuống.........................................................16
Hình 2. 7: Lưu đồ ASMD của thang máy................................................................17
Hình 2. 8: Sơ đồ mức RTL module top thiết kế thang máy.....................................28
Hình 2. 9: Sơ đồ mức RTL module control_unit.....................................................29
Hình 2. 10: Sơ đồ RTL module data_unit................................................................30
Hình 2. 11: Kết quả mô phỏng kiểm tra trong modelsim.........................................31

4



DANH MỤC BẢNG BIỂU
Bảng 2. 1: Các tín hiệu trong lưu đồ ASMD............................................................17
Bảng 2. 2: Các tín hiệu của khối control_unit.........................................................19
Bảng 2. 3: Các tín hiệu vào ra của khối data_unit...................................................21
Bảng 2. 4: Một kịch bản kiểm tra hoạt động của thang máy....................................23
Bảng 2. 5: Các tín hiệu vào ra của khối timer_fl_control........................................26
Bảng 2. 6: Các tín hiệu vào ra của khối door_control..............................................27

5


LỜI NÓI ĐẦU
Trong những năm cuối thế kỷ 20 đầu thế kỷ 21, lĩnh vực điện tử, vi xử lý ngày càng
phát triển mạnh mẽ và được ứng dụng sâu rộng vào trong các hệ thống tự động hóa. Điều
này đã làm thay đổi toàn bộ bộ mặt của nền sản xuất công nghiệp truyền thống và tạo ra một
thế hệ máy móc thông minh, linh hoạt. Cùng với sự phát triển của khoa học, thang máy
ngày càng được hoàn thiện hơn, hiệu suất làm việc cao, tiêu thụ ít năng lượng, .... Một trong
các ứng dụng hiệu quả nhất đó chính là các hệ thống thang máy.
Thang máy là một thiết bị chuyên dùng để vận chuyển người, hàng hóa, vật liệu….
Theo phương thẳng đứng hoặc nghiêng một góc nhỏ hơn 150 độ so với phương thẳng đứng
theo một tuyến đường đã định sẵn. Thang máy thường được dùng trong các khách sạn, công
sở, chung cư, bệnh viện, và các đài quan sát, tháp truyền hình, trong các nhà máy, công
xưởng…. Thang máy có lợi thế so với các phương tiện vận chuyển khác là thời gian một
chu kì vận chuyển bé, tần suất vận chuyển lớn, có thể hoạt động liên tục.
Trong thời gian học môn học Thiết kế tổng hợp IC số và hệ thống số, chúng em đã
được giao nghiên cứu đề tài: Thiết kế hệ thống điều khiển thang máy và mô phỏng trên
FPGA. Với đề tài rất thiết thực trong cuộc sống như thế này, chúng em đã có cơ hội áp dụng
những kiến thức đã học để thực hiện hệ thống thang máy. Được sự hướng dẫn tận tình của
thầy giáo PGS.TS Nguyễn Đức Minh, chúng em đã hoàn thành bài tập lớn này.

Chúng em xin chân thành cảm ơn thầy!

6


CHƯƠNG 1. GIỚI THIỆU FPGA VÀ NGÔN NGỮ VERILOG
1.1. Giới thiệu về FPGA
Field Programmable Gate Arrays là một chip logic số có thể lập trình được, tức là bạn
có thể sử dụng chúng để lập trình cho hầu hết các chức năng của bất kỳ một thiết kế số nào.
FPGA được tạo thành từ một mảng các phần tử khả trình nên được gọi là Programmable
Gate Array.
Bộ nhớ tĩnh đầu tiên dựa trên FPGA (thường được gọi là SRAM trên nền FPGA) được
đề xuất bởi Wahlstrom vào năm 1967. Sau đó bản thương mại của FPGA được Xilinx giới
thiệu vào năm 1984. Lúc này nó gồm có một mảng của các khối logic có thể tái cấu hình –
Configurable Logic Blocks (CLBs) và các đầu vào ra – I/O (input/output). Chip FPGA đầu
tiên chứa 64 CLBs và 58 I/Os. Ngày nay, FPGA có thể chứa khoảng 330,000 CLBs và
khoảng 1100 I/Os. Phần lớn các sản phẩm FPGA trên thị trường hiện nay đều dựa trên công
nghệ SRAM với 2 hãng sản xuất lớn nhất là Xilinx và Altera. Ngoài ra còn có các hãng
khác sản xuất FPGA nhưng với mục đích chuyên dụng (Atmel, Actel, Lattice,
SiliconBlue,..).
Kiến trúc cơ bản của FPGA bao gồm 3 thành phần chính: khối logic có thể tái cấu
hình, Configurable Logic Blocks (CLBs) thực hiện các chức năng logic; các kết nối bên
trong, Porgrammable Interconnect có thể lập trình để kết nối các đầu vào và đầu ra của các
CLB và các khối I/O bên trong; các khối I/O cung cấp giao tiếp giữa các ngoại vi và các
được tín hiêu bên trong.
Dưới đây là một chip FPGA điển hình và từng khối của nó.

Hình 1. 1: Mô tả một Chip FPGA
7



Cấu trúc cơ bản của FPGA gồm có 3 khối:
1.1.1.

Khối logic có thể tái cấu hình

Mục đích của việc lập trình khối logic trong FPGA là để cung cấp các tính toán và các
phần tử nhớ cơ bản được sử dụng trong hệ thống số. Một phần tử logic cơ bản gồm một
mạch tổ hợp có thể lập trình, một Flip-Flop hoặc một chốt (latch). Ngoài khối logic cơ bản
đó, nhiều Chip FPGA hiện nay gồm một hỗn hợp các khối khác nhau, một số trong đó chỉ
được dùng cho các chức năng cụ thể, chẳng hạn như các khối bộ nhớ chuyên dụng, các bộ
nhân (multipliers) hoặc các bộ ghép kênh (multiplexers). Cấu hình bộ nhớ được sử dụng
trên tất cả các khối logic để điều khiển các chức năng cụ thể của mỗi phần tử bên trong khối
đó.
1.1.2.

Kết nối có thể lập trình

Các liên kết trong một FPGA dùng để liên kết các khối logic và I/O lại với nhau để tạo
thành một thiết kế. Bao gồm các bộ ghép kênh, các transistor và cổng đệm ba trạng thái.
Nhìn chung, các transistor và bộ ghép kênh được dùng trong một cụm logic để kết nối các
phần tử logic lại với nhau, trong khi đó cả ba đều được dùng cho các cấu trúc định tuyến
bên trong FPGA. Một số FPGA cung cấp nhiều kết nối đơn giản giữa các khối logic, một số
khác cung cấp ít kết nối hơn nên định tuyến phức tạp hơn.
1.1.3.

Khối I/O khả trình

I/O cung cấp giao tiếp giữa các khối logic và kiến trúc định tuyến đến các thành phần
bên ngoài. Một trong những vấn đề quan trọng nhất trong thiết kế kiến trúc I/O là việc lựa

chọn các tiêu chuẩn điện áp cung cấp và điện áp tham chiếu sẽ được hỗ trợ.
Theo thời gian, các kiến trúc FPGA cơ bản đã được phát triển hơn nữa thông qua việc
bổ sung các khối chức năng đặc biệt có thể lập trình, như bộ nhớ trong (Block RAMs), logic
số học (ALU), bộ nhân, DSP-48 và thậm chí là bộ vi xử lý nhúng được thêm vào do nhu cầu
của các nguồn tài nguyên cho một ứng dụng. Kết quả là nhiều FPGA ngày nay có nhiều
nguồn tài nguyên hơn so với các FPGA trước đó.
1.2. Giới thiệu về ngôn ngữ Verilog
Verilog là ngôn ngữ mô tả phần cứng (Hardware Description Language) được sử dụng
trong việc thiết kế các các hệ thống số, các mạch tích hợp... Cùng với ngôn ngữ VHDL,
Verilog là một trong hai ngôn ngữ mô tả phần cứng phổ biến nhất hiện nay.
Verilog cũng có các đặc điểm như tính độc lập về công nghệ, dễ dàng trong thiết kế và
debug, cũng như tính đơn giản so với các thiết kế bằng sơ đồ khối (schematics), đặc biệt là
trong việc thiết kế các hệ thống phức tạp. Verilog lần đầu được giới thiệu vào năm 1984 bởi
công ty Gateway Design Automatic. Verilog không được chuẩn hóa và đều được chỉnh sửa
ở hầu hết các phiên bản sau từ năm 1984 đến năm 1990. Năm 1995 Verilog chính thức được
chuẩn hóa bởi tổ chức IEEE. Nhiều người cho rằng Verilog dễ học và sử dụng hơn VHDL
nhờ cú pháp khá giống với ngôn ngữ C (ngôn ngữ được dạy trong hầu hết các trường đại
học, cao đẳng). Tuy cả hai ngôn ngữ Verilog và VHDL đều được sinh ra tại Mỹ nhưng
Verilog lại được dùng phổ biến hơn tại đây. Verilog được dùng để xây dựng các ứng dụng
trên nền các công nghệ như FPGA, CPLDs…Code Verilog dùng để mô tả các hệ thống số
8


được xây dựng trong các thiết bị lập trình được của các hãng như Xilinx, Altera, hay
Amtel…
Verilog có một số ưu điểm như sau:
- Nền tảng mạnh : chuẩn hóa năm 1995 bởi IEEE, hỗ trợ công nghiệp,
phổ biến cho các nhà ASIC vì dễ học, cho phép mô phỏng và tổng
hợp hiệu quả.
- Tính đa năng: cho phép quá trình thiết kế thực thể thực hiện

trong môi trường thiết kế cả phân tích và kiểm tra. Tuy nhiên
Verilog không thích hợp lắm cho các thiết kế mức hệ thống phức
tạp, đây là trở ngại chính của Verilog.
- Hỗ trợ công nghiệp: phổ biến cho các nhà thiết kế ASIC vì dễ học
, cho phép mô phỏng nhanh và tổng hợp hiệu quả.
- Có khả năng mở rộng IEEE Std 1364 chứa định nghĩa của PLI
Verilog (Programming Language Interface) cho phép mở rộng
khả năng của Verilog. Nó là một tập hợp các bộ định tuyến cho
phép các chức năng bên ngoài truy nhập thông tin chức năng
thiết kế Verilog.

9


CHƯƠNG 2. MÔ PHỎNG HOẠT ĐỘNG CỦA THANG MÁY
5 TẦNG
2.1. Đặt vấn đề
Hệ thống thang máy có ứng dụng trong các tòa nhà cao tầng, các trung tâm thương
mại, siêu thị, … giúp cho con người di chuyển và vận chuyển hàng hóa dễ dàng và nhanh
chóng mà không phải mất nhiều sức lực.
Hiện nay, trên thị trường có các loại thang máy của các hãng như Fujitec, Toshiba …
với các chỉ tiêu kỹ thuật như sau : Dễ sử dụng, thời gian đáp ứng nhanh, di chuyển êm ái, có
thể chuyên trở được trọng lượng lớn, an toàn cho người sử dụng…
Từ các tiêu chí trên, nhóm chúng em đã tham khảo và thiết kế hệ thống thang máy với
các chỉ tiêu kĩ thuật như sau.
2.2. Chỉ tiêu kỹ thuật của hệ thống thang máy
2.2.1.

Yêu cầu đầu vào, đầu ra


Input:
Nút tại các tầng:
Input [5:1] up, down.
Nút trong buông thang máy:
Input keep_close, keep_open
Input [5:1] input_floor.
Output:
Output door; // = 1 mở, = 0 là đóng
Output go_up, go_down; // = 10 đi lên, = 01 đi xuống, 11, 00 dừng- điều khiển đèn.
Led hiển thị hướng đi ở từng tầng:
Output [5:1] led_up, led_down; // đèn led nút bấm ngoài từng tầng.
Output [2:0] ourrent_floor; // điểu khiển đèn led hiển thị số tầng
Output [5:1] led_floor; // đèn led nút bấm floor trong buồng thang.
2.2.2.

Mô tả hoạt động của thang máy

- Bắt đầu: Thang ở tầng 1, chưa có yêu cầu.
- Thang máy đang ở tầng i, đang đi lên. Nếu có yêu cầu ở tầng i (yêu cầu
bên trong hoặc yêu cầu lên) thì mở cửa (theo mục mô tả hoạt động đóng, mở
cửa). Nếu tiếp tục có yêu cầu ở tầng j cao hơn i thì tiếp tục đi lên.
Nếu không còn yêu cầu ở tầng j cao hơn i thì dừng.
- Thang máy đang ở tầng i, đang đi xuống: Nếu có yêu cầu ở tầng i (yêu
cầu bên trong hoặc yêu cầu xuống) thì mở cửa (theo mục mô tả hoạt động đóng,

10


mở cửa). Nếu tiếp tục có yêu cầu ở tầng j thấp hơn i thì tiếp tục đi xuống. Nếu
không còn yêu cầu ở tầng j thấp hơn i thì dừng.

- Thang ở tầng i, đang dừng. Nếu có yêu cầu ở tầng i (yêu cầu lên, hoặc
xuống) thì mở cửa (theo mục mô tả hoạt động đóng, mở cửa). Nếu có yêu cầu ở
tầng j cao hơn i, thì đi lên. Nếu có yêu cầu ở tầng k thấp hơn i, thì đi xuống.
- Hoạt động đóng mở cửa. Khi có yêu cầu mở cửa: mở khi nút keep_open
được bấm. Khi có keep_close thì đóng cửa. Khi hết thời gian mở cửa thì đóng
cửa.
2.3. Thiết kế kiến trúc
2.3.1.

Lưu đồ thuật toán

Hình 2. 1: Thuật toán dừng của thang máy

11


Hình 2. 2: Thuật toán đi lên của thang máy

12


Hình 2. 3: Thuật toán đi xuống của thang máy

13


2.3.2.

Lưu đồ ASM


Hình 2. 4: Lưu đồ ASM trường hợp đứng yên

14


Hình 2. 5: Lưu đồ ASM trường hợp đi lên

15


Hình 2. 6: Lưu đồ ASM trường hợp đi xuống

16


2.3.3.

Lưu đồ ASMD của thang máy

Hình 2. 7: Lưu đồ ASMD của thang máy
Các tín hiệu trong lưu đồ ASMD được thể hiện trong bảng:
Bảng 2. 1: Các tín hiệu trong lưu đồ ASMD
STT

Tín hiệu

Số bit

Tích cực


Hoạt động

1

clk

1

1

Xung đồng hồ của hệ thống

2

rst

1

0

Tín hiệu reset hệ thống

3

btn_up

5

5 nút bấm up bên ngoài mỗi tầng thang
máy


4

btn_down

5

5 nút bấm down bên ngoài mỗi tầng thang
máy

5

req_fl

5

5 nút bấm gọi tầng bên trong thang máy

6

btn_keep_open

1

1

Nút bấm giữ mở cửa thang máy

7


btn_keep_close

1

1

Nút bấm giữ đóng cửa thang máy

17


8

door

1

1

Tín hiệu điều khiển đóng, mở cửa thang
máy: 1 = mở cửa, 0 = đóng cửa

9

go_up

1

1


Tín hiệu báo thang máy đang đi lên

10

go_down

1

1

Tín hiệu báo thang máy đang đi xuống

11

led_up

5

5 đèn tại các nút up bên ngoài thang máy

12

led_down

5

5 đèn tại các nút down bên ngoài thang
máy

13


current_floor

3

Giá trị tầng hiện tại của thang máy

14

led_floor

5

5 đèn led tại các nút gọi tầng bên trong
thang máy

15

Stop_open_control

1

1

Tín hiệu mở cửa thang máy khi đang ở
trạng thái Stop

16

Stop_control


1

1

Tín hiệu dừng thang máy

17

Up_control

1

1

Tín hiệu điều khiển thang máy đi lên

18

Down_control

1

1

Tín hiệu điều khiển thang máy đi xuống

19

Up_close_control


1

1

Tín hiệu đóng cửa thang máy khi đang ở
trạng thái đi xuống

20

Update_up_control

1

1

Tín hiệu tăng số tầng khi thang máy đi lên
qua 1 tầng

21

Up_open_control

1

1

Tín hiệu mở cửa thang máy khi đang đi
lên và có yêu cầu ở tầng hiện tại.


22

Down_close_control

1

1

Tín hiệu đóng cửa thang máy sau khi đang
ở trạng thái Down

23

Update_down_control

1

1

Tín hiệu giảm số tầng hiện tại trong trang
thái Down

24

Down_open_control

1

1


Tín hiệu mở cửa thang máy khi đang đi
xuống và có yêu cầu ở tầng hiện tại

25

req_current

1

1

Tín hiệu thông báo có yêu cầu ở tầng hiện
tại

26

req_floor_higer

1

1

Tín hiệu thông báo có yêu cầu ở tầng cao
hơn ở các nút bấm gọi tầng bên trong
thang máy

1

Tín hiệu thông báo có yêu cầu ở tầng thấp
hơn ở các nút bấm gọi tầng bên trong

thang máy

27

req_floor_lower

1

18


28

req_updown_higer

1

1

Tín hiệu thông báo có yêu cầu ở tầng cao
hơn ở các nút bấm up, down bên ngoài
thang máy

29

req_updown_lower

1

1


Tín hiệu thông báo có yêu cầu ở tầng thấp
hơn ở các nút bấm up, down bên ngoài
thang máy

30

keep_close

1

1

Tín hiệu thông báo có bấm nút keep_close

31

keep_open

1

1

Tín hiệu thông báo có bấm nút keep_open

32

timeout

1


1

Tín hiệu thông báo hết thời gian mở cửa
thang máy

33

req_higher

1

1

Tín hiệu thông báo có yêu cầu ở tầng cao
hơn tầng hiện tại khi thang máy đang
trong trạng thái đi lên

34

req_lower

1

1

Tín hiệu thông báo có yêu cầu ở tầng thấp
hơn tầng hiện tại khi thang máy đang
trong trạng thái đi xuống


35

next_fl

1

1

Tín hiệu thông báo thang máy đã đi qua 1
tầng khi đang đi lên hoặc đi xuống.

2.4. Cấu trúc hệ thống
Hệ thống thang máy được thiết kế với hai khối lớn là control_unit và data_unit, kết nối
với nhau như hình 2.4, nhiệm vụ và các tín hiệu kết nối giữa các khối như sau.
2.4.1.

Khối control_unit

Có nhiệm vụ sử dụng máy trạng thái điều khiển các trạng thái : Stop, Up, Down rồi
đưa ra các tín hiệu điều khiển cho khối Datapath. Các tín hiệu của khối control_unit như
sau:
Bảng 2. 2: Các tín hiệu của khối control_unit
STT

Tín hiệu

Số bit I/O

Tích cực


Hoạt động

1

clk

1

I

1

Xung đồng hồ của hệ thống

2

rst

1

I

0

Tín hiệu reset hệ thống

3

req_current


1

I

1

Tín hiệu thông báo có yêu cầu ở tầng
hiện tại

4

req_floor_higher

1

I

1

Tín hiệu thông báo có yêu cầu ở tầng
cao hơn ở các nút bấm gọi tầng bên
trong thang máy

5

req_floor_lower

1

I


1

Tín hiệu thông báo có yêu cầu ở tầng
thấp hơn ở các nút bấm gọi tầng bên
trong thang máy

19


6

req_updown_higher

1

I

1

Tín hiệu thông báo có yêu cầu ở tầng
cao hơn ở các nút bấm up, down bên
ngoài thang máy

7

req_updown_lower

1


I

1

Tín hiệu thông báo có yêu cầu ở tầng
thấp hơn ở các nút bấm up, down bên
ngoài thang máy

8

keep_close

1

I

1

Tín hiệu bấm nút keep_close

9

keep_open

1

I

1


Tín hiệu bấm nút keep_open

10

timeout

1

I

1

Tín hiệu thông báo hết thời gian mở
cửa thang máy

11

req_higher

1

I

1

Tín hiệu thông báo có yêu cầu ở tầng
cao hơn tầng hiện tại khi thang máy
đang trong trạng thái đi lên

12


req_lower

1

I

1

Tín hiệu thông báo có yêu cầu ở tầng
thấp hơn tầng hiện tại khi thang máy
đang trong trạng thái đi xuống

13

next_fl

1

I

1

Tín hiệu thông báo thang máy đã đi
qua 1 tầng khi đang đi lên hoặc đi
xuống.

14

Stop_open_control


1

O

1

Tín hiệu mở cửa thang máy khi đang ở
trạng thái Stop

15

Stop_control

1

O

1

Tín hiệu dừng thang máy

16

Up_control

1

O


1

Tín hiệu điều khiển thang máy đi lên

17

Down_control

1

O

1

Tín hiệu điều khiển thang máy đi
xuống

18

Up_close_control

1

O

1

Tín hiệu đóng cửa thang máy khi đang
ở trạng thái đi xuống


19

Update_up_control

1

O

1

Tín hiệu tăng số tầng khi thang máy đi
lên qua 1 tầng

20

Up_open_control

1

O

1

Tín hiệu mở cửa thang máy khi đang đi
lên và có yêu cầu ở tầng hiện tại.

21

Down_close_control


1

O

1

Tín hiệu đóng cửa thang máy sau khi
đang ở trạng thái Down

22

Update_down_control

1

O

1

Tín hiệu giảm số tầng hiện tại trong
trang thái Down

23

Down_open_control

1

O


1

Tín hiệu mở cửa thang máy khi đang đi
xuống và có yêu cầu ở tầng hiện tại

2.4.2.

Khối data_unit

Khối data_unit nhận tín hiệu điều khiển từ khối control_unit và xử lý các yêu cầu của
thang máy. Với các tín hiệu vào ra như sau:
20


Bảng 2. 3: Các tín hiệu vào ra của khối data_unit
STT

Tín hiệu

Số bit

I/O

Tích cực

Hoạt động

1

clk


1

I

1

Xung đồng hồ của hệ thống

2

rst

1

I

0

Tín hiệu reset hệ thống

3

btn_up

5

I

5 nút bấm up bên ngoài mỗi tầng

thang máy

4

btn_down

5

I

5 nút bấm down bên ngoài mỗi tầng
thang máy

5

req_fl

5

I

5 nút bấm gọi tầng bên trong thang
máy

6

btn_keep_open

1


I

1

Nút bấm giữ mở cửa thang máy

7

btn_keep_close

1

I

1

Nút bấm giữ đóng cửa thang máy

8

door

1

O

1

Tín hiệu điều khiển đóng, mở cửa
thang máy: 1 = mở cửa, 0 = đóng

cửa

9

go_up

1

O

1

Tín hiệu báo thang máy đang đi lên

10

go_down

1

O

1

Tín hiệu báo thang máy đang đi
xuống

11

led_up


5

O

5 đèn tại các nút up bên ngoài thang
máy

12

led_down

5

O

5 đèn tại các nút down bên ngoài
thang máy

13

current_floor

3

O

Giá trị tầng hiện tại của thang máy

14


led_floor

5

O

5 đèn led tại các nút gọi tầng bên
trong thang máy

15

Stop_open_control

1

I

1

Tín hiệu mở cửa thang máy khi
đang ở trạng thái Stop

16

Stop_control

1

I


1

Tín hiệu dừng thang máy

17

Up_control

1

I

1

Tín hiệu điều khiển thang máy đi
lên

18

Down_control

1

I

1

Tín hiệu điều khiển thang máy đi
xuống


19

Up_close_control

1

I

1

Tín hiệu đóng cửa thang máy khi
đang ở trạng thái đi xuống

20

Update_up_control

1

I

1

Tín hiệu tăng số tầng khi thang máy
đi lên qua 1 tầng

21



21

Up_open_control

1

I

1

Tín hiệu mở cửa thang máy khi
đang đi lên và có yêu cầu ở tầng
hiện tại.

22

Down_close_control

1

I

1

Tín hiệu đóng cửa thang máy sau
khi đang ở trạng thái Down

23

Update_down_contro

l

1

I

1

Tín hiệu giảm số tầng hiện tại trong
trang thái Down

24

Down_open_control

1

I

1

Tín hiệu mở cửa thang máy khi
đang đi xuống và có yêu cầu ở tầng
hiện tại

25

req_current

1


O

1

Tín hiệu thông báo có yêu cầu ở
tầng hiện tại

26

req_floor_higer

1

O

1

Tín hiệu thông báo có yêu cầu ở
tầng cao hơn ở các nút bấm gọi tầng
bên trong thang máy

27

req_floor_lower

1

O


1

Tín hiệu thông báo có yêu cầu ở
tầng thấp hơn ở các nút bấm gọi
tầng bên trong thang máy

28

req_updown_higer

1

O

1

Tín hiệu thông báo có yêu cầu ở
tầng cao hơn ở các nút bấm up,
down bên ngoài thang máy

29

req_updown_lower

1

O

1


Tín hiệu thông báo có yêu cầu ở
tầng thấp hơn ở các nút bấm up,
down bên ngoài thang máy

30

keep_close

1

O

1

Tín hiệu thông báo có bấm nút
keep_close

31

keep_open

1

O

1

Tín hiệu thông báo có bấm nút
keep_open


32

timeout

1

O

1

Tín hiệu thông báo hết thời gian mở
cửa thang máy

33

req_higher

1

O

1

Tín hiệu thông báo có yêu cầu ở
tầng cao hơn tầng hiện tại khi thang
máy đang trong trạng thái đi lên

34

req_lower


1

O

1

Tín hiệu thông báo có yêu cầu ở
tầng thấp hơn tầng hiện tại khi thang
máy đang trong trạng thái đi xuống

35

next_fl

1

O

1

Tín hiệu thông báo thang máy đã đi
qua 1 tầng khi đang đi lên hoặc đi
xuống.

22


2.5. Kế hoạch kiểm tra hệ thống
2.5.1.


Kịch bản hoạt động

Thang máy được kiểm tra theo kịch bản hoạt động được lên sẵn, dưới đây là một kịch
bản hoạt động của thang máy.
Bảng 2. 4: Một kịch bản kiểm tra hoạt động của thang máy
TT

Chức năng
kiểm tra

Đầu vào
rst

1

Reset thang
máy, thang máy
trở về tầng 1

0
0

btn_down [4:0]

5'b0

go_down

0


req_fl [4:0]

5'b0

led_up
[4:0]

5'b0

btn_keep_open

0

led_down
[4:0]

5'b0

btn_keep_close

0

led_floor
[4:0]

5'b0

cur_fl [2:0]


3'd1

1
5'b00001

door

1

go_up

0
0

btn_down [4:0]

5'b0

go_down

req_fl [4:0]

5'b0

led_up
[4:0]

0

led_down

[4:0]

5'b0

btn_keep_close

0

led_floor
[4:0]

5'b0

cur_fl [2:0]

3'd1

btn_down [4:0]
req_fl [4:0]

1
5'b00000
5'b0
5'b10000

door

0

go_up


1

go_down

0

led_up
[4:0]

5'b0

btn_keep_open

0

led_down
[4:0]

5'b0

btn_keep_close

0

led_floor
[4:0]

5'b10000


cur_fl [2:0]
4

Khi thang máy
đang đi lên đến
tầng 2 thì có
người ấn nút

5'b00001

btn_keep_open

btn_up [4:0]

3

door
go_up

rst
Sau khi thang
máy mở cửa,
người dùng đi
vào bên trong
thang máy và
bấm nút gọi tầng
5, thang máy sẽ
đóng cửa và đi
lên tầng 5


Giá trị đầu ra

5'b0

btn_up [4:0]

2

0

Đầu ra

btn_up [4:0]

rst

Sau khi reset, có
người ấn nút
"up" tại tầng 1,
thang máy sẽ
mở cửa

Giá trị đầu
vào

rst
btn_up [4:0]
btn_down [4:0]

1

5'b00100
5'b0

tăng 1 đơn vị khi thang
máy đi qua 1 tầng

door

1

go_up

0

go_down

0

23


req_fl [4:0]

"up" ở tầng 3,
thang máy sẽ
dừng và mở cửa
ở tầng 3

5


led_up
[4:0]

0

led_down
[4:0]

5'b0

btn_keep_close

0

led_floor
[4:0]

5'b10000

cur_fl [2:0]
1

0

btn_up [4:0]

5'b0

go_up


1

btn_down [4:0]

5'b0

go_down

0

req_fl [4:0]

5'b11000

led_up
[4:0]

5'b0

btn_keep_open

0

led_down
[4:0]

5'b0

btn_keep_close


0

led_floor
[4:0]

5'b11000

rst

6

1

1

btn_up [4:0]

5'b0

go_up

0

btn_down [4:0]

5'b0

go_down

0


req_fl [4:0]

5'b10000

led_up
[4:0]

5'b0

btn_keep_open

0

led_down
[4:0]

5'b0

btn_keep_close

0

led_floor
[4:0]

5'b10000

rst


7

1

Thang máy đi
đến tầng 5 thì
dừng lại và mở
cửa.

3'd4

door

0

btn_up [4:0]

5'b0

go_up

1

btn_down [4:0]

5'b0

go_down

0


req_fl [4:0]

5'b10000

led_up
[4:0]

5'b0

btn_keep_open

0

led_down
[4:0]

5'b0

btn_keep_close

1

led_floor
[4:0]

5'b10000

cur_fl [2:0]
8


tăng 1 đơn vị khi thang
máy đi qua 1 tầng

door

cur_fl [2:0]

Sau khi người
yêu cầu tầng 4
đi ra, người yêu
cầu tầng 5 ấn
nút
"keep_close",
thang máy đóng
cửa và đi tới
tầng 5

3'd3

door

cur_fl [2:0]

Thang máy đi
đến tầng 4 thì
dừng lại và mở
cửa cho người
gọi tầng 4 đi ra.


5'b00100

btn_keep_open

rst

Người ở tầng 3
đi vào thang
máy và ấn nút
gọi tầng 4, thang
máy đóng cửa
và đi đến tầng 4

5'b10000

rst

1

tăng 1 đơn vị khi thang
máy đi qua 1 tầng

door

1

btn_up [4:0]

5'b0


go_up

0

btn_down [4:0]

5'b0

go_down

0

24


req_fl [4:0]

9

2.5.2.

led_up
[4:0]

5'b0

btn_keep_open

0


led_down
[4:0]

5'b0

btn_keep_close

0

led_floor
[4:0]

5'b0

cur_fl [2:0]

3'd5

rst

Sau một thời gian
không có yêu cầu
tiếp theo, thang
máy đóng cửa.

5'b0

1

door


0

btn_up [4:0]

5'b0

go_up

0

btn_down [4:0]

5'b0

go_down

0

req_fl [4:0]

5'b0

led_up [4:0]

5'b0

btn_keep_open

0


led_down
[4:0]

5'b0

btn_keep_close

0

led_floor
[4:0]

5'b0

cur_fl [2:0]

3'd5

Phương pháp kiểm tra

Mô phỏng bằng Modelsim : Sử dụng hai phương pháp kiểm tra:
- Directed test : Kiểm tra với các thông số đầu vào được đưa vào
trực tiếp.
- Ramdom test : Kiểm tra với các thông số đầu vào được đưa vào
ngẫu nhiên.
- Chạy trên FPGA : Sử dụng hai phương pháp kiểm tra:
- Manual test : Kiểm tra bằng tay và quan sát kết quả trên kit khi
thực hiện các thao tác trên kit DE2.
- Directed test

2.5.3.

Phương pháp tạo đầu vào và đầu ra đúng

Để tạo đầu vào và đầu ra đúng : chúng em viết một chương trình C chạy thuật toán
của thang máy, sau đó lưu các thông số mô phỏng ra một tệp với định dạng của tệp được
thống nhất giữa chương trình C và testbench trong modelsim.

25


×