Thiết kế số trên FPGA .

Thảo luận trong 'FPGA CĂN BẢN' bắt đầu bởi Lu ROm, 11 Tháng một 2015.

Chia sẻ trang này

Lượt xem: 5,420

  1. Lu ROm

    By:Lu ROmin: 11 Tháng một 2015
    Administrator Staff Member

    Tham gia ngày:
    25 Tháng bảy 2014
    Bài viết:
    481
    Đã được thích:
    118
    =D***Thiết kế FPGA

    - Chia làm 2 phương pháp:

    + dùng schematic ( biểu đồ)

    + dùng ngôn ngữ mô tả phần cứng(Hardware Description Language)


    A,Schematic design entry
    - Với Schematic design, bạn sẽ phác họa bản thiết kế của mình bằng các gates và wire nằm trong một khối (block) trên máy tính của mình. Bản thiết kế có thể có nhiều khối và trong khối có nhiều cổng được nối bằng các dây.
    - Một thiết kế FPGA nên có một bản schematic vì nó dễ đọc và người xem có thể hiểu được. Nhưng đối với một thiết kế lớn thì sẽ không dùng vì khá phức tạp khi dùng khá nhiều cổng và wire . Nó sẽ làm bản thiết kế chúng ta rắc rối hơn. thay vì thiết kế bằng Schematic chũng ta sẽ sử dụng ngôn ngữ mô tả phần cứng để thay thế.

    B,HDL design entry:
    -
    Thiết kế FPGA bằng ngôn ngữ phần cứng thông dụng với nhiều người hơn. Thông thường chúng ta sẽ sử dụng ngôn ngữ VHDL and Verilog để thiết kế.
    C,Làm thế nào để chọn VHDL hay Verilog.
    Ok, sau đây chúng ta sẽ quan sát cổng AND và OR được thực hiện bằng ngôn ngữ khác nhau:

    [​IMG]
    CODE bằng ngôn ngữ HDL như sau:
    HU.png

    D-FF
    [​IMG]

    hu2.png

    - D-FF trên được thực hiện bằng behavior. Có nhiều loại thiết kế FPGA bằng ngôn ngữ mô tả phần cứng ở đây là VHDL và Verilog( mình sẽ giới thiệu sau). Behavior được nhiều người sử dụng vì nó dễ và khá gọn.

    D,VHDL or Verilog?
    - VHDL hay Verilog đều là ngôn ngữ mô tả phần cuwngz thông dụng nhất hiện nay.Bạn có thể chọn một trong hai để bắt đầu thiết kế FPGA. Với Verilog nó khá dễ cho những người mới mới bắt đầu làm quen với FPGA( nó khá giống ngôn ngữ C hiện nay). Còn VHDL có khó hơn chút vì có nhiều quy ước hơn, nhưng chặt chẽ hơn so với Verilog.

    E,FPGA simulation
    - Khi thiết kế hoàn thành (dùng …) bạn nên chạy mô phỏng trên máy bằng phần mềm trước khi đưa xuống FPGA. Nó sẽ giúp bạn kiểm tra các lỗi và chương trình có thực hiện đúng như yêu cầu bằng giản đồ sóng vuông nhưng trước hết khi bắt đầu simulation thì phải khai báo giá trị ban đầu.
    Testbench là một non-synthesizable HDL design để tạo simulation cho thiết kế của bạn.
    - Ví dụ về simulation dùng testbench:

    - Một testbench hoàn chỉnh:

    Mã:
    module testbench_for_gates;
    
    // we create some stimulus by toggling the signals "a" and "b" every 50 time-units
    reg a, b;
    initial
    begin
      a = 0; b = 0;
      #50 a = 1;
      #50 a = 0; b = 1;
      #50 a = 1;
      #50 $finish;
    end
    
    // and we apply the stimulus to "gates". In response, "gates" drives "q" and "r" signals
    wire q, r;
    gates my_gates(a, b, q, r);
    
    // and we can verify that "q" and "r" have the right values
    always @(a or b) if(q != (a & b)) $display("ERROR in signal q");
    always @(a or b) if(r != (a | b)) $display("ERROR in signal r");
    endmodule
    Phần mềm thực hiện là ISim and ModelSim

    minion_bigminion_big
     
    Last edited: 11 Tháng một 2015