toilet

Hướng dẫn - Tự học FPGA và những điều cần biết cho những ai yêu thích FPGA

Thảo luận trong 'Tổng quan về Vi Điện Tử'

Đang xem chủ đề này ( Thành viên: 0, Khách: 2)

  1. Đăng 22/5/14 #1

    Mai Anh Đức Kỹ sư

    Số bài viết: 40
    Đã được thích: 138
    Chào các bạn, các anh chị trong diễn đàn cơ điện tử của chúng ta, mình là một thành viên khá non trẻ của diễn đàn, ngày hôm nay muốn đóng góp một điều gì đó cho diễn đàn qua bài viết về FPGA này, thực sự kiến thức của mình vẫn còn hạn hẹp nên không dám "múa rìu qua mắt thợ" chỉ dám đưa ra một vài ý kiến nho nhỏ để mọi người cùng tham khảo đóng góp về FPGA, một mảng thú vị nhưng còn khá mới mẻ này. Qua bài viết này mình cũng không dám dạy ai ở đây cả vì chắc cũng đều là bậc tiền bối trong ngành của mình. Chỉ mong mọi người góp ý, chỉ bảo nhiệt tình để chủ đề thực sự hữu ích hơn. Bài viết không thể tránh khỏi sai sót nên mong mọi người nhẹ nhàng chỉ bảo, mình mong nhận được những góp ý chân thành và thẳng thắn nhất của các bạn.
    FPGA.
    Không vòng vo nữa, mình xin đi vào chủ đề chính, trước khi học FPGA chúng ta cần biết nó là cái gì, nhưng để biết nó là gì thì chúng ta cũng cần có những kiến thức về Kỹ thuật số, logic số..., nếu chưa học những cái đó thì tốt nhất chưa nên học FPGA vì bạn sẽ chẳng hiểu gì. Đầu tiên, FPGA là viết tắt của cụm từ tiếng anh Field-programmable gate array (chắc ai cũng biết rồi) là một loại vi mạch tích hợp dùng cấu trúc mảng phần tử logic mà người dùng có thể lập trình được. Sự khác biệt lớn nhất với VĐK là ở chỗ với vi điều khiển là bạn phải làm việc với phần mềm, có nghĩa là lập trình phần mềm dựa trên phần cứng đã có sẵn, còn với FPGA có nghĩa là ta đang phải lập trình phần cứng, có thể dùng FPGA để tạo nên một con VĐK và lập trình lên nó như các VĐK khác mà mình hay gọi là Vi điều khiển FPGA, có lẽ việc so sánh này là không hợp lý lắm và mình cũng không thích phải so sánh như vậy. FPGA là một loại ASIC lập trình được, nếu muốn, các bạn có thể tham khảo cuốn "ASIC lập trình được", "lập trình ASIC" ,"thiết kế vi mạch CMOS VLSI" đều của Tống Văn On hay một số tài liệu nước ngoài về ngôn ngữ lập trình phần cứng Verilog hoặc VHDL.... (Mình sẽ cung cấp link cho các bạn ở những bài viết sau). Mình đọc ở đâu đó bài viết của bạn có nick name là hoangnguyen có trích đoạn như sau: "Làm thế nào để bạn có thể thiết kế một hệ thống (hoặc một chip) có chức năng nào đó ?
    Nếu hệ thống của bạn không gồm CPU,thì đơn giản là sử dụng tất cả những IC số mà bạn có (mux/demux, adder, counter, Logic gate, latch, buffer, FlipFlop…) ghép nối với nhau có tới khi hoàn tất thiết kế. Một số hê thống như vậy đôi khi cần cả trăm IC số. FPGA hiểu đơn giản là thiết bị cung cấp cho bạn những “hôp đa năng” mà có thể biến thành các IC số cơ bản. Các FPGA hiện nay chứa hàng nghìn/chục nghìn thậm trí vài trăm nghìn “hộp” như thế. Vậy nhiệm vụ của chúng ta là chỉ định (config) dạng của từng hộp đa năng (FlipFlop hay Logic Gate hay Latch …) và ghép nối chúng lại với nhau cho đến khi hoàn tất hệ thống.
    Vấn đề nảy sinh là các thiết kế phức tạp sử dụng vài trăm/nghìn thậm trí vài trăm nghìn kết nối và logic dẫn đến phương pháp ghép nối theo kiểu đồ họa không khả thi.Và người ta đã phát minh ra các ngôn ngữ mô tả sự hoạt động, cách ghép nối…các phần cứng với nhau gọi là ngôn ngữ mô tả phần cứng HDL (Hardware Description Language). Ngôn ngữ mô tả phần cứng giúp mô tả ngắn gọn, dễ hiểu, đơn giản các hoạt động của phần cứng. Tuy ngôn ngữ HDL đóng vai trò lớn trong việc thiết kế phần cứng, nhưng phương pháp đồ họa (đã nói ở trên) vẫn thường được sử dụng kết hợp với ngôn ngữ HDL trong một số trường hợp cần thiết" như vậy là bạn đã hiểu rõ thế nào là một FPGA, một ASIC lập trình được. FPGA chứa từ vài trăm nghìn đến vài tỷ cổng logic, một con số thật khủng khiếp nếu so sánh với CPLD và PLA, những mạch kiến trúc "cổ hơn". Trong khuôn khổ bài viết hạn hẹp, mình chỉ xin dám giới thiệu cấu trúc ASIC của hãng Xilinx vì bạn có thể dễ dàng tìm tài liệu về cấu trúc này trên mạng hơn. Trước hết để đi sâu hơn mình cũng sẽ giới thiệu với các bạn những công cụ, phần mềm, cũng như những bộ KIT để các bạn có thể tìm kiếm và "thực hành" nếu có điều kiện và các chương trình mô phỏng, mặc dù trên diễn đàn cũng có khá nhiều chủ đề nó về vấn đề này rồi. Bây giờ là 12h35 p.m, quá muộn rồi, mình phải đi ngủ để giữ sức khỏe để có thể học tập và viết tiếp bài, các bạn đọc và cho ý kiến, ngày mai mình sẽ viết tiếp về vấn đề này và tại chủ đề này luôn, mong nhận được sự quan tâm theo dõi!
    mita-e, Raider, thơm. bin21 others thích bài này.
    #1
  2. Đăng 22/5/14 #2

    xaxa9ztb Kỹ sư

    Số bài viết: 207
    Đã được thích: 195
    thầy vừa dạy mình về FPGA tuần trước xong :D
    #2
  3. Đăng 22/5/14 #3

    Mai Anh Đức Kỹ sư

    Số bài viết: 40
    Đã được thích: 138
    Mình sẽ tiếp tục bài viết đang dở dang hôm qua nhé. Không biết phải bắt đầu tiếp chủ đề như thế nào nên mình cứ viết vào phần trả lời như thế này ạ. Một vấn đề là lập trình trên chip FPGA thì dữ liệu lưu giống như trên RAM, có nghĩa là sẽ mất hết dữ liệu nếu như bị mất kết nối, để không phải công cốc thì cần gắn vào một bộ ROM ngoài, có 2 loại FPGA chính là SRAM và OTP (công nghệ thay đổi từng ngày mà, biết đâu nhưng điều mình nói lại lạc hậu thì sao?) một loại có thể lập trình nhiều lần và một loại chỉ lập trình một lần. Một sinh viên như mình hoặc các bạn thì việc có được những kiến thức nền tảng về FPGA là khá khó huống chi là trở thành chuyên gia trong lĩnh vực này. Dĩ nhiên nếu học tốt tiếng anh chuyên ngành vì tài liệu FPGA bằng tiếng việt khá ít, mình xin giới thiệu một ebook bằng tiếng anh về thiết kế số với FPGA, nó chỉ khoảng 100 trang nhưng cũng rất cần cho những kỹ sư đang muốn biết thêm về lĩnh vực này. Tài liệu bên dưới nhé, còn để tìm hiểu nhiều hơn về FPGA thì các bạn có thể cần một tài liệu tiếng việt khá chi tiết của Học viện kỹ thuật quân sự, các bạn cũng down file đính kèm ở bên dưới. Và một cuốn tài liệu bằng tiếng anh nữa cũng khá hay.
    Như vậy là xong phần giới thiệu tài liệu, chúng ta sẽ chuyển qua phần tiếp theo là đi chuyên sâu hơn, vì bài viết sẽ rất rất dài nên hi vọng mọi người chú ý theo dõi, chính vì rất dài nên mình xin chia thành nhiều phần và mong mọi người thông cảm, ai cũng có công việc của mình nên mình không thể 24/24 ôm cái máy tính được, mình sẽ viết tiếp vào chiều hôm nay và sẽ đăng một số tài liệu liên quan hữu ích nữa. Mong nhận được sự chú ý theo dõi

    Các file đính kèm:

    mita-e, tranpqvu, Xuan Son20 others thích bài này.
    #3
  4. Đăng 22/5/14 #4

    dangsonbk I'm aimin' right at you!

    Số bài viết: 515
    Đã được thích: 648
    Skype
    Mình có chút góp ý về sách học FPGA.

    Sách tiếng Anh có một số quyển rất hay của Pong P. Chu và MIT. Quyển của Pong P. Chu là FPGA prototyping by VHDL examples còn của MIT thì lâu quá mình cũng quên tên rồi. 2 cuốn này nếu từng học khoa điện tử viễn thông của BKHN chắc nhiều người biết. Sách Pong P. Chu hướng dẫn người học theo examples nên viết code hơi phong cách cá nhân một chút, nếu mới học là lựa chọn sáng giá nhất.

    P/S: Bài viết bạn nên dãn dòng nhiều hơn cho dễ đọc. :)
    #4
  5. Đăng 22/5/14 #5

    lehuuluong Học sinh phổ thông

    Số bài viết: 1
    Đã được thích: 2
    thầy giao cho em tiềm hiểu về cấu trúc về bộ nhớ rom của FPGA anh nào có tài liệu tiếng việt về nó chỉ cho em với ah. hay một số thông tin về nó cũng được ah. Em căm ơn. Mong nhận được sự giúp đỡ của anh trong thời gian sớm nhất ah.
    BuiBachTuanAnhMai Anh Đức thích bài này.
    #5
  6. Đăng 22/5/14 #6

    Mai Anh Đức Kỹ sư

    Số bài viết: 40
    Đã được thích: 138
    vâng, em sẽ chú ý
    BuiBachTuanAnh thích bài này.
    #6
  7. Đăng 22/5/14 #7

    Mai Anh Đức Kỹ sư

    Số bài viết: 40
    Đã được thích: 138
    Bây giờ mình sẽ tiếp tục chủ đề đã nêu, có lẽ nói về cấu trúc của FPGA thì rất dài và mất thời gian, các bạn có thể tìm hiểu trong tài liệu đính kèm ở kia, bây giờ mình chỉ trình bày chi tiết hơn về ngôn ngữ lập trình phần cứng mà các bạn sẽ sử dụng, tất nhiên là phải có phần mềm công cụ để làm việc trên FPGA

    Nếu làm việc trên FPGA của Xilinx thì down phần mềm ISE, google có khá nhiều, bạn có thể dùng phiên bản cao nhất hoặc vừa vừa thôi là đủ dùng vì mình mới tiếp cận mà, nếu không thích down trên mạng có thể mua đĩa về cài.

    Bạn cần thêm một phần mềm nữa là EDK để nhúng vi xử lý và các tùy biến IP ngoại vi của nó vào các chip FPGA
    Ngoài ra cần sắm cho mình một một board FPGA, dòng sản phẩm của Xilinx, có 2 loại bạn nên cân nhắc mua là CoolRunner XPLA3 CPLD và Spartan 3 FPGA, tất nhiên là mua Spartan 3 FPGA rồi, theo mình là thế. Đã động đến FPGA thì phải đắt, đừng nản vì nếu chăm chỉ học tập thì không gì có thể ngăn cản bạn đến với tri thức.

    Bây giờ thì tài liệu bạn cần về VHDL, ở dưới nhé, mình up 2 bản word và pdf, bạn có thể sử dụng một trong 2, với word có thể dễ chỉnh sửa còn pdf thì dễ theo dõi, thôi mình để tất cả trong một file nén để cho gọn.

    Các file đính kèm:

    scorp2510, Raider, SonMy8 others thích bài này.
    #7
  8. Đăng 22/5/14 #8

    Trần Hữu Ngà Học sinh phổ thông

    Số bài viết: 5
    Đã được thích: 2
    Một lĩnh vực khá mới mẻ và hết sức thú vị. Ngành mình thì có hẳn môn này. Mình xin giới thiệu với các bạn một trang web khá hay đó là WELCOME TO WORLD OF ASIC . Ở đây có đầy đủ các bài từ cơ bản đến phức tạp.
    Mai Anh Đức thích bài này.
    #8
  9. Đăng 23/5/14 #9

    Mai Anh Đức Kỹ sư

    Số bài viết: 40
    Đã được thích: 138
    cảm ơn bạn, tớ sẽ viết tiếp về chủ đề này vào ngày mai, mong bạn chú ý theo dõi, còn nữa, trang web bạn đưa rất hay và hữu ích, sau khi hoàn thành chủ đề này, mình sẽ đầu tư thời gian dịch toàn bộ nội dung trang web cho những ai yêu thích ASIC cần tìm hiểu, chắc có lẽ sẽ lâu và tốn công sức nhưng mình sẽ cố gắng. Rất cảm ơn bạn đã quan tâm tới chủ đề của mình
    #9
  10. Đăng 23/5/14 #10

    vietthai Kỹ sư

    Số bài viết: 170
    Đã được thích: 87
    túm lại đây là một lớp lập trình mở mức thậm chí thấp hơn assembly nói chung cũng khó có triển vọng cho anh em mình ( vì mình ghĩ nó dành cho những người thiết kế vxl , những nước có ghành công ghiệp đó ) nhưng cũng không dám phủ định tầm quang trọng của chủ đề vì biết đâu một ngày nào đó việt nam mình sẽ có những thiên tài tạo ra phương thức mới cho vi xử lý cho riêng mình
    ngoài ra mình ghĩ ứng dụng thiết thực nhất trước mắc cho nó là ta sẽ dùng nó tạo ra những con ic chuyên dụng( cấu trúc không phức tạp nhưng hiếm)....... một mảnh đất rất nhỏ bé cho ta có thể khai thác
    vanphu1992, TkanhSpvBuiBachTuanAnh thích bài này.
    #10

Chia sẻ trang này