Thông báo

Collapse
No announcement yet.

Tôi muốn hỏi quá trình boot của FPGA

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Tôi muốn hỏi quá trình boot của FPGA

    Chào các bác, tôi muốn hỏi chút về quá trình boot của FPGA - cụ thể tôi đang làm với Spartan 3 của Xilinx. Theo tôi đoán vì dữ liệu cấu hình được đặt flash nên đầu tiên sau khi bật nguồn phải có một boot loader nạp dữ liệu này vào SRAM để con FPGA hoạt động đúng như mình cấu hình, sau đó có một số điều khiển reset hoặc một khoảng thời gian nào đó con FPGA sẽ hoạt động như mình cấu hình và như thế mạch mới thực sự hoạt động đúng chức năng. Nhưng các bác có thể giải thích kỹ hơn cho tôi được không, càng kỹ càng tốt ví dụ boot loader đó ở đâu, cụ thể các quá trình bắt đầu load và trao quyền - hay chính xác hơn khi con FPGA hoạt động theo chức năng mình cấu hình, mạch ngoài (mạch chứa con FPGA) sẽ làm gì khi đang load dữ liệu cấu hình, có cần phải đặt một khối điều khiển ở ngoài để đồng bộ , điều khiển.... Và có thể so sánh với việc ghi code vào flash kiểu ISP của các con VDK mới như AVR, PIC, kể cả kiểu self programming thì càng tuyệt

    Tôi là beginner nên các bác giúp hộ với. Cảm ơn trước các bác

  • #2
    1. Nếu dùng XCS201S để ghi file cấu hình thì con này sẽ tự động nạp cấu hình cho FPGA. Quá trình thực hiện 1 lần duy nhất khi bật nguồn. Nó sẽ cấp các tín hiệu điều khiển, Data và CLK để cấu hình cho FPGA. Trong thời điểm này các IO của FPGA là ở trạng thái trở kháng cao. Sau khi cấu hình xong FPGA sẽ hoạt động luôn không cần RESET lại.
    2. Có thể dùng MCU để config nhưng chỉ dùng cho họ Altera bởi vì họ XILINK đòi hỏi xung nhip CLK khi config cao nên phải MCU đủ mạnh.
    3. Dùng 1 chip CPLD rẻ tiền + MEM ( 27,28,29 xx 020) để thay thế cho rẻ tiền. Ngoài ra nó còn có nhiều ưu điểm hơn nữa như có thể Reconfig chẳng hạn. Có thể thay chức năng của FPGA trong khi mạch đang họat động từ xa thông qua MODEM chẳng hạn.
    Nhà sản xuất chuyên nghiệp các sản phẩm OEM cho gia dụng và công nghiệp.

    Biến tần
    Máy giặt
    Lò vi sóng
    Bếp từ.
    Tủ lạnh.
    Điều hòa

    Comment


    • #3
      Còn ở MCU thì boot là một đoạn chương trình rất nhỏ trong uC. Nó có thể có sẵn do nhà sản xuất,có thể lại ta nạp đoạn boot đó vào.Thực chất là đoạn chương trình để nó tự ghi vào bộ nhớ chương trình của nó. Thường thì sau khi reset, nó sẽ hỏi thông qua 1 giao diện nào đó,nếu có dữ liệu cần nạp, nó sẽ ghi vào trong bộ nhớ chương trình của mình,ghi xong, nó lại chạy lại nên cũng ko cần phải reset. Nếu ko, nó tiếp tục chạy chương trình sẵn có trong bộ nhớ chương trình của nó. Do đặc trưng như thế,chỉ một số loại MCU có hỗ trợ tính năng này,đó chính là các loại MCU có khả năng "self programming"(tự ghi vào Flash/EEPROM(bộ nhớ chương trình)). Bởi vậy, nó hay hơn các chuẩn nạp cứng(ISP chẳng hạn)khác, vì:
      -Nó an toàn cho chip hơn
      -Nó đơn giản hơn
      -Nó thường ko reconfig khi nạp lại = boot được.
      -Nó nạp nhanh hơn.
      -Rất phù hợp khi thử nghiệm.

      Về nguyên tắc, nếu sử dụng chế độ boot có thể nạp chương trình qua tất cả các giao diện như: RS232,CAN, USB, I2C, SPI...thậm chí mình tự nghĩ ra cũng đc,miễn là đoạn boot đó tương thích.

      Comment


      • #4
        http://picvietnam.com/showthread.php?t=130

        Tiny bootloader - làm việc với PIC, chẳng liên quan gì, nhưng cung cấp thông tin thêm cho bài viết bé Trang thôi.

        Chúc vui.
        Falleaf
        Công ty TNHH Thương mại và Giao nhận R&P
        58/57 Nguyễn Minh Hoàng - Phường 12 - Quận Tân Bình - TP.HCM
        mail@falleaf.net - VP: (04) 36408561 - (08) 38119870

        Comment


        • #5
          Cảm ơn các bác đã lời nhiệt tình, thú thật tôi may mắn có được một cái kit Spartan -3 Starter - UG130(v1.0.1) khi khai thác tôi muốn tìm hiểu kỹ hơn với mong muốn đầu tiên là nắm chắc cấu trúc về mặt ghép nối và hoạt động ban đầu như câu hỏi trên tôi hỏi các bác để mình có thể tự làm được mạch từ các linh kiện rời.
          Tôi đoán (lại đoán vì tôi mới tìm hiểu và các mong các bác chỉnh hộ)
          một module có FPGA chắc chắn gồm
          1. FPGA - dĩ nhiên rồi (trên kit của tôi là XC3S200)
          2. flash cấu hình (trên kit của tôi là XCF02SVO20C)
          3. SRAM (trên kit là 61LV25616Al)
          4. các nguồn DC cần thiết như 5V, 3.3V, 2.5V, 1.2V
          5. thạch anh tạo dao động nếu cần...

          các bác góp ý như thế đã đủ chưa và có thể mua flash và SRAM cho FPGA ở đâu ( tôi ở Hà Nội) hay bắt buộc phải mua ở nước ngoài

          Tiện thể cũng hỏi các bác luôn nhất là bác Minh Hà : bác thường dùng con gì để chuyển đổi mức điện áp TTL ra điện áp IO của FPGA (thường là LVTTL 3,3 V) và có thể mua được ở đâu

          to bác falleaf và bác thaithutrang: Cảm ơn hai bác đã giúp thêm kiến thức, ra tết tôi có ý định tìm hiểu thêm về PIC mong các bác giúp đỡ

          Mong các bác giúp tôi với, đã giúp thì giúp cho chót. Vì là beginner nên hỏi hơi nhiều , có khi vấn đề đơn giản lại làm phức tạp hóa vấn đề mong các bác thông cảm
          Last edited by nad; 20-01-2006, 00:26.

          Comment


          • #6
            Con FPGA đấy nó không có Flash trong thì phải dùng flash ngoài. Nạp trực tiếp Flash từ JTAG. Chả có bootloader gì hết. Còn mấy cái chuyển từ Flash vào SRAM (or antifused) thì nó là thủ tục cài sẵn rồi.
            Vẫn biết mỗi lần xa là một lần về lại...

            Comment


            • #7
              to bác qmk : Ồ không tôi chỉ nói nó có chức năng boot loader tương tự thôi : ở đây chắc nó là một mạch cứng bên trong FPGA active khi power on con FPGA

              Comment


              • #8
                1.Kit như vậy là OK rồi. Bọn mình thường không dùng KIT mà làm trực tiếp luôn. Hôm nào rảnh chup ảnh gửi cho các bạn xem có được không nhé.
                2.Giao tiếp 3.3V của FPGA với TTL thì chỉ cần dùng R khoảng 100 ôm nối tiếp là được rồi. Nhưng chú ý nếu FPGA chạy tốc độ cao thì phải dùng nguồn sạch đấy nhé. Và chú ý khi compiler thì đặt chức năng MultiVoltage cho các IO đó hoặc đặt chế độ trở kháng cao cho các IO và nối pullup bên ngoài.
                3. Bạn cứ mạnh dạn làm, trả giá ( bọn tôi gọi nó là tiền ngu phí) rồi sau sẽ thành công thôi. Nếu cần hỏi cụ thể tôi sẽ cố gắng giúp nếu biết. Bởi nói chung chung như thế này thì dài quá.
                Nhà sản xuất chuyên nghiệp các sản phẩm OEM cho gia dụng và công nghiệp.

                Biến tần
                Máy giặt
                Lò vi sóng
                Bếp từ.
                Tủ lạnh.
                Điều hòa

                Comment


                • #9
                  to bác qmk : Ồ không tôi chỉ nói nó có chức năng boot loader tương tự thôi : ở đây chắc nó là một mạch cứng bên trong FPGA active khi power on con FPGA

                  Xin nói thêm cho rõ nhé.
                  Chức năng tự nạp cấu hình cho FPGA không phải nằm trên FPGA mà nằm trên con XCF02SVO20C của bạn đó. Nó là FLASH + MODUL nạp + OSC. Để rẻ tiền ( Nạp cho nhiều chip FPGA) thì tôi dùng CPLD + 29F080 để thay thế. Như vậy sẽ rẻ hơn rất nhiều.
                  Nhà sản xuất chuyên nghiệp các sản phẩm OEM cho gia dụng và công nghiệp.

                  Biến tần
                  Máy giặt
                  Lò vi sóng
                  Bếp từ.
                  Tủ lạnh.
                  Điều hòa

                  Comment


                  • #10
                    Cảm ơn bác Hà, tôi vì là beginner nên mới hỏi chung chung thế .Hì tôi sẽ đọc kỹ lại datasheet của các còn này, rồi sẽ hỏi bác tiếp, nhưng chỗ bác dùng CPLD + flash để thay con XCF02SVO20C thi` quả là pro thật : nguyên việc bác phải đọc hiểu con flash ->viết mã cấu hình CPLD + hoạt động của con FPGA tôi nghĩ chắc cũng tiêu tốn một lượng thời gian khá nhiều của tôi, chưa nghĩ đến việc xây dựng ứng dụng trên FPGA
                    Dù sao cũng cảm ơn bác rất nhiều, ah mà nhân tiện hỏi bác luôn bác mua mấy con flash 29F080 ở đâu thế, hic tôi thường dùng mấy con EEPROM dòng 24 tốn ít chân nhưng dung lượng nhỏ quá, bác chỉ hộ với. Hy vọng sẽ được bác giúp đỡ nhiều
                    Chúc vui tất cả các bác

                    Comment


                    • #11
                      Giá như có ai đó, mở một chủ đề nói về các bước từ A->Z về tiếp cận với FPGA loại nào đó thì tốt quá.Ví dụ các bước như sau:
                      1-Chọn loại FPGA gì phù hợp với SV nhất.
                      2-Mua chip đó ở đâu.
                      3-Làm mạch nạp, tải chương trình nạp và nạp? cụ thể!
                      4-Thiết kế 1 board đơn giản, nạp thử một file nào đó.
                      5-Chương trình dịch thì chọn loại gì?tải từ đâu?
                      6-Các appnote chuẩn đơn giản, đông thời đọc một vài cuốn sách bổ trợ.
                      7-Bắt tay vào làm các ứng dụng đơn giản.

                      Comment


                      • #12
                        29F080 thì phải mua từ nước ngoài ( trước kia trong cửa hàng linh kiện cho máy di động cũng có nhưng bây giờ chỉ có chân BGA thôi). Bạn có thể dùng 4 chip 29SF020 thay thể. Tùy theo chip FPGA thông thường chip cua bạn chỉ cần 2XXX010 là đủ.
                        Nhà sản xuất chuyên nghiệp các sản phẩm OEM cho gia dụng và công nghiệp.

                        Biến tần
                        Máy giặt
                        Lò vi sóng
                        Bếp từ.
                        Tủ lạnh.
                        Điều hòa

                        Comment


                        • #13
                          Cái này bạn 3T mở 1 mục diễn đàn nào đó đi và tôi sẽ hỗ trợ cho. Ví dụ như thực hành với FPGA chẳng hạn. ( Không bàn đến lý thuyết trong mục này) như vậy sẽ nhanh và gọn hơn
                          Nhà sản xuất chuyên nghiệp các sản phẩm OEM cho gia dụng và công nghiệp.

                          Biến tần
                          Máy giặt
                          Lò vi sóng
                          Bếp từ.
                          Tủ lạnh.
                          Điều hòa

                          Comment


                          • #14
                            Hỏi bạn 3T một chút "Phù hợp với SV là như thế nào" Các ứng dụng của FPGA như bọn mình vẫn làm thì ứng dụng nhỏ chiểm tỷ lệ lớn hơn. Bạn cho bài toán cụ thể nhé. Khi lập trình cho FPGA tốc độ cao cũng cần nhiều kỹ năng thực tế nữa. Ví dụ nếu bạn simulator OK nhưng khi sản xuất thì chất lượng lại không đồng đều. Cái này phụ thuuocj vào nguồn. Nhưng có cách sẽ không phụ thuộc vào nguồn và cách vẽ PCB. Đôi khi khoảng cách 2 track là 5 mil thì không chạy nhưng 6 mil lại OK vvvv
                            Nhà sản xuất chuyên nghiệp các sản phẩm OEM cho gia dụng và công nghiệp.

                            Biến tần
                            Máy giặt
                            Lò vi sóng
                            Bếp từ.
                            Tủ lạnh.
                            Điều hòa

                            Comment


                            • #15
                              Ai dà!lại gặp cao nhân rùi!
                              Anh Hà cho em hỏi la giao tiếp FPAGA (của Xilinx) với MCU (PIC) thì có cần gì đặc biệt không ạ? Bởi vì chuẩn của FPGA là 3.3V mà PIC lại là 5V.FPGA của Xilinx có trở nối bên trong kéo lên rồi thì không biết có cần thiết phải lắp thêm trở bên ngoài không?Em đang định config FPGA (XC3S400) bằng PIC18F nhưng chưa biết cách giao tiếp thế nào!
                              Cũ người mới ta!

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X