Thông báo

Collapse
No announcement yet.

Tạo dãy walsh với VHDL thế nào?

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

  • Tạo dãy walsh với VHDL thế nào?

    Hiện nay phòng thí nghiệm trường tôi đang có một kit Virtex4. Tôi có nhiệm vụ phải viết code cho một chương trình tạo 2 chuối walsh 32 nhân với 2 tín hiệu số vào để tạo ra được tín hiệu cosin tăng. Ai biết chi dùm với. Tôi cũng mới nghiên cứu FPGA mà lại phải viết khóa luận tốt nghiệp. Nguy quá!
    Vital

  • #2
    Bạn sẽ tạo ra Walsh series như thế nào? 32 coefficients hay là 32-bit?

    Equation để tạo ra cosine như thế nào? cos = w1 * x1 * y1 + w2 * x2 * y2 ....? vv ...

    Trước khi nói đến VHDL, bạn nên model trước trong matlab hoặc pylab (Python). Có lẽ bạn đã làm rồi, thì nếu có thể bạn nên đưa lên để dễ dàng hình dung hơn và bàn đến bước kế tiếp.

    Comment


    • #3
      Ơn trời! Cảm ơn nemesis21 rất nhiều! Vậy là tôi có có cơ hội được học hỏi rồi.
      Thực ra tôi mới nhận đề tài và dường như chưa có kiến thức gì về nó cả. Nếu được thì pro có thể cho tôi tài liệu liên quan được không? Tôi cũng còn chưa biết cả về 32 bit và 32 coefficients là như thế nào. (quandv49@gmail.com)
      Vital

      Comment


      • #4
        Bạn nên nói rõ hơn về đề tài của bạn

        Bạn có hai tín hiệu số ở đầu vào, có lẽ là hai tín hiệu in-phase / quadrature? Hai tín hiệu đó cần được nhân với chuỗi Walsh 32 (= chuỗi 32 số 0 xen kẽ với chuỗi 32 số 1???)? Sau đó đưa qua một bộ lọc cosin tăng (raised cosine filter), đại khái là một bộ lọc FIR?

        Luận tốt nghiệp của bạn là về toán hay là về FPGA? Bạn nên tìm hiểu lại kỹ về yêu cầu của phần toán trước. Về phần toán, tôi chỉ có thể đoán mò về đề tài của bạn thôi, chưa chắc là đúng với ý của người đã đưa ra đề tài. Về phần FPGA cũng vậy. Module của bạn sẽ được tùy nghi sử dụng toàn con chip hay chỉ là một phần, phải kết hợp với nhiều module khác? Tín hiệu đầu vào từ đâu? Tín hiệu đầu ra như thế nào? Phải làm thế nào để chứng minh rằng module của bạn hoại động hiệu quả? vv ...

        Comment


        • #5
          Nói thật là thầy hướng dẫn của em cũng chưa từng làm FPGA. Ngành của em cũng không được học gì về FPGA nên chính thầy cũng không hiểu gì lắm. Đại khái là thầy em đang có 1 bộ kit virtex4 có 2 ADC và 2 DAC. Thầy muốn dùng kit này để nghiên cứu và phát triển đề tài của thầy về MIMO. Chính vì rất mới nên thầy chỉ giao cho mỗi sv một phần việc nhỏ để làm khóa luận. Phần của em là tạo ra các chuỗi walsh 32 để nhân với 2 cặp tín hiệu I-Q (MIMO mà). sau đó đưa vào một bộ lọc cosin tăng. Với đề tài này thầy chỉ yêu cầu khi đưa vào 2 luồng tín hiệu đã được điều chế vuông pha là tín hiệu dạng xung vuông và tín hiệu ra phải là tín hiệu dạng coisin tăng.
          Rất cảm ơn nemesis21 đã nhiệt tình giúp đỡ!
          Vital

          Comment


          • #6
            Vậy có lẽ bạn không muốn tạo dãy Walsh trên FPGA, mà dãy Walsh bạn đã tính sẵn, chỉ lưu trên FPGA và sử dụng để nhân với hai cặp tín hiệu IQ?

            Tài liệu về VHDL tiếng Việt thì tôi không có, tiếng Anh thì bạn chịu khó tìm trên Google một chút, có rất nhiều các tutorial. Nếu bạn đã có kit, thì có lẽ cũng đã có software đầy đủ (nếu không thì đi download ISE Webpack và Modelsim), và có lẽ cũng đã có một số code mẫu. Nếu có sẵn code mẫu, song song với việc đọc các tài liệu để hiểu thêm về cấu trúc, bạn nên mô phỏng (simulate) trong Modelsim xem nó hoạt động như thế nào, sau đó mới từ từ sửa đổi thêm thắt trong code mẫu đó xem hiệu ứng như thế nào, rồi sau nữa từng bước từng bước tiến tới. Đó là quá trình làm quen cấp tốc với VHDL.

            Về phần thuật toán, trước tiên bạn nên mô phỏng kỹ càng trong Matlab, rồi sau đó hoán chuyển từng bước đến VHDL.

            Lấy thí dụ một phép tính vector/matrix vô cùng đơn giản trong Matlab: X = [a; b; c]; Y = [d, e, f]; Z = X * Y;

            Nhưng trong FPGA, mỗi clock cycle bạn chỉ có thể làm những phép tính đơn giản như + - * /. FPGA không biết làm các phép tính cao cấp với vector và matrix.

            Bạn nên viết lại Matlab script dùng những phép tính FPGA có thể thực hiện, thí dụ như:
            Z(1,1) = X(1) * Y(1);
            Z(1,2) = X(1) * Y(2);
            ...
            Z(3,3) = X(3) * Y(3);
            Khi hoán chuyển sang VHDL, theo phương pháp đó thì bạn có thể tính cả matrix chỉ trong vòng 1 clock cycle, nhưng bạn cần phải dùng đến 9 multiplier, tiêu tốn nhiều tài nguyên hơn.

            Hoặc bạn có thể viết lại dùng for loop:
            for i = 1 : 3
            __for j = 1 : 3
            ____Z(i,j) = X(i)*Z(i)
            __end
            end
            Khi hoán chuyển sang VHDL, theo phương pháp đó bạn cần 9 clock cycle để tính cả matrix, nhưng đổi lại tốn ít tài nguyên hơn.

            Đại khái là như vậy. Mô phỏng thuật toán cao cấp trên Matlab trước, sau đó chuyển xuống cấp thấp hơn, phù hợp với khả năng của FPGA, mô phỏng kỹ càng để không có sai số giữa hai Matlab model, sau đó mới tính đến chuyển sang VHDL và mô phỏng trên Modelsim, trước khi chuyển sang hardware.

            Comment


            • #7
              Vâng. Rất cảm ơn anh! Về VHDL thì em cũng biết sơ sơ. Nhưng e chưa biết làm thế nào với cái đề tài của mình. E sẽ tìm hiểu thêm. Nói thật em rất mông nung chưa tìm được hướng đi chính xác nào cả. E có search google nhiều rồi nhưng chưa tìm ra code mẫu. Nếu a có tài liệu gì về walsh và về code VHDL liên quan thì cho em xem làm mẫu với. Cảm ơn pro nhiều!
              Vital

              Comment

              Về tác giả

              Collapse

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

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

              Collapse

              • mèomướp
                Trả lời cho Sửa bộ nguồn DC 60V 45A
                bởi mèomướp
                Dạ hông dám làm thì chắc chắn sẽ mãi ko thể làm được đâu ạ. Nguồn xung dân dụng vài kw giờ rất nhìu ạ, sạc ô tô điện, máy hàn, lò vi sóng, âm ly... tùy chất lượng mà độ phức tạp sẽ khác nhau ạ. Và cái giá phải trả về kinh tế...
                hôm nay, 13:11
              • tuyennhan
                Trả lời cho Sửa bộ nguồn DC 60V 45A
                bởi tuyennhan
                Sửa dạng này thì chuyên còn không dám chắc khộng cháy nổ với linh kiện bán ngoài chợ nói gì khộng chuyên .
                hôm nay, 09:25
              • tuyennhan
                Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                bởi tuyennhan
                Đúng rồi chọn mua theo tai . ca thì phải toàn dải nhạc thì chỉ cao và thấp thé nên loa ca thì nghe nhạc không hay và ngược lại .
                Muốn ca và nhạc đều hay thì phải dúng 2 giàn , còn nếu chỉ có 1 thì phải chỉnh sửa lại sao cho ca và nhạc đều được không quá dở ....
                hôm nay, 09:10
              • Ng.Phuong.5
                Vấn đề in lỗ khoan ra pdf ở Orcad 9.2
                bởi Ng.Phuong.5
                Vấn đề cũ: khi in mạch ra pdf và bấm chọn Keep Drill Holes Open, in ra thì pdf trắng đen các lỗ chân linh kiện như nhau. Mặc dù có linh kiện phần Drill là 1mm, có linh kiện thì là 3mm. Cho em hỏi cách sửa phần này ở Orcad 9.2 với ạ.
                Mấy con...
                Hôm qua, 19:44
              • viettinh
                Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                bởi viettinh
                Bác nói đúng quá. Cơ mà muốn mua hàng chính hãng, hàng thương hiệu mà tai lại hợp hàng tầu mới khổ chứ.
                Đang tính mua cái loa tầu nữa cột đằng sau loa này, Loa sony chỉ để hát nhép thôi, có dc k các bác ...
                Hôm qua, 18:12
              • nguyendinhvan
                Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                bởi nguyendinhvan
                Theo tôi thì khi hpj sản xuất ra cái loa đó, đã có nhiều chuyên gia kỹ thuật hiệu chỉnh, tính toán các phần tử kỹ lưỡng rồi.
                Bây giờ tính toán hiệu chỉnh lại cần có đội ngũ tương đương với nhà sản xuất.
                Cách đơn giản...
                Hôm qua, 00:04
              • mèomướp
                Trả lời cho Sửa bộ nguồn DC 60V 45A
                bởi mèomướp
                Dạ cháu có ý tốt muốn động viên chú ấy ngâm cứu khoa học thôi ạ. Về phần kiểm tra dao động thì chú ấy chưa biết thì sẽ tìm hiểu được là cần những gì ạ, chắc chắn là khi hướng dẫn phần ấy các cô chú nào đó sẽ lưu ý cần loại sò công suất ra tránh cháy nổ rồi ạ....
                08-01-2025, 19:02
              • tuyennhan
                Trả lời cho Sửa bộ nguồn DC 60V 45A
                bởi tuyennhan
                Chủ thớt hỏi có kiểm tra được dao động mà không cấp nguồn thì rõ trình ở mức nào mà mèo còn xúi ngâm cứu nữa ác vậy ....
                08-01-2025, 15:43
              • tuyennhan
                Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                bởi tuyennhan
                Loa bass đấu trực tiếp không qua phân tần để thành loa toàn dải xem có thoát tiếng khộng , nếu không thoát cần phải sửa lại mạch cs hay âm sắc nếu đủ trình còn nếu thoát ca hay nhưng chưa vừa ý vì bass kém chăc thì đấu lại như cũ và đấu thêm loa mid treble bên ngoài .
                08-01-2025, 15:28
              • mèomướp
                Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                bởi mèomướp
                Dạ loa tép bé xíu như ngón chân cái thôi ạ. Thiếu gì chỗ để đâu. Quan trọng là gắn thêm nó loa nghe ok hay ko thôi ạ...
                08-01-2025, 11:44
              Đang tải...
              X