Thông báo

Collapse
No announcement yet.

Tâm sự về FPGA

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

  • #31
    Nguyên văn bởi tonyvandinh Xem bài viết
    Tôi chỉ góp ý kiến thôi, cachep nên tự nghĩ ra nhé:

    1) Hình Sin là analog, cachep nên chuyển qua digital.
    2) Muốn làm trễ thời gian thì tín hiệu phải đi qua một số logic nào đó. Nếu đi qua AND, OR, XOR, vân vân ... thì khó xác định độ trễ vì còn tùy thuộc vào technology cho nên tín hiệu cần phải đi qua ??? (cachep tự suy nghĩ) thì mới có độ trễ cố định.

    Chúc cachep tự tìm ra câu trả lời và chia sẻ với mọi người
    Tony
    Em chào bác Tony.
    Em xin tiếp nhận những ý kiến của bác.
    1) Em cũng thấy là phải chuyển qua digital thì mới có thể đưa tiếp vào FPGA, nhưng riêng vụ interface này với FPGA em cũng thấy không đơn giản. Em đang thử dùng 2 con IC đời cổ ADC0804 và DAC0830 (vì chỗ em hiện giờ có mỗi 2 con đó) nhưng chắc là không được . Em sẽ xem mấy cái kit có giao tiếp với tín hiệu analog xem họ dùng cái gì
    2) Em cũng đã thử với các cổng logic và 1 số cái tương tự như vậy nhưng để được cái trễ tầm 0.1s thì em thấy có vể không khả thi
    Em hiên vẫn nghĩ tiếp , dự trên 1 ý tưởng mang nặng tính engineering tiểu xảo khác ,
    Em cảm ơn bác Tony

    Comment


    • #32
      Nguyên văn bởi jefflieu Xem bài viết
      - Cần phải biết giới hạn của tín hiệu đưa vào : Đưa vào hình SIN 1 GHz thì làm khác, 1 Hz thì làm khác.
      - Tái tạo lại y chang là sao? Không cách gì tái tạo lại y chang được.
      - Trễ đó đó có tương quan gì với tần số tin hiệu đưa vào?
      Bác jefflieu,
      Người em đang đinh xin làm sư phụ chỉ đến vỗ vai em nói có đúng gần ấy câu em chưa kịp hỏi gì thì đã biến mất kịp .
      Em tự cho tín hiệu của em là 1 tín hiệu hình sin có tần số là 50Hz, Vpp=5V. (em giả thiết là hình sin, chứ có thể đấy là 1 tín hiệu random)
      Cho tín hiệu ấy qua bộ tạo trễ mà em phải làm thì tại đầu ra biên độ + tần số tín hiệu không thay đổi, chỉ bị chậm đi 0.1 ms.
      Em hiểu nôm ra như kiểu cho nó đi qua 1 cái delay line vậy
      Em

      Comment


      • #33
        Em đang thử dùng 2 con IC đời cổ ADC0804 và DAC0830 (vì chỗ em hiện giờ có mỗi 2 con đó) nhưng chắc là không được
        Lý do?

        Em cũng đã thử với các cổng logic và 1 số cái tương tự như vậy nhưng để được cái trễ tầm 0.1s thì em thấy có vể không khả thi
        Dùng "shift registers" hoặc Digital PLL để làm delay line. Tại sao lại kô khả thi?

        Tony
        Chúc một ngày vui vẻ
        Tony
        email : dientu_vip@yahoo.com

        Comment


        • #34
          Nguyên văn bởi cachep Xem bài viết
          Bác jefflieu,
          Người em đang đinh xin làm sư phụ chỉ đến vỗ vai em nói có đúng gần ấy câu em chưa kịp hỏi gì thì đã biến mất kịp .
          Em tự cho tín hiệu của em là 1 tín hiệu hình sin có tần số là 50Hz, Vpp=5V. (em giả thiết là hình sin, chứ có thể đấy là 1 tín hiệu random)
          Cho tín hiệu ấy qua bộ tạo trễ mà em phải làm thì tại đầu ra biên độ + tần số tín hiệu không thay đổi, chỉ bị chậm đi 0.1 ms.
          Em hiểu nôm ra như kiểu cho nó đi qua 1 cái delay line vậy
          Em
          Nếu vậy thì sample nó chừng 100kHz (10us), rồi cho nó qua delay line (shift register, fifo ...) rồi xuất nó ra ... 0.1 ms cần delay 10 samples, chắc làm vậy sẽ được ...

          Comment


          • #35
            @ 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 anh jefflieu (trước đây em từng đọc 1 tài liệu của Xilinx có nói về điều này). Em cũng đã thử code log_10.vhd và có tham số hơi khác của anh. Cụ thể dưới đây là cấu hình trướckhi Register Balancing:

            Speed Grade: -5

            Minimum period: 8.788ns (Maximum Frequency: 113.792MHz)
            Minimum input arrival time before clock: 4.932ns
            Maximum output required time after clock: 6.507ns
            Maximum combinational path delay: No path found

            Timing constraint: Default period analysis for Clock 'clk'
            Clock period: 8.788ns (frequency: 113.792MHz)
            Total number of paths / destination ports: 2347 / 132
            -------------------------------------------------------------------------
            Delay: 8.788ns (Levels of Logic = 6)
            Source: mant_in_expanded_37 (FF)
            Destination: mant_in_shifted_4 (FF)
            Source Clock: clk rising
            Destination Clock: clk rising


            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.

            Comment


            • #36
              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.

              Comment


              • #37
                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.

                Comment


                • #38
                  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

                  Comment


                  • #39
                    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)
                    ]

                    Comment


                    • #40
                      Đã 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.

                      Comment


                      • #41
                        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

                        Comment


                        • #42
                          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 độ)).

                          Comment


                          • #43

                            Comment


                            • #44
                              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

                              Comment


                              • #45
                                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ơ ...

                                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