Thông báo

Collapse
No announcement yet.

Projects

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

  • #16
    Nguyên văn bởi nam_bkfet Xem bài viết
    không biết box này còn ai đọc không,nhưng mình vẫn post bài,hy vọng cao thủ nào biết có thể giúp mình.Hiện tại là nhóm mình đã thực hiện được việc nhúng 1 file C mã hóa và cho nó hiển thị kết quả mã hóa lên cửa sổ terminal.Mình phân vân ko biết như vậy là con vdk thực hiện việc mã hóa hay chỉ là trình C đơn thuần làm(vì nó hiển thị ra đúng kết quả như trên cửa sổ console của visualC).Mà thầy giáo mình bảo cái file mà để cho vdk xử lý là file bitstream,mà cái code C của mình thì chẳng tạo ra file bitstream nào cả.hix,h mình chưa biết phải làm sao.ai biết thì giúp mình với,h mình như người đi trên sa mạc,ko biết hướng mà đi.help me!!
    Thanks!
    Theo như mình hiểu thì bạn đã giải quyết được thuật toán mã hóa, mô phỏng thành công trên Visual C, và câu hỏi là làm sao hiện hóa thuật toán mã hóa đó trên FPGA?
    Nếu như vậy thì có thể có nhiều cách, nhưng mình nói cách đơn giản nhất. Đó là bạn sử dụng MicroBlaze và EDK. Lập trình cho MicroBlaze thì cần dùng code C, vì bạn đã có code C trên Visual C nên adapt nó cho MicroBlaze ko phải là vấn đề quá lớn. Tuy nói là đơn giản nhưng cũng mất thời gian làm quen EDK và MicroBlaze.
    Còn về vấn đền bitstream thì bạn ko phải lo, EDK sẽ phụ trách nhúng code C vào bitstream cho bạn.

    Comment


    • #17
      cảm ơn et2 đã reply,cái ví dụ của mình thực hiên đơn giản.mới chỉ là khởi tạo uart rồi add code C mã hóa vào tool SDK.sau đó nạp lên spartan6,cho hiển thị lên hyperterminer.Mình vẫn ko hiểu như vậy là vđk của mình thực hiện mã hóa hay chỉ là trình C thông thường trong SDK thực hiên(chỗ này mình chưa hiểu lắm nên hỏi hơi ngu).Mình đã làm qua mấy bài lab của xinlinx về EDK nhưng vẫn gà gà(các bài lab chỉ là step by step ).Hiện tại công việc của mình là mã hóa 1 file bất kì,vậy làm sao có thể input 1 file bất kì vào để cho con vdk của mình nó mã hóa được??

      Comment


      • #18
        Nguyên văn bởi nam_bkfet Xem bài viết
        cảm ơn et2 đã reply,cái ví dụ của mình thực hiên đơn giản.mới chỉ là khởi tạo uart rồi add code C mã hóa vào tool SDK.sau đó nạp lên spartan6,cho hiển thị lên hyperterminer.Mình vẫn ko hiểu như vậy là vđk của mình thực hiện mã hóa hay chỉ là trình C thông thường trong SDK thực hiên(chỗ này mình chưa hiểu lắm nên hỏi hơi ngu).Mình đã làm qua mấy bài lab của xinlinx về EDK nhưng vẫn gà gà(các bài lab chỉ là step by step ).Hiện tại công việc của mình là mã hóa 1 file bất kì,vậy làm sao có thể input 1 file bất kì vào để cho con vdk của mình nó mã hóa được??
        Là cả 2, code C là để program cho con VĐK, thiếu 1 trong 2 thì thuật toán mã hóa của bạn đều ko chạy. Cụ thể hơn về kiến trúc của MicroBlaze, đó là 1 softcore MCU được tạo nên bởi các CLB, còn code C của bạn sau khi được dịch bởi SDK sẽ được nạp vào BRAM. Cụ thể hơn nữa, MicroBlaze và các ngoại vi sẽ được tool tổng hợp thành 1 file bitstream cuối cùng (*.bit). Nhưng file .bit này chưa có software cho con MCU MicroBlaze. Sau đó, SDK sẽ dịch code C thành file .elf và data2mem sẽ phụ trách nhúng file .elf này vào file .bit để tạo thành download.bit có chứa cả software và hardware.

        Comment


        • #19
          et2 ơi,vậy bây h mình muốn mã hóa 1 file bất kì thì phải làm như thế nào???

          Comment


          • #20
            Nguyên văn bởi nam_bkfet Xem bài viết
            et2 ơi,vậy bây h mình muốn mã hóa 1 file bất kì thì phải làm như thế nào???
            Có nhiều cách, và phụ thuộc vào giao tiếp đầu cuối giữa mạch của bạn với người dùng. Lấy ví dụ là giao tiếp UART hoặc ethernet, kit FPGA nối với PC (UART/ethernet) để nhận file từ PC, MicroBlaze thực hiện mã hóa rồi gửi ngược lại PC. Một ví dụ khác là giao tiếp qua thẻ nhớ (nếu trên kit FPGA của bạn có, chẳng hạn SD Card hay Compact Flash), bạn copy file cần mã hóa vào thẻ nhớ, MicroBlaze giao tiếp với thẻ nhớ để đọc file, mã hóa file rồi copy ngược lại vào thẻ nhớ.

            Comment


            • #21
              mình cùng project với bạn trên,mình mún hỏi là bây h mún truyền 1 file bất kỳ từ pc xuống còn microblaze cụ thể trên con spartan 6 lưu trực tiếp vào bram thì phải làm thế nào,cậu có tut nào hướng dẫn hoặc tool nào của xilinx hỗ trợ thì có thể gửi cho mình được k,mình tham khảo trên mạng mà k thấy tài liệu nào về cái này

              Comment


              • #22
                Nguyên văn bởi tungds Xem bài viết
                mình cùng project với bạn trên,mình mún hỏi là bây h mún truyền 1 file bất kỳ từ pc xuống còn microblaze cụ thể trên con spartan 6 lưu trực tiếp vào bram thì phải làm thế nào,cậu có tut nào hướng dẫn hoặc tool nào của xilinx hỗ trợ thì có thể gửi cho mình được k,mình tham khảo trên mạng mà k thấy tài liệu nào về cái này
                BRAM có thể hiểu theo 2 kiểu: BRAM-bộ nhớ chương trình của MicroBlaze hay BRAM-bộ nhớ ngoài.

                1. Mình nghĩ cách đơn giản nhất là dùng BRAM như là bộ nhớ ngoài, MicroBlaze sẽ giao tiếp với BRAM này bằng core xps_bram. Trong phiên bản mới của Xilinx EDK (bản 11, 12), khi thiết kế hệ thống, bạn có thể chọn xps_bram thêm, sau đó EDK sẽ có chương trình mẫu để test dữ liệu trong BRAM. Bạn có thể dựa vào đó để điều khiển đọc, xóa, copy dữ liệu trong BRAM đó.

                2. Cách khó hơn là BRAM-bộ nhớ chương trình của MicroBlaze. Tuy nhiên nếu bạn quan tâm đến cách này, bạn phải chắc chắn là vùng ghi/xóa dữ liệu của bạn không bị chồng lên vùng stack/heap của chương trình, nếu không software của MicroBlaze sẽ ko chạy đúng. Cách ghi/đọc dữ liệu vào BRAM này phải dùng inline assembly. Mình đưa 1 đoạn chương trình đơn giản:
                asm volatile{
                “swi R1, R0, 0x83C18000” //Save R1
                “lwi R1, R0, 0x83C18000” //Restore R1
                };

                Lệnh đầu tiên copy dữ liệu của thanh ghi R1 (có thể thay thế bằng dữ liệu số, ví dụ: 0x1234) vào địa chỉ 0x83C18000.
                Còn lệnh thứ 2 thì ngược lại; đọc dữ liệu từ địa chỉ 0x83C18000 rồi copy vào thanh ghi R1.
                Chi tiết bạn nên tham khảo "MicroBlaze Processor Reference Guide".

                Nói tóm lại, cách thứ 2 khá phức tạp, mình khuyên bạn nên thử cách 1 trước.
                Chúc thành công.

                Comment

                Về tác giả

                Collapse

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

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

                Collapse

                Đang tải...
                X