Thông báo

Collapse
No announcement yet.

FPGA cơ bản

Collapse
This is a sticky topic.
X
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • FPGA cơ bản

    Bài viết này chỉ đưa ra những khái niệm thật sự đơn giản về chip khả trình FPGA.
    Từ trước, ta chỉ làm quen với các IC vi điều khiển “cứng”. Khái niệm cứng tức là, bạn đã có sẵn nền phần cứng của IC (chẳng hạn, bộ nhớ, thanh ghi, cổng IO...), và bạn viết mã lập trình cho nó. Phần mà bạn thay đổi cho IC, chỉ là phần mềm. Điều này có hạn chế là, ko có sự linh hoạt khi bạn phải thay đổi ứng dụng.
    Nhưng khi bạn muốn chế tạo 1 IC mới, chi phí chế tạo rất lớn, đồng thời việc thiết kế gặp nhiều khó khăn và thường được thực hiện ở các phòng thí nghiệm lớn.
    ASIC ra đời, cho phép các mạch IC có thể được chế tạo ngay tại các cơ sở ứng dụng. ASIC là một vi mạch được thiết kế dành cho một ứng dụng đặc biệt. ASIC sử dụng các công cụ thiết kế tự động để tạo sẵn các khối mạch phần cứng (bộ nhớ, lõi vi xử lý, các giao tiếp ngoài...). Tùy thuộc yêu cầu của từng ứng dụng mà các khối này được thêm vào IC. Đây là quá trình thực hiện IC ở mức thiết kế, logic và vật lý. Thiết kế logic sẽ mô tả IC trên cơ sở quan hệ logic của tất cả các khối, các thành phần trong IC. Ngôn ngữ được dùng là ngôn ngữ mô tả phần cứng HDL, gồm VHDL, và Verilog HDL, gần đây là sự ra đời của System C. Thiết kế vật lý liên quan đến sắp xếp các đường kết nối vật lý giữa các khối, các đơn vị trong khối, nguồn...
    Sau khi thực hiện IC ở mức thiết kế, các thiết kế này sẽ được chế tạo để tạo thành sản phầm hoàn chỉnh.

    FPGA là một loại ASIC, ra đời sau nhưng đã phát triển rất nhanh chóng.
    FPGA kế thừa khá nhiều tính năng của ASIC như, khả năng thiết kế phần cứng bằng ngôn ngữ... Tuy nhiên, có khác biệt lớn nhất là, với FPGA không cần phải chế tạo IC giống như ASIC. Có thể nói, FPGA là giải pháp trung gian giữa IC vi điều khiển và ASIC. Về cấu tạo, hãy hình dung, phần cứng FPGA được chế tạo trước, nhưng chỉ là tập hợp rất nhiều các cổng logic. Kết nối giữa các cổng logic này là mềm, tức khả trình. Khi bạn viết mô tả phần cứng dùng ngôn ngữ HDL, phần mềm biên dịch của hãng sẽ chuyển file HDL thành dạng ảnh gồm các khối logic và kết nối, rồi nạp vào IC. Chi tiết hơn, ta sẽ xét trong phần sau.

  • #2
    Cấu trúc FPGA tổng quát

    FPGA gồm 1 dãy các phần tử rời rạc có thể được kết nối với nhau theo một cách chung, các kết nối giữa các phần tử có thể lập trình được. FPGA được giới thiệu lần đầu tiên bởi công ty Xilinx năm 1985. Kể từ đó, có nhiều loại FPGA đã được nhiều công ty phát triển: Actel, Altera, Plessey, Plus Logic, AMD, Quick logic...
    Hình vẽ trên mô tả mô hình lý thuyết của 1 FPGA. Nó gồm một dãy hai chiều các khối logic (logic block) có thể được kết nối bằng các nguồn kết nối chung. Các nguồn kết nối gồm các đoạn dây nối (segment) có thể có chiều dài khác nhau. Bên trong các kết nối là các chuyển mạch lập trình được dùng để nối các khối logic với các đoạn dây, hoặc nối giữa các đoạn dây với nhau. Mạch logic được cài đặt trong FPGA bằng cách ánh xạ logic vào các khối logic riêng rẽ và sau đó, nối các logic block cần thiết qua các chuyển mạch.
    Attached Files

    Comment


    • #3
      Quy trình thiết kế FPGA

      Quy trình thiết kế FPGA
      Attached Files

      Comment


      • #4
        Tài liệu ASIC

        Tài liệu tham khảo về ASIC, do tôi sưu tầm được. Tài liệu khá hay.
        Attached Files
        Last edited by vqsktdt; 01-05-2008, 16:55.

        Comment


        • #5
          Tạo chip FPGA

          Để "thiết kế" chip FPGA mong muốn:
          1. Thiết kế phần cứng, dùng các ngôn ngữ HDL.
          2. Trên nền phần cứng này, viết phần mềm chạy giống như viết phần mềm cho các IC vi điều khiển thông thường. Với mỗi hãng chế tạo FPGA sẽ đưa ra hỗ trợ nền phần mềm khác nhau, có thể là C, hay gần giống C.

          Ví dụ, với hãng Altera, họ dùng Quartus để hỗ trợ thiết kế phần cứng. Có thể viết mô tả phần cứng từ ngôn ngữ HDL hay chọn các IP core có sẵn để tạo nên IC cứng với các thành phần mong muốn. Bộ xử lý, bộ nhớ, giao diện, các giao tiếp vào/ra...đều tồn tại dưới dạng các thành phần logic thiết kế sẵn (gọi là IP). Sau khi lựa chọn các IP này, có thể viết thêm các thành phần chưa có (IP tự tạo), Quartus sẽ tự động chuyển chúng thành dạng file ảnh (qua các bước thiết kế đã đề cập đến bên trên, như: Synthesis, Place, route...) rồi nạp vào IC để có nền phần cứng. Lúc này, ta đã có 1 IC vi điều khiển.
          Trên nền phần cứng này, dùng Nios IDE để viết Dự án chương trình phần mềm. Một Chương trình gồm thư viện (Lybrary) và ứng dụng (application). Thư viện sẽ khai báo sẵn các hàm thường dùng, còn ứng dụng sẽ dùng các hàm này và ngôn ngữ C/C++ để thực hiện bài toán đề ra. Dự án phần mềm sẽ được nạp vào bộ nhớ.

          Comment


          • #6
            chào anh vqsktdt và cả nhà . em đang có ý định theo thằng FPGA này . thấy mấy bài của anh rất có ý nghĩa . nhưng ko biết là anh có nhiều tài liệu cụ thể hơn ko ạ< nếu có anh có thể gửi lên cho anh em cùng xem với . và anh em nào nếu có cũng share luôn được ko >
            cảm ơn mọi người nhiều.

            Comment


            • #7
              Bài viết của bạn rất cơ bản!!!!!

              Mình kỳ này phải làm bài tập lớn FPGA của bọn xilinx.Bạn có nhiều kinh nghiệm mảng này có thể cho mọi người số điện thoại không?
              Tôi rất muốn liên hệ được với bạn?
              trungkien_a2@yahoo.com
              Thanks

              Comment


              • #8
                Đây là một bài viết về FPGA theo hướng nhúng : http://www.thongtincongnghe.com/article/2197
                Các bạn có thể tìm thấy các thông tin hữu ích trong đó.

                Comment


                • #9
                  cái process trong VHDL có tác dụng gì vậy các anh ơi, giúp em với

                  Comment


                  • #10
                    mình dang có ý định nghiên cứu về FPGA.bạn nào có 1 ví dụ đơn giản về thiét kế 1 hệ thống sử dụng FPGA

                    Comment


                    • #11
                      hi mình đang nghiên cứu về việc xây dựng một bộ điều khiển neuron trên FPGA bạn nào có kinh nghiệm thì chỉ cho mình với nhé... thanks much
                      |

                      Comment


                      • #12
                        Chào các anh!
                        Em mới tiếp cận với lĩnh vực này,ngồi học ngôn ngữ VHDL rùi cách sử dụng ISE nhưng thực sự e vẫn chưa hình dung ra một thiết kế hoàn chỉnh thế nào?Với cả e cung mua 1 kit spartan 3E của xilinx nhưng khổ lỗi chẳng biết bắt đầu từ đâu.Mong a jeff và các a chỉ giáo dùm e
                        E cũng mong là room này ngày càng được nhiều người ủng hộ và quan tâm!
                        |

                        Comment


                        • #13
                          Hi,
                          Trước tiên bạn phải biết các thành phần cơ bản của mạch số, như Flip-flop, gate, mux ... không cần biết chi tiết thiết kế ra sao, chỉ cần hiểu cách vận hành... Sau đó bạn sẽ học VHDL/Verilog/SystemC/SystemVerilog ...
                          Khi học VHDL, nên dùng simulation, trong ISE có sẵn Simulator (phần mềm mô phỏng), không nên dính dáng tới phần cứng, vừa mất thời giờ, vừa không học hỏi được gì.
                          - Khi khá khá VHDL, và bạn muốn xây dựng các ứng dụng chạy real-time trên FPGA, thì mới dùng developmen-kit. Nhưng khi dùng development kit, trước khi chạy trên board thật, luôn phải mô phỏng trước.
                          - Để trau dồi thêm HDL bạn có thể tham gia project FFT và FIR đang làm.
                          - Còn muốn nghịch phần cứng thì ... oke ... ... tạo cách mạch thời gian, counter ... trên board bạn có LED 7 đoạn ko? tạo mạch đếm 1 2 3 4 --> 9 0 ... như vậy sẽ hình dung được thiết kế hoàn chỉnh như thế nào. Bạn thích thì tạo 1 project. FPGA for newbie ... ... Jeff sẽ cho sticky tag.

                          Comment


                          • #14
                            anh jeff có thể nói cụ thể được không anh
                            e cung nghiên cứu và cung nắm được tương đối về lập trình với ngôn ngữ VHDL nhưng khi e viết chương trình,mô phỏng xong và khi nạp vào kit lại không thấy sự thể hiện của chương trình trên kit a ah
                            A có thể ví dụ giúp e lập trình có cả ngoại vi và hiển thi trên kit spartan 3E được không a jeff
                            |

                            Comment


                            • #15
                              Nguyên văn bởi adthvqs Xem bài viết
                              anh jeff có thể nói cụ thể được không anh
                              e cung nghiên cứu và cung nắm được tương đối về lập trình với ngôn ngữ VHDL nhưng khi e viết chương trình,mô phỏng xong và khi nạp vào kit lại không thấy sự thể hiện của chương trình trên kit a ah
                              A có thể ví dụ giúp e lập trình có cả ngoại vi và hiển thi trên kit spartan 3E được không a jeff
                              Mô phỏng đúng và nạp vào mạch không chạy là một phạm trù khác, cái náy gọi là "hands-on" .
                              Khi làm việc với phần cứng, dụng cụ không thể thiếu là:
                              - Multimeter: đo điện thế, dòng, short/open circuit. Cái này thì rẻ, chừng 50000 (cách đây 8 năm) ... cái cùi cùi xài cũng được, không cần chính xác.
                              - Oscilloscope: cái này thì khó kiếm, phải vào phòng láb của trường hoặc cơ quan thì may ra.

                              Ngay cả khi có đủ dụng cụ thì cũng có 1001 lý do để mạch không chạy như ý, setting sai, clock chết ... v.v và v.v

                              Nói khơi khơi thì khó nói, bạn lập một thread mới đi, thế nào board của bạn mua cũng có LED, switch ... và thường sẽ có các example để khởi đầu. Sau đó sẽ dễ hướng dẫn hơn. Jeff thấy thread này cần thiết cho các bạn mới bắt đầu với FPGA và phần cứng (FPGA, không phải VHDL). Mình sẽ đặt sticky cho để ai mới vào có thể tham khảo và làm quen nhanh chóng.

                              Comment

                              Về tác giả

                              Collapse

                              vqsktdt Tìm hiểu thêm về vqsktdt

                              Bài viết mới nhất

                              Collapse

                              Đang tải...
                              X