Trung tâm đào tạo thiết kế vi mạch Semicon


  • ĐĂNG KÝ TÀI KHOẢN ĐỂ TRUY CẬP NHIỀU TÀI LIỆU HƠN!
  • Đăng ký
    *
    *
    *
    *
    *
    Fields marked with an asterisk (*) are required.
wafer.jpg

Hương dẫn Thiết kế số trên FPGA .

Email In PDF.
 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:

module gates(a, b, q, r);
input a, b;
output q, r;

assign q = a & b; // one AND gate
assign r = a | b; // one OR gate
endmodule
- 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à Please login or register to view links and Please login or register to view links
Lần cập nhật cuối ( Thứ tư, 10 Tháng 6 2015 14:04 )  

Related Articles

Chat Zalo