Mô hình kiểm tra hoạt động (Testbench)

Một phần của tài liệu (LUẬN văn THẠC sĩ) thiết kế bộ điều khiển mờ lai điều khiển tốc độ động cơ một chiều ứng dụng công nghệ FPGA (Trang 70)

6. Bố cục của luận văn

4.2.3. Mô hình kiểm tra hoạt động (Testbench)

Một trong các nhiệm vụ rất quan trọng là kiểm tra bản mô tả thiết kế. Kiểm tra một mô hình VHDL được thực hiện bằng cách quan sát hoạt động của nó trong khi mô phỏng và các giá trị thu được có thể đem so sánh với yêu cầu thiết kế. Môi trường kiểm tra có thể hiểu như một mạch kiểm tra ảo. Môi trường kiểm tra sinh ra các tác động lên bản thiết kế và cho phép quan sát hoặc so sánh kết quả hoạt động của bản mô tả thiết kế. Thông thường thì các bản mô tả đều cung cấp chương trình thử. Nhưng ta cũng có thể tự xây dựng chương trình thử (testbench). Mạch thử thực chất là sự kết hợp của tổng hợp nhiều thành phần. Nó gồm ba thành phần. Mô hình VHDL đã qua kiểm tra, nguồn dữ liệu và bộ quan sát. Hoạt động của mô hình VHDL được kích thích bởi các nguồn dữ liệu và kiểm tra tính đúng đắn thông qua bộ quan sát.

Trong đó:

DUT: (device under test) mô hình VHDL cần kiểm tra Observer: khối quan sát kết quả

Data source: nguồn dữ liệu (khối tạo ra các tín hiệu kích thích)

4.2.4. Các đối tượng và các kiểu dữ liệu trong VHDL

Đối tượng trong VHDL

Trong ngôn ngữ VHDL gồm có 3 đối tượng là:

Tín hiệu – signal

Biến – variable

Hằng - constant

Mỗi đối tượng được khai báo dựa vào từ khóa tương ứng và chúng có mục đích sử dụng như sau:

Tín hiệu – Signal:

Là đối tượng để biểu diễn đường kết nối các giữa các cổng vào/ra của thực thể, giữa các cổng vào/ra của các khối thành phần cứng xuất hiện trong thực thể… Chúng

là phương tiện truyền dữ liệu động giữa các thành phần của thực thể.

Tín hiệu có tính toàn cục rất cao, chúng có thể được khai báo trong package (tín hiệu toàn cục, được sử dụng bởi một số thực thể), khai báo trong thực thể - Entity (tín hiệu nội bộ dùng trong thực thể, có thể được tham chiếu bởi bất kỳ kiến trúc nào của thực thể đó), khai báo trong kiến trúc – Architecture (tín hiệu nội bộ dùng trong kiến trúc, có thể được sử dụng trong bất cứ cấu trúc lệnh nào trong kiến trúc). Các tín hiệu có thể được sử dụng nhưng không được khai báo trong tiến trình – process, trong chương trình con. Vì tiến trình và chương trình con là thành phần cơ sở của mô hình và chúng được coi như các hộp đen. Cú pháp khai báo tín hiệu như sau: Signal tên tín_hiệu {tên_tín_hiệu}:kiểu_dữ_liệu [:=giá_trị_khởi_tạo]; Ví dụ: Signal a,b,c: Bit:=‟1‟;

Signal y, reg: std_logic_vector (3 downto 0):=”0000”;

Biến – Variable:

Là đối tượng cục bộ được sử dụng để chứa các kết quả trung gian. Biến chỉ được khai báo và sử dụng trong process và trong chương trình con. Cú pháp khai báo của biến cũng tương tự như khai báo tín hiệu:

Variable tên_biến {,tên_biến}: kiểu_dữ_liệu [:=giá_trị_khởi_tạo]; Ví dụ: variable x: Bit:=‟1‟;

variable Q: std_logic_vector (3 downto 0);

Nếu không được khởi tạo giá trị ban đầu biến sẽ nhận giá trị khởi tạo ban đầu là giá trị thấp nhất trong các giá trị thuộc miền xác định của kiểu dữ liệu. Tín hiệu cũng có thể chứa dữ liệu nhưng chúng lại không được sử dụng vì những lý do sau:

