Thông báo

Collapse
No announcement yet.

Tâm sự về FPGA

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

  • jefflieu
    replied
    Nguyên văn bởi ngocdt2k3 Xem bài viết
    Em đang định làm đề tài Microblaze trên spartan3e-starter board về ứng dụng giao tiếp cổng Ethernet. Nhưng từ trước đến giờ e chưa làm project nào hoàn chỉnh cả. Mong anh jefflieu chia sẻ kinh nghiệm thiết kế khi làm thực tế trên FPGA và tài liệu về phần này đc ko ạ. Cảm ơn anh rất nhiều!
    Kinh nghiệm của mình: làm từ phần nhỏ tới lớn đừng làm đùng 1 cái làm hết.
    Làm phần nhỏ tới lớn là như thế nào?
    - Ví dụ bạn chưa quen với phần mềm EDK và ISE của Xilinx, bạn tạo một project nhỏ thôi. Nhấp nháy LED chẳng hạn. Rồi bạn tạo hệ thống gồm microblaze, dùng block RAM đi đừng dùng external RAM. Xong rồi bạn viết code phần mềm cho nhấp nháy LED dùng GPIO IP core.
    while(1)
    {
    Xuất ra 1
    Chờ 1 giây
    Xuất ra 0
    Chờ 1 giây
    }
    Hệ thống này đơn giản thôi, chỉ có input là clock và reset, output là 1 con LED.
    Xong rồi bạn mô phỏng code của bạn. Chiu khó set up phần mô phỏng đi, sau này đỡ mất thời gian.

    Khi bạn thiết lập xong hệ thống này rồi thì bắt đầu thêm vào những cái phức tạp hơn:
    - MAC IP Core
    - External RAM
    - Driver
    - Interrupt
    - Operating system
    Mình không có tài liệu gì, mọi thứ trên google ... nếu bạn không biết key word, từ chuyên ngành tiếng Anh, thì có thể post lên hỏi mọi người.

    Leave a comment:


  • ngocdt2k3
    replied
    Em đang định làm đề tài Microblaze trên spartan3e-starter board về ứng dụng giao tiếp cổng Ethernet. Nhưng từ trước đến giờ e chưa làm project nào hoàn chỉnh cả. Mong anh jefflieu chia sẻ kinh nghiệm thiết kế khi làm thực tế trên FPGA và tài liệu về phần này đc ko ạ. Cảm ơn anh rất nhiều!

    Leave a comment:


  • jefflieu
    replied
    Nguyên văn bởi itspider Xem bài viết
    Bạn ơi, mình không cố ý viết chữ thối đâu - đáng lẽ phải là :THÔI do tớ thấy các bạn nói lằng nhằng hơi nhiều.
    Bạn ơi, khổ lắm mỗi thằng FPGA của mỗi hãng lại có soft tương ứng nên không thể lấy cái này mà đem xài cho cái khác. Altera là thú vị hơn cả vì Quartus có bản Free Web đỡ phải mua. Nếu mà lên google có bài hướng dẫn chắc chẳng ai vô các diễn đàn làm gì => twuwj dưng đi vô nghe chuyện thời sự à? Theo mình bạn nên làm một bài Tutorial để mọi người có các bước hình dung đối với 1 sản phẩm của một chươgn trình cụ thể để từ đó mà theo.
    Thực ra FPGA không phải là vi điều khiển để có thể chơi như MC 8 hay 32 bit. Theo tớ được biết nó dùng cho nghiên cứu nhiều hơn.
    Ví dụ trong thiết kế mạch số thì khác, trong ứng dụng xwr lý tín hiệu số thì khác. Vấn đề cần được nghiên cứu cụ thể để mọi người tìm hiểu.
    Mình vẫn mong có được bài TUT step by step của bạn để được học hỏi nhanh hơn chứ không có ý gì khác. Chứ còn cop nhặt chỗ này dán sang chỗ kia thì vất vả cho người đọc lắm bạn à.
    Theo kinh nghiệm thì khi học và nghiên cứu, chúng ta học khái niệm (concept) chứ khó có thệ học tool (công cụ phần mềm) vì rất nhiều tool, không học hết. Khi khái niệm vững thì sử dụng tool gì cũng được. Về khái niệm FPGA thì Altera và Xilinx các khái niệm đều na ná nhau, bạn yên tâm. Dĩ nhiên sử dụng thành thạo một tool là lợi thế nhưng cũng đừng đặt nặng tool nào.

    Ví dụ trong Xilinx, mình thấy các tutorial này: ISE - 13.3 Tutorials
    Trong Altera mình thấy có mấy cái này, nếu không lầm thì free hết các course cơ bản: FPGA Designer Curriculum

    Không biết có phải bạn đang tìm mấy tutorial này không.

    Leave a comment:


  • itspider
    replied
    Bạn ơi, mình không cố ý viết chữ thối đâu - đáng lẽ phải là :THÔI do tớ thấy các bạn nói lằng nhằng hơi nhiều.
    Bạn ơi, khổ lắm mỗi thằng FPGA của mỗi hãng lại có soft tương ứng nên không thể lấy cái này mà đem xài cho cái khác. Altera là thú vị hơn cả vì Quartus có bản Free Web đỡ phải mua. Nếu mà lên google có bài hướng dẫn chắc chẳng ai vô các diễn đàn làm gì => twuwj dưng đi vô nghe chuyện thời sự à? Theo mình bạn nên làm một bài Tutorial để mọi người có các bước hình dung đối với 1 sản phẩm của một chươgn trình cụ thể để từ đó mà theo.
    Thực ra FPGA không phải là vi điều khiển để có thể chơi như MC 8 hay 32 bit. Theo tớ được biết nó dùng cho nghiên cứu nhiều hơn.
    Ví dụ trong thiết kế mạch số thì khác, trong ứng dụng xwr lý tín hiệu số thì khác. Vấn đề cần được nghiên cứu cụ thể để mọi người tìm hiểu.
    Mình vẫn mong có được bài TUT step by step của bạn để được học hỏi nhanh hơn chứ không có ý gì khác. Chứ còn cop nhặt chỗ này dán sang chỗ kia thì vất vả cho người đọc lắm bạn à.

    Leave a comment:


  • ngocdt2k3
    replied
    up up up. them nua nhe anh jefflieu

    Leave a comment:


  • jefflieu
    replied
    Thì coi như khác biệt văn hóa vậy. (Do từ THỐI )
    Thanks bạn. Mục đích của thread là những cái ngoài luồng mà các GV khác ko đề cập. Cho nên bạn không tìm thấy những thông tin như trong các tutorial gồm bước 1, 2, 3 ...
    Mình thấy thường có 2 kiểu học:
    - 1) Làm theo tutorial bước 1, 2, 3... cách này bạn chưa có câu hỏi gì, tutorial sẽ đưa thông tin đến bạn ...
    - 2) Mày mò, làm tới đâu nghiên cứu, google tới đó ... cách này thường lúc nào bạn cũng có sẵn câu hỏi trong đầu và đi tìm thông tin để trả lời câu hỏi của bạn.

    Mình không thích kiểu làm theo tutorial bước 1, 2, 3 ... cho nên cũng không thích viết các post tutorial bước 1 làm gì bước 2 làm gì ... thời buổi hiện đại, các bạn tự google những cái đó.
    Đó là quan điểm và phương châm !

    Cảm ơn bạn góp ý. Lúc nào các bạn cũng được hoan nghênh khi đặt câu hỏi ... nhưng các bạn nên google trước sơ sơ ...

    Leave a comment:


  • jefflieu
    replied
    Nguyên văn bởi itspider Xem bài viết
    Ơ, th� tớ c� bảo g� cậu đ�u! Sao n�ng t�nh thế. Tớ thấy m�nh cũng như mọi người v�o đ�y thấy cậu ghi FPGA cũng h�o hức muốn học, muốn được hiểu biết th�m nhưng thấy cậu to�n "T�m sự" kh�ng �. Vậy sao cậu kh�ng viết một b�i cho đ�ng ho�ng chỉ về c�ch lập tr�nh để t�i cấu tr�c c�c cell của FPGA đi. Lấy v� dụ n�: cậu l�m một b�i tập về mạch đếm thuận/nghịch nhị ph�n 8 bit nh�.
    1. C�c đầu v�o - đầu ra?
    2. Bảng trạng th�i?
    3. Lập tr�nh với NN g�?
    4. Sử dụng phần mềm n�o n�i r� lu�n để mọi người học theo bạn lu�n?
    5. C�ch thức m� phỏng ra l�m sao?
    6. Nạp xuống kit lu�n để mọi người học hỏi?
    ....
    Đ� l� c�i m� tớ đang t�m kiếm chứ tớ kh�ng c� � g� kh�c. Nếu được cậu l�m một file pdf giống như c�ch m� GV họ dạy tụi m�nh đ�
    -------------Tớ hy vọng mọi người tham gia diễn đ�n đều muốn t�m được những c�i như thế----------
    Xin lỗi cậu nếu cậu c� hiểu nhầm g� nh�! N�n văng minh v� lịch sự khi giao tiếp
    Diễn đàn bị lỗi gì đó. Đây là bài viết:

    Ơ, thì tớ có bảo gì cậu đâu! Sao nóng tính thế. Tớ thấy mình cũng như mọi người vào đây thấy cậu ghi FPGA cũng háo hức muốn học, muốn được hiểu biết thêm nhưng thấy cậu toàn "Tâm sự" không à. Vậy sao cậu không viết một bài cho đàng hoàng chỉ về cách lập trình để tái cấu trúc các cell của FPGA đi. Lấy ví dụ nè: cậu làm một bài tập về mạch đếm thuận/nghịch nhị phân 8 bit nhé.
    1. Các đầu vào - đầu ra?
    2. Bảng trạng thái?
    3. Lập trình với NN gì?
    4. Sử dụng phần mềm nào nói rõ luôn để mọi người học theo bạn luôn?
    5. Cách thức mô phỏng ra làm sao?
    6. Nạp xuống kit luôn để mọi người học hỏi?
    ....
    Đó là cái mà tớ đang tìm kiếm chứ tớ không có ý gì khác. Nếu được cậu làm một file pdf giống như cách mà GV họ dạy tụi mình đó
    -------------Tớ hy vọng mọi người tham gia diễn đàn đều muốn tìm được những cái như thế----------
    Xin lỗi cậu nếu cậu có hiểu nhầm gì nhé! Nên văng minh và lịch sự khi giao tiếp

    Leave a comment:


  • itspider
    replied

    Leave a comment:


  • jefflieu
    replied
    Nguyên văn bởi itspider Xem bài viết
    Thối, mấy bác nói nhiều quá mà chả thấy cái gì thực tế cả.
    Tớ có KIT FPGA Altera DE1 nè
    Đã làm, đang làm và sẽ làm với FPGA.
    Bạn nào ở Nha Trang muốn biết thêm và cần làm đồ án môn học thì liên hệ với mình nhé.
    thinh_doanvu@yahoo.com
    Bạn nói không thực tế điểm nào, mình viết hầu hết các post ở thread này, bạn chưa hiểu gì thì mình có thể giải thích, (chứ đừng "văng tục" bừa bãi, forum có nhiều người lớn (về tuổi tác lẫn trình độ)).

    Leave a comment:


  • itspider
    replied
    Thối, mấy bác nói nhiều quá mà chả thấy cái gì thực tế cả.
    Tớ có KIT FPGA Altera DE1 nè
    Đã làm, đang làm và sẽ làm với FPGA.
    Bạn nào ở Nha Trang muốn biết thêm và cần làm đồ án môn học thì liên hệ với mình nhé.
    thinh_doanvu@yahoo.com

    Leave a comment:


  • jefflieu
    replied
    Đã có 1 thread FPGA cơ bản được mở từ trước, có các tài liệu cơ bản. Chúng ta nên tiếp tục .
    Adtvhvqs bắt đầu sang đó đi nhé. Bắt đầu bằng câu hỏi cũng được, bên này hơi off-topic rồi.

    Leave a comment:


  • jefflieu
    replied
    Một ví dụ cho thấy có thể áp dụng REGISTER_DUPLICATION.
    Trong trường hợp này st là tín hiệu dùng để encode một máy trạng thái (state-machine). Mạch được thiết kế để chạy ở 270MHz. Timing report cho thấy bị lỗi. thiếu 0.4ns.

    Slack: -0.393ns (requirement - (data path - clock path skew + uncertainty))
    Source: lms_eq/st_1 (FF)
    Destination: i_proc_sub_module/dsocm_bram_0/dsocm_bram_0/ramb16_0 (RAM)
    Requirement: 3.700ns
    Data Path Delay: 3.918ns (Levels of Logic = 1)
    Clock Path Skew: -0.115ns
    Source Clock: eq_clk rising at 0.000ns
    Destination Clock: eq_clk rising at 3.700ns
    Clock Uncertainty: 0.060ns

    Clock Uncertainty: 0.060ns ((TSJ^2 + TIJ^2)^1/2 + DJ) / 2 + PE
    Total System Jitter (TSJ): 0.000ns
    Total Input Jitter (TIJ): 0.000ns
    Discrete Jitter (DJ): 0.120ns
    Phase Error (PE): 0.000ns

    Maximum Data Path: lms_eq/st_1 to i_proc_sub_module/dsocm_bram_0/dsocm_bram_0/ramb16_0
    Location Delay type Delay(ns) Physical Resource
    Logical Resource(s)
    ------------------------------------------------- -------------------
    SLICE_X28Y12.YQ Tcko 0.360 lms_eq/st<1>
    lms_eq/st_1
    SLICE_X15Y72.G2 net (fanout=162) 2.074 lms_eq/st<1>
    SLICE_X15Y72.Y Tilo 0.194 i_proc_sub_module/mpmc2_ddr_ddoc_100mhz_x8_mt46v64m8_5b_0/mpmc2_ddr_ddoc_100mhz_x8_mt46v64m8_5b_0/mpmc2_opb_if_2/rdbus_reg_0<27>
    BRAM_Wen<0>
    RAMB16_X1Y9.WEB1 net (fanout=4) 0.542 BRAM_Wen<0>
    RAMB16_X1Y9.CLKB Trcck_WEB 0.748 i_proc_sub_module/dsocm_bram_0/dsocm_bram_0/ramb16_0
    i_proc_sub_module/dsocm_bram_0/dsocm_bram_0/ramb16_0
    ------------------------------------------------- ---------------------------
    Total 3.918ns (1.302ns logic, 2.616ns route)
    (33.2% logic, 66.8% route)
    ]

    Leave a comment:


  • jefflieu
    replied
    Fanout và Register Duplication

    Khái niệm về FAN-OUT:
    Fanout của một logic chỉ số lượng input mà logic đó phải lái (drive). Khi có một logic có nhiều fanout thì trễ (delay) của logic đó sẽ tăng do:
    1) theo tính chất của tụ điện, nhiều input --> tăng capacitance, trễ tăng.
    2) Khi có nhiều logic, sau quá trình place and route, các logic sẽ bị xếp xa nhau, dẫn đến tăng trễ (do quá trình placement)

    Khi thiết kế và bị kẹt timing không thỏa constraint, cần phải tìm net vi phạm constraint, và nếu phát hiện thấy net vi phạm có quá nhiều trễ do net-delay, ko phải do logic delay, thì có thể do fanout của logic này khá lớn. Một cách để giải quyết là sử dụng Logic Duplication / Register Duplication.

    Để sửa có thể dùng option Register duplication (cẩn thận với option ngược lại Equivalent Register Removal) hoặc làm việc Register Duplication bằng tay (manually). Làm bằng tay có hạn chế là nhiều logic tự sinh ra do synthesizer, nên chỉ thấy được sau khi synthesis.

    http://forums.xilinx.com/t5/Implemen...nout/m-p/34542
    http://quartushelp.altera.com/9.1/me...b_physical.htm

    Leave a comment:


  • jefflieu
    replied
    Khi gặp rắc rối về việc không đủ resource: thử Option: "Map to LUT (4/5/6/7/8)" trong synthesis option.

    Leave a comment:


  • jefflieu
    replied
    Nguyên văn bởi hieuslash Xem bài viết
    @ Jefflieu: Các tham số trong Systhesis Report hình như có thay đổi tùy theo cấu hình PC đúng không
    Cái này Jeff không chắc. (Theo lẽ thông thường mà nghĩ thì không phải vậy). Em có còn tài liệu đó thì share lên cho mọi người.
    Việc kết quả của em hơi khác có thể do các setting khác nhau.
    Quan trọng là khi chọn option này có giúp ích được gì không?

    Anh có thể viết tiếp về các phương pháp tối ưu hóa thông qua Systhesis Options (Keep Hierarchy, Fanout,...) được không? Mấy phương pháp này ít người lập trình ở Việt Nam sử dụng, vì một là họ ko quan tâm lắm đến tốc độ (chủ yếu kết quả ngon là được rồi ); hai là yêu cầu bài toán đơn giản, không yêu cầu tối ưu. Tuy nhiên, những kiến thức này rất hữu ích khi giải quyết các thuật toán phức tạp ( như bài toán tối ưu giải thuật AES và sắp xếp anh đưa trang trước).
    Nếu được, anh bổ xung thêm một số bài cơ bản về kỹ thuật lập trình như: Finite State Machine, Pipelining... Em nghĩ cái này khá cần thiết cho những người mới tiếp cận FPGA.
    Thanks em !
    Sau khi mấy bài, Jeff cảm thấy viết bâng quơ khá khó chịu, không biết phải hệ thống lại như thế nào là tốt nhất, không biết có giúp ích được gì không, v.v. Có lẽ cách tốt hơn là làm một project, qua đó sẽ nêu những điều cần thiết.

    Jeff có attach cái file, trong đó viết khá chi tiết những cách optimizations. Sau này khi cảm thấy cần thiết, Jeff sẽ cố gắng viết tiếp.

    Leave a comment:

Về tác giả

Collapse

jefflieu Email minh trực tiếp nếu bạn cần download tài liệu gấp Tìm hiểu thêm về jefflieu

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

Collapse

Đang tải...
X