Hướng Dẫn Sử Dụng Phần Mềm Quartus Ii

Thảo luận trong 'Tổng quan về Vi Điện Tử'

Đang xem chủ đề này ( Thành viên: 0, Khách: 0)

  1. sgesvn

    sgesvn Moderator Staff Member

    Tham gia ngày:
    24/7/12
    Bài viết:
    2,236
    Đã được thích:
    3,076
    Điểm thành tích:
    113
    Giới tính:
    Nam
    1 Giới thiệu phần mềm Quartus II.
    Quartus II là công cụ phần mềm phát triển của hãng Altera, 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 của Altera, gồm các dòng APEX, Cyclone, FLEX, MAX, Stratix... Quartus cung cấp các khả năng thiết kế logic 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.
    ØPhân tích logic nhúng với công cụ phân tích SignalTap@ II.
    Ø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 Quartus 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 (.edf), VHDL Design Files (.vhd), and Verilog HDL Design Files (.v) để 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.
    Sau khi cài Quartus II, giao diện như hình vẽ:
    1a.

    Hình vẽ. Giao diện Quartus II.​
    2 Thiết kế mạch.
    Mạch điện trong Quartus có thể được thiết kế theo các cách sau:
    2.1/ Sơ đồ khối (Block Diagram).
    Trong cách mô tả này, mạch điện tạo nên từ các cổng logic rời rạc, hay các hàm gồm nhiều cổng logic tích hợp (megafunctions). Để vẽ mạch theo cách này, nhấn New, chọn tab Device Design Files, chọn Block Diagram/ Schematic File, hiện:
    2.


    Hình vẽ. Giao diện Block Editor​
    Nhấn chọn Symbol Tool để hiện các cổng logic hay các hàm Megafuntions:
    3.

    Hình vẽ. Các cổng logic, các hàm.​
    Khi đã chọn xong các cổng logic hay hàm thì dùng các công cụ nối dây để vẽ mạch hoàn chỉnh.
    2.2 Các file thiết kế.
    Nhấn New, chọn tab Device Design Files, chọn Verilog HDL (hay VHDL hay AHDL). Với cách này, mạch điện được mô tả bởi các đoạn mã thể hiện các đầu vào đầu ra của các khối mạch cũng như cách xử sự của chúng. Trong luận án này, lấy ví dụ về thiết kế mạch đếm 4 bit dùng Verilog HDL file.
    Tạo file mới.
    Từ giao diện của Altera Quartus chọn File/New Project Wizard. Hiện:
    4.

    Hình vẽ. Giao diện Dự án mới​
    Nhấn Next/Next để hiện ra bảng Thiết lập linh kiện (Family & Device Settings), chọn linh kiện FPGA mà ta dùng, rồi nhấn Finish.
    Lúc này, ta sẽ có được Project đầu tiên.
    5.


    Thêm file Thiết kế vào Project
    Nhấn File/New .
    6.

    Hình vẽ Giao diện file thiết kế mới.​
    Để tạo ra file thiết kế cho Dự án, ta có thể dùng sơ đồ khối (nhấn Block Diagram/Schematic File) hay dùng một trong các ngôn ngữ mô tả phần cứng như: AHDL, Verilog HDL hay VHDL hoặc có thể dùng kiểu EDIF. Ở đây, để chọn dùng ngôn ngữ Verilog HDL.
    Bộ đếm nhị phân 4 bit.
    Một bộ đếm nhị phân 4 bít gồm 2 đầu vào: đầu vào xung đếm (clock), đầu vào xóa bộ đếm về 0 (clear) và 4 đầu ra nhị phân Q0, Q1, Q2, Q
    7.

    Hình vẽ. Sơ đồ mạch bộ đếm nhị phân 4bit.​
    Đoạn mã dùng Verilog để mô tả bộ đếm trên như sau:
    Mã:
    //4-bit Binary  counter
     
    module counter(Q , clock, clear);
     
    // I/O ports
     
    output [3:0] Q;
     
    input clock, clear;
     
    //output defined as register
     
    reg [3:0] Q;
     
    always @( posedge clear  or negedge clock)
     
    begin
     
      if (clear)
     
        Q <= 4'd0;  //Nonblocking assignments are recommended
     
                    //for creating sequential logic such as flipflops
     
      else
     
        Q <= Q + 1;// Modulo 16 is not necessary because Q is a
     
                    // 4-bit value and wraps around.
     
    end
     
    endmodule
    Dùng bộ soạn thảo sẵn có của Quartus để đưa đoạn mã này vào file Verilog vừa tạo ra, rồi Save với tên phù hợp.
    8.

    Hình vẽ. File thiết kế dem4bit.v thể hiện bằng ngôn ngữ Verilog.​

    Dùng đoạn mã mẫu của Verilog.
    Quartus đã tạo sẵn một số đoạn mã Verilog mẫu để hỗ trợ người thiết kế. Chọn Edit/Insert Template/ Verilog HDL. Có khá nhiều khối được mô tả sẵn bằng Verilog như: bộ đếm, ghi dịch, bộ cộng, các khối nhớ RAM, ROM... Đây cũng là cách để người dùng có thể học thêm về ngôn ngữ Verilog.
    Biên dịch.
    Để biên dịch File nhấn Processing/Start Compilation. Quartus sẽ biên dịch file dem4bit.v. Sau khi hoàn thành, hiện thông báo. Full Compilation was successful (Biên dịch thành công). Biên dịch gồm 4 quá trình thành phần:
    Phân tích và tổng hợp (Analysis & Synthesis)
    Quá trình này sẽ xem xét thiết kế logic để tạo ra cơ sở dữ liệu thiết kế, thực hiện tổng hợp logic và tối ưu hóa thiết kế.
    Fitter(cân đối yêu cầu và tài nguyên)
    Quá trình này được xem như là đặt vị trí (cổng logic) và định tuyến (giữa chúng) - Place and Router. Sử dụng cơ sở dữ liệu được tạo ra bởi quá trình phân tích và tổng hợp, công cụ Fitter sẽ cân đối giữa các yêu cầu về thời gian, logic của Dự án thiết kế với các tài nguyên khả dụng của linh kiện. Nó sẽ ấn định mỗi hàm logic đến một đơn vị logic mà tối ưu nhất về thời gian truyền và định tuyến cũng như lựa chọn đường nối phù hợp và gán chân linh kiện.
    Assembler. (hợp dịch)
    Quá trình hợp dịch dựa vào kết quả của quá trình Fitter sẽ tạo ra hình ảnh của thiết kế, có thể trong các dạng sau: Programmer Object Files (.pof), SRAM Object Files (.sof), Hexadecimal (Intel-Format) Output Files (.hexout), Tabular Text Files (.ttf), and Raw Binary Files (.rbf),
    Classic Timing Analyzer (Phân tích thời gian).
    Phân tích thời gian cho phép xác định xung nhịp, các yêu cầu về thời gian vào/ra (I/O) nhằm thỏa mãn mục đích định thời. Quá trình này sẽ xác định tính năng tốc độ cho toàn bộ Dự án, cho từng khối thiết kế và cho việc truyền, nhận của các nút và chân linh kiện.
    9.

    Hình vẽ. Giao diện khi biên dịch và thông báo Biên dịch thành công​

    3 Cách thức mô phỏng hoạt động trong Quartus.
    Công cụ Simulator tích hợp sẵn trong Quartus II cho phép mô phỏng hoạt động của Dự án (Project). Trước khi mô phỏng cần tạo ra danh sách đường kết nối (netlist) bởi việc nhấn Processing/Generate Functional Simulation Netlist.
    Để có thể quan sát được dạng sóng mô phỏng, cần tạo ra file khác lưu trữ dạng sóng, bởi việc chọn File/New/Other Files/Vector Waveform File.
    Để thêm các tín hiệu vào/ra cho Vector Waveform File, chọn Edit/ Insert Node or Bus, nhấn Node Finder.

    Hình vẽ. Giao diện khi biên dịch và thông báo Biên dịch thành công​

    11.






    Hình vẽ. Giao diện Node Finder​
    Trong danh sách trên, để chọn 2 đầu vào Clear, Clock và đầu ra Q, nháy đúp vào các tín hiệu đó. Các tín hiệu này sẽ hiện ra trong danh sách Selected Nodes. Nhấn OK.
    Để án định dạng sóng cho 2 tín hiệu vào là Clock và Clear, đánh dấu chọn vào dạng sóng, trên thanh WaveForm Editor chọn Overwrite Clock, hiện :
    12.

    Hình vẽ Giao diện Clock để ấn định dạng sóng.​
    Time Range chính là khoảng thời gian muốn quan sát dạng sóng. Chu kỳ của tín hiệu cho trong Period, độ rộng xung trong Duty Cycle.
    13.

    Hình vẽ. Giao diện Waveform File.
    Có 2 kiểu mô phỏng trong Quartus là Functional và Timing. Với kiểu Functional, chỉ để kiểm tra hoạt động thuần túy logic, còn với mô phỏng Timing, kiểm tra hoạt động logic có tính đến yếu tố thời gian, như: trễ, quá độ...
    Để chạy mô phỏng, chọn Processing/Start Simulation.
    14.
     
    tiennam191, TkanhSpv, djdu14023 others thích bài này.
  2. le thuy

    le thuy Học sinh phổ thông

    Tham gia ngày:
    22/1/13
    Bài viết:
    1
    Đã được thích:
    0
    Điểm thành tích:
    1
    Giới tính:
    Nam
    Bạn có File nào chi tiết hơn không send cho anh em tham khảo
     
  3. Nguyễn Thái

    Nguyễn Thái Học sinh phổ thông

    Tham gia ngày:
    18/12/13
    Bài viết:
    1
    Đã được thích:
    0
    Điểm thành tích:
    1
    Giới tính:
    Nam
    Chào các bác.
    Em có đoạn code như sau: (chạy trên QuartusII)
    Các bác giupsem với, xem đoạn chương trình trên "code chương trình đó làm việc gì (tính năng của module này là gì)..."
    em vừa mới bắt đầu tìm hiểu nên rất kém, mong các bác giúp đỡ. giúp em càng chi tiết càng tốt
    Thank các bác.


    LIBRARY IEEE;
    USE IEEE.std_logic_1164.ALL;
    USE IEEE.std_logic_unsigned.ALL;
    ENTITY BDCCounter IS
    PORT(

    Reset ,CLK, LOAD, CNT_DIR : IN STD_LOGIC;
    DIN : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
    DOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
    );
    END BDCCounter;
    ARCHITECTURE CntArch OF BDCCounter IS
    BEGIN
    Count:
    PROCESS (Reset,CLK)
    VARIABLE CUR_VALUE : STD_LOGIC_VECTOR (3 DOWNTO 0);
    BEGIN
    -- A reaction to async reset
    IF (Reset = '1')
    THEN CUR_VALUE := (OTHERS => '0');
    -- Clock rise reactions
    ELSIF (CLK'EVENT AND CLK = '1')
    THEN IF (LOAD = '1')
    THEN IF (DIN <= 9)
    THEN CUR_VALUE := DIN;
    ELSE CUR_VALUE := (OTHERS => '0');
    END IF;
    ELSIF (CNT_DIR = '0')
    THEN IF (CUR_VALUE = 9)
    THEN CUR_VALUE := (OTHERS => '0');
    ELSE CUR_VALUE := CUR_VALUE + 1;
    END IF;
    ELSE IF (CUR_VALUE = 0)
    THEN CUR_VALUE := "1001";
    ELSE CUR_VALUE := CUR_VALUE - 1;
    END IF;
    END IF;
    END IF;
    DOUT <= CUR_VALUE;
    END PROCESS Count;
    ENDCntArch;
     
  4. TkanhSpv

    TkanhSpv Học sinh trung cấp

    Tham gia ngày:
    27/4/14
    Bài viết:
    40
    Đã được thích:
    11
    Điểm thành tích:
    8
    Giới tính:
    Nam
    Nghề nghiệp:
    Sinh viên trường đhcngtvt...
    Phần mềm này có phải dùng để thiết kế 80 xx phải ko các anh nhỉ....
     
  5. Văn Thu nb

    Văn Thu nb Học sinh trung cấp

    Tham gia ngày:
    4/6/15
    Bài viết:
    35
    Đã được thích:
    2
    Điểm thành tích:
    8
    Giới tính:
    Nam
    bạn nào có file đuôi .sopcinfo cho mình xin với
     

Chia sẻ trang này