Việc sử dụng biến hiệu quả hơn vì giá trị của biến được gán ngay lập tức trong process khi tín hiện chỉ được lập kế hoạch để thực hiện và chỉ được cập nhật toàn bộ sau khi kết thúc process. Biến chiếm ít bộ nhớ hơn trong khi tín hiệu cần nhiều thông tin để có thể lập kế hoạch thực hiện cũng như để chứa các thuộc tính của tín hiệu. Sử dụng tín hiệu yêu cầu có lệnh wait để thực hiện đồng bộ phép gán tín hiệu với phép lặp thực hiện theo cách sử dụng quen thuộc.

Là đối tượng hằng được gán cho các giá trị cụ thể của một kiểu khi được tạo ra và không đổi trong toàn bộ quá trình thực hiện. Hằng cũng có tính toàn cục giống như tín hiệu và có thể được khai báo trong package, entity, architecture, proceduce, process… Cú pháp khai báo hằng:

constant tên_hằng {,tên_hằng} : kiểu_dữ_liệu := giá_trị_khởi_tạo; Ví dụ: constant GND: std_logic:=‟0‟;

constant PI: real:=3.1414;

Tóm lại:

Các đối tượng trong VHDL có mục đích sử dụng, phạm vi sử dụng khác nhau, nhưng chúng có cú pháp khai báo chung như sau:

Đối_tượng tên_đối_tượng: kiểu_dữ_liệu {:=giá_trị_khởi_tạo}

Các đối tượng khi khai báo phải được xác định kiểu dữ liệu tương ứng. VDHL định nghĩa nhiều kiểu dữ liệu khác nhau để phù hợp với việc mô tả, thiết kế, mô phỏng các hệ thống số khác nhau trong thực tế.

Kiểu dữ liệu trong VHDL

Code VHDL có 4 dạng dữ liệu:

Vô hướng: gồm các dữ liệu có giá trị đơn như bit, boolean, integer, real, physical, character, std_logic và std_ulogic, enumerated (kiểu liệt kê), ...Kiểu ghép: Các dữ liệu dưới dạng một nhóm các thành phần như mảng, bảng ghi (record). Bit_logic_vector, std_logic_vector và String đều là những dạng dữ liệu ghép đã được định nghĩa sẵn. 2-DArrays: các dữ liệu có dạng mảng 2 chiều, được tạo nên từ 1 mảng của một mảng 1 chiều (hay một bản ghi). VHDL Subtypes: dạng dữ liệu con do người dùng tự định nghĩa dựa trên những dạng có sẵn.

Các kiểu dữ liệu đã được định nghĩa trong gói Standard chứa trong thư viện chuẩn Standard Library của VHDL là: bit, boolean, integer, real, physical, character, std_logic and std_ulogic, Bit_logic_vector, std_logic_vector và String và một số kiểu dữ liệu con. Cú pháp chung định nghĩa kiểu dữ liệu như sau:

Type Tên_kiểu is giới_hạn_giá_trị_của_kiểu

4.2.5. Giới thiệu Broad DE2 - 115

4.2.5.1. Tổng quan về Board Altera DE2-115

Board Altera DE2 là board mạch phục vụ cho việc nghiên cứu và phát triển trong các lĩnh vực luận lý số học (digital logic), tổ chức máy tính (computer organization) và FPGA.DE2-115 sử dụng công nghệ mới nhất về cả phần cứng lẫn công cụ CAD (computer Aid Design) để giúp không chỉ sinh viên nghiên cứu nhiều ứng dụng khác nhau. Board cung cấp nhiều đặc điểm phù hợp cho công tác nghiên cứu cũng như phát triển những Hệ thống số đơn giản lẫn phức tạp trong phòng thực hành.

Đặc điểm board Altera DE2-115

Hình 4.5: Board DE2-115

Nguyên tắc hoạt động của các linh kiện trên board

- Nút nhấn (Button)

Hình 4.6: Sơ đồ kết nối giữa push button và Cyclone IV

cao (logic 1) khi không nhấn, cung cấp mức logic thấp (logic 0) khi được nhấn.

-Công tắc (Switch)

Kit DE2-115 hình 4.7 cung cấp thêm 18 công tắc hoạt động như những công tắc điện. Khi công tắc ở vị trí thấp (gần nhất với cạnh của board) thì mỗi công tắc sẽ cung cấp một mức logic thấp (logic 0) và cung cấp mức logic cao (logic 1) khi công tắc ở vị trí cao.

Hình 4.7: Kết nối giữa các switch và Cyclone IV

Ngoài ra board có 18 LED đỏ và 9 LED xanh cho người dùng sử dụng, mỗi LED được kết nối trực tiếp với một chân của Cyclone IV E FPGA hình 4.8. Để điều khiển LED thì chân của FPGA tương ứng với LED sẽ đưa ra mức logic cao để bật LED sáng và đưa ra mức logic thấp để tắt LED.

Hình 4.8: Kết nối giữa LED và Cyclone IV

LED 7 đoạn

Có 8 LED 7 đoạn trên board, mỗi LED 7 đoạn được kết nối như sơ đồ hình 4.9. Các LED 7 đoạn đều là loại anode chung, khi áp dụng mức logic thấp cho một đoạn thì đoạn đó sáng lên, ngược lại áp dụng mức logic cao sẽ làm đoạn bị tắt. Mỗi một đoạn trong một LED 7 đoạn là độc lập với nhau bởi các chỉ số từ 0 đến 6.

Hình 4.9: LED 7 đoạn nối với Cyclone IV

PS/2 Serial Port

Board Altera DE2-115 bao gồm một chuẩn giao tiếp PS/2 và một cổng kết nối với chuột hoặc bàn phím PS/2 (Hình 4.10). Chúng ta có thể sử dụng bàn phím và con

chuột cùng một lúc bằng cách sử dụng cáp mở rộng PS/2. (Hình 4.11)

Hình 4.10: Sơ đồ kết nối PS/2 trên board DE2-115

Hình 4.11: Cáp mở rộng PS/2Y

Module VGA

Board DE-115 bao gồm một chuẩn kết nối 15-pin D-SUB cho đầu ra VGA. Các tín hiệu đồng bộ hóa VGA được cung cấp trực tiếp từ Cyclone IV E FPGA và các thiết bị Analog Devices ADV7123 triple 10 – bit high speed video DAC (hệ thống thiết kế sử dụng tối đa 8 bit) được sử dụng dể tạo ra các tín hiệu dữ liệu tương tự (đỏ, xanh lá cây và màu xanh). Nó có thể hỗ trợ cho chuẩn SXGA (1280x1024) với băng thông 100MHz.

Hình 4. 12: Sơ đồ kết nối VGA trên board DE2-115

SRAM/SDRAM/FLASH/EEPROM/SD card

- SRAM: Board Altera DE-115 sử dụng bộ nhớ 2MB SRAM với độ rộng dữ liệu 16- bit, được sử dụng với tần số hoạt động lớn nhất khoảng 125 MHz trong điều kiện nguồn nuôi 3,3V tiêu chuẩn, Bộ nhớ SRAM được kết nối với chip Cyclone IV FPGA.

Hình 4.13: Sơ đồ kết nối SRAM trên board DE2-115

-SDRAM

Board sử dụng 128MB SDRAM, bao gồm 2 chip SDRAM 64 MB. Mỗi một chip SDRAM giao tiếp với chip FPGA thông qua đường dữ liệu 16 bit riêng biệt và chia sẽ chung đường điều khiển và địa chỉ.

Hình 4. 14: Sơ đồ kết nối SDRAM trên board5 DE2-11

- FLASH

Hình 4.15: Sơ đồ kết nối FLASH trên board DE2-115

Bộ nhớ Flash trên board có dung lượng 8MB sử dụng bus dữ liệu 8-bit và sử dụng chuẩn tín hiệu 3.3 V CMOS. Bởi vì bộ nhớ Flash là bộ nhớ không bay hơi, nên nó thường được sử dụng để lưu trữ dữ liệu chương trình, hình ảnh âm thanh, …

- EEPROM

Hình 4.16: Sơ đồ kết nối EEPROM trên board DE2-115

Board Altera DE2-115 có 32 kb EEPROM với lợi ích của bus 12C, người dùng có thể sử dụng nó như là nơi lưu trữ dữ liệu người dùng như là thông tin phiên bản, địa chỉ MAC hoặc các mô tả khác. Địa chỉ cấu hình cho EEPROM là 0xA0 cho viết dữ liệu và 0xA1 để đọc dữ liệu.

- SD Car

Hình 4.17: Sơ đồ kết nối SD card trên board DE2-115

hoặc thẻ CF đễ lưu trữ dữ liệu. Board Altera DE2-115 cung cấp phần cứng cần thiết cho việc giao tiếp với thẻ SD. Người dùng có thể tùy chỉnh điều khiển việc truy cập thẻ SD trong chế độ SPI và chế độ SD card 4-bit hoặc 1-bit mode.

4.2.5.2. Giới thiệu về phần mềm Quartus II 11.0

a./ Tóm tắt các thiết kế và hiện thực ứng dụng với Quartus II 11.0

Các bước cần thiết để thiết kế và hiện thực ứng dụng trên Board AlteraDE2 - 115 và phần mềm Quartus II 11.0 được mô tả trong tóm tắt bên dưới. Các bước theo thứ tự bao gồm:

- Khởi tạo project: Tạo mới project, đặc tả cấu hình của project như: thư mục gốc, ngôn ngữ mô tả phần cứng Verilog HDL, loại chip FPGA sử dụng, các công cụ hỗ trợ.

- Viết module đặc tả verilog HDL: Đặc tả thiết kế sử dụng ngôn ngữ Verilog HDL.

- Gán tín hiệu IN, OUT: Gán chân tín hiệu IN, OUT của module vừa thiết kế với chân tín hiệu trên chip FPGA.

- Tổng hợp mạch: Tổng hợp thiết kế, ánh xạ sang các phần tử phần cứng (Logic cell, Block memory) đi dây mạch trên chip FPGA. Kết thúc quá trình này sẽ tạo ra file cấu hình (.sof, .pof).

- Cấu hình chip FPGA: Nạp file cấu hình đã tổng hợp ở bước trên lên chip FPGA. - Kiểm tra chức năng trên board: Sử dụng các thiết bị trực quan (công tắc, nút nhấn, LED...) trên board để kiểm tra thiết kế.

b. Giới thiệu phần mềm QUARTUS II

Quartus II là một phần mềm chuyên dụng cho lập trình mô tả phần cứng trên các sản phẩm FPGA của Altera, với giao diện đơn giản và dễ sử dụng giúp người dùng có thể lập trình, kiểm tra lỗi dễ dàng, kèm theo các công cụ hỗ trợ để người sử dụng dễ dàng định hình về hệ thống đưa ra các giải pháp tối ưu cho hệ thống của mình. Kèm theo đó là các công cụ mô phỏng Model-Sim giúp người dùng có thể kiểm tra các khối tách biệt, rất tiện lợi cho việc thiết kế các hệ thống lớn. Altera cũng cung cấp một số các IP core hỗ trợ việc lập trình mô tả phần cứng nhanh và dễ dàng hơn. Các ngôn ngữ mô tả phần cứng được hỗ trợ trong phần mềm Quartus II gồm có VHDL và Verilog HDL, đồng thời người dùng cũng có thể tạo các file như State Machine File, Block Diagram/ Schematic File, Tcl Script File, Memory File, Text File… khiến việc thiết kế trở nên dễ dàng và tiện lợi hơn. Hình 4.19 thể hiện một giao diện của phần mềm Quartus II.

Hình 4.19: Giao diện thiết kế của phần mềm Quartus II

Quartus II cung cấp môi trường thiết kế toàn diện cho các thiết kế SOPC (hệ thống trên 1 chip khả trình - system on a programmable chip). Đây là phần mềm đóng gói tích hợp đầy đủ phục vụ cho thiết kế logic với các linh kiện logic khả trình PLD, FPGA của Altera, gồm các dòng APEX, Cyclone, FLEX, MAX, Stratix...Quartus II cung cấp các khả năng thiết kế sau:

- Môi trường thiết kế gồm các bản vẽ, sơ đồ khối, công cụ soạn thảo các ngôn ngữ: AHDL, VHDL, và Verilog HDL.

- Thiết kế LogicLock.

- Là công cụ mạnh để tổng họp logic.

- Khả năng mô phỏng chức năng và thời gian. - Phân tích thời gian.

- Cho phép xuất, tạo và kết nối các file nguồn để tạo ra các file chương trình. - Tự động định vị lỗi.

- Khả năng lập trình và nhận diện linh kiện.

- Phần mềm Ọuartus II sử dụng bộ tích hợp NativeLink® với các công cụ thiết kế cung cấp việc truyền thông tin liền mạch giữa Quartus với các công cụ thiết kế phần cứng EDA khác.

- Quartus II cũng có thể đọc các file mạch (netlist) EDIF chuẩn, VHDL và Verilog HDL cũng như tạo ra các file netlist này.

- Quartus II có môi trường thiết kế đồ họa giúp nhà thiết kế dễ dàng viết mã, biên dịch, soát lỗi, mô phỏng...

Với Quartus có thế kết hợp nhiều kiểu file trong 1 dự án thiết kế phân cấp. Có thể dùng bộ công cụ tạo sơ đồ khối (Quartus Block Editor) để tạo ra sơ đồ khối mô tả thiết kế ở mức cao, sau đó dùng các sơ đồ khối khác, các bản vẽ như: AHDL Text Design Files (.tdf). EDIF Input Files (.edfh VHDL Design Files (.vhd). and Verilog HDL Design Files đế tạo ra thành phần thiết kế mức thấp.

Quartus II cho phép làm việc với nhiều file ở cùng thời điểm, soạn thảo file thiết kế trong khi vấn có thế biên dịch hay chạy mô phỏng các dự án khác. Công cụ biên dịch Quartus II nằm ở trung tâm hệ thống, cung cấp quy trình thiết kế mạnh cho phép tùy biến đế đạt được thiết kế tối ưu trong dự án. Công cụ định vị lỗi tự động và các bàn tin cảnh báo khiến việc phát hiện và sửa lỗi trở nên đơn giản hơn.

4.3. Ứng dụng công nghệ FPGA để điều chỉnh tốc độ động cơ một chiều

Trong trong phần này, phương pháp thiết kế SoPC cho hệ thống điều khiển động cơ một chiều được trình bày. Trình tạo Altera System-on-a-Programizable-Chip (SoPC) cung cấp khả năng xác định nhanh chóng và tạo ra các kiến trúc SoPC phức tạp. Và một giao diện điều khiển GUI đơn giản cho phép lựa chọn thành phần, tùy chỉnh và tích hợp. Hơn nữa, SoPC cho phép tích hợp IP bộ xử lý nhúng (bộ xử lý

Nios II) và IP ứng dụng người dùng vào một đồ họa. Một IC được thiết kế để điều khiển tốc độ động cơ 1 chiều dựa trên môi trường SoPC được trình bày dưới đây.

Cấu trúc bên trong của IC điều chỉnh tốc độ động cơ một chiều ứng dụng công nghệ FPGA như Hình 4.20.

Hình 4.20: Cấu trúc của IC điều chỉnh tốc độ động cơ một chiều

Trong luận văn tôi sử dụng board Altera DE2 EP2C35 và bộ xử lý nhúng Nios II được nhúng trong FPGA để xây dựng môi trường SoPC. IC điều khiển chuyển động bao gồm IP bộ xử lý nhúng Nios II và IP điều khiển tốc độ, được thiết kế trong môi trường SoPC. IP điều khiển tốc độ được triển khai bởi phần cứng được sử dụng

Một phần của tài liệu (LUẬN văn THẠC sĩ) thiết kế bộ điều khiển mờ lai điều khiển tốc độ động cơ một chiều ứng dụng công nghệ FPGA (Trang 70)

Tải bản đầy đủ (PDF)

(101 trang)