Thông báo

Collapse
No announcement yet.

Project nhỏ: Bộ lọc số FIR thực hiện bằng FPGA

Collapse
This is a sticky topic.
X
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • daophuong
    replied
    cho em hỏi với lưu đồ thực hiện này trong thiết kế bộ lọc thông thấp FIR trên FPGA : đầu phát---->ADC---->FPGA----->DAC---->oxilo thì FPGA sẽ xử lý bộ lọc thông thấp FIR như thế nào để đưa ra xung trên FPGA ạ. em cảm ơn!

    Leave a comment:


  • ngocnam14
    replied
    Em chỉ là người nhập môn thôi ạ. Em có đề tài thực thi Serial Multiplier trong FPGA mà chưa bik phải làm sao? Ai có kinh nghiệm làm rồi, cho em xin ít ạ. Em xin chan thành cám ơn

    Leave a comment:


  • jefflieu
    replied
    Bạn email cho mình mình gửi cho cuốn sách tham khảo, sách to quá upload không được: lieumychuong at gờ mail.

    Leave a comment:


  • jefflieu
    replied
    Nguyên văn bởi nhandt3 Xem bài viết
    [jefflieu ][/Good luck]

    Chào anh,

    Thực ra em đã làm được project này 1 thời gian, em cho véc tơ input qua fpga và đã thu được output đúng khi so sánh với matlab, sau này em gặp một người (theo em là cũng có kinh nghiệm), anh ấy bảo là, việc em so sánh đúng vector output với vector output chuẩn của matlab chỉ nói lên là : bộ em thực hiện giống với bộ fir trên matlab thôi, kiểu như là cần 1 cách kiểm tra khác, em không rõ lắm về vấn đề này mà cũng không có điều kiện gặp anh ấy để hỏi thêm, anh cho ý kiến giúp em với ạ, em cảm ơn anh nhiều...

    Với lại em biết là trong các core của FPGA, trong xillinx thì có core của bộ fir, thì nó có khác với bộ fir mình làm đây ạ?

    Trong code của em, em chia ra các bộ riêng biệt, bộ cộng, nhân, delay(thực ra là register), và rounder, sau đó thì nối lại bằng vòng for. Có người nói với em, nếu làm theo kiểu song song thế này rất dễ vì chỉ cần một vòng for và các lênh ở phía trong, một ít code là đủ, thậm chỉ tool synthesize còn gen ra mạch tốt hơn code của mình? Em muốn hỏi là người đó nói thế có đúng không ạ? có những ưu điểm gì khi làm theo 2 cách ạ?

    Em là người rất muốn tìm hiểu nhưng có quá ít kiến thức, các câu hỏi của em có thể rất vớ vẩn nhưng em rất mong được anh giúp đỡ, em cảm ơn anh nhiều ạ !
    Hi,
    sorry lâu nay không để ý có post mới.
    Ừ, mình mặc định là code Matlab chạy đúng ... nên so sánh với nó. Nếu giống nó thì an tâm về mặc "functionality" rồi.

    FIR thật ra có rất nhiều cấu trúc, mỗi người làm có thể mỗi khác, mặc dù cùng một tên FIR và cùng một số tap.

    Về câu hỏi vòng for, mình không chắc là mình hiểu ý bạn, nhưng mình nghĩ nghĩ không dể đề phần mềm synthesis ra mạch FIR được đâu, nếu được thì độ trễ cũng rất lớn.
    Nhưng mình cũng có thể sai, bạn hỏi rõ hơn cách làm của mọi người xem sao rồi post lên đây.

    Bạn không lo, có thắc mắc thì cứ search google trước và hỏi, những câu hỏi thảo luận của ban search google hơi khó nên không có gì e ngại cả!!!

    Cheers!

    Leave a comment:


  • nhandt3
    replied
    [jefflieu ][/Good luck]

    Chào anh,

    Thực ra em đã làm được project này 1 thời gian, em cho véc tơ input qua fpga và đã thu được output đúng khi so sánh với matlab, sau này em gặp một người (theo em là cũng có kinh nghiệm), anh ấy bảo là, việc em so sánh đúng vector output với vector output chuẩn của matlab chỉ nói lên là : bộ em thực hiện giống với bộ fir trên matlab thôi, kiểu như là cần 1 cách kiểm tra khác, em không rõ lắm về vấn đề này mà cũng không có điều kiện gặp anh ấy để hỏi thêm, anh cho ý kiến giúp em với ạ, em cảm ơn anh nhiều...

    Với lại em biết là trong các core của FPGA, trong xillinx thì có core của bộ fir, thì nó có khác với bộ fir mình làm đây ạ?

    Trong code của em, em chia ra các bộ riêng biệt, bộ cộng, nhân, delay(thực ra là register), và rounder, sau đó thì nối lại bằng vòng for. Có người nói với em, nếu làm theo kiểu song song thế này rất dễ vì chỉ cần một vòng for và các lênh ở phía trong, một ít code là đủ, thậm chỉ tool synthesize còn gen ra mạch tốt hơn code của mình? Em muốn hỏi là người đó nói thế có đúng không ạ? có những ưu điểm gì khi làm theo 2 cách ạ?

    Em là người rất muốn tìm hiểu nhưng có quá ít kiến thức, các câu hỏi của em có thể rất vớ vẩn nhưng em rất mong được anh giúp đỡ, em cảm ơn anh nhiều ạ !

    Leave a comment:


  • nhandt3
    replied
    Vâng a, em cảm ơn anh, nếu có gì thắc mắc, em sẽ lại lên đây hỏi anh, @@

    Leave a comment:


  • jefflieu
    replied
    Nguyên văn bởi nhandt3 Xem bài viết
    Chào anh, em hiện tại mới code xong cho phần bộ lọc, các submodule cộng, nhân, delay, rounder đã test và map lại với nhau(phần control em chưa code vì em nghĩ check function bằng modelsim thì điểu khiển trong testbench là được), em giờ đang code matlab để tạo số cửa sổ, hệ số bộ lọc, vector input, output, sau đó đẩy input vào modelsim để so sánh kết quả với nhau.
    Ừ, bạn nên dùng matlab tạo tín hiệu rồi in tín hiệu ra text file rồi đưa vô modelsim mô phỏng. Lấy output của FIR Của bạn và so sánh với output của FIR của Matlab.
    Bạn làm cẩn thận phần này vì phần này dễ kiểm tra và dễ sửa.

    Ít ngày nữa thì em mới mượn được Kit vertex II-pro, em định thực hiện trên Kit này. Đúng là phần tạo signal và phân tích phổ làm em lúng túng quá, em đang định chỉ load vertor input được tạo từ matlab sang ram rồi test nhưng mà thế thì đuối quá em sẽ cố gắng tìm hiểu cách tạo tín hiệu để làm tốt hơn.
    Loadtest vector vô ram cũng được, mình thấy không vấn đề gì. Bạn có thể dùng NCO để tạo các dạng sóng tuần hoàn đơn giản.

    Còn về synthesis và timing contrain (cái này làm em rất mù mờ). Đây là lần đầu em làm FPGA, nhưng em đã làm 1 project ASIC bằng tool của synopsys thì trong đầu em nghĩ là, chỉ có trong ASIC mới làm timing constrain rồi chỉnh contrains cho phù hợp để fix setup,hold time , còn trong FPGA thì phần timing ,tools sẽ tự tính cho mình và offer khoảng tần số hoạt động, ??? Liệu suy nghĩ của em có đúng không ạ, Mong anh giải thích hộ em dù có thể những câu hỏi của em hơi ngớ ngẩn, hix
    Giờ em muốn simulation cái code em vừa viết cho đúng đã, sau đó em đinh tìm hiểu cách tạo ram, load vào FPGA, sau đó mới đến tạo tín hiệu, kiểm tra,...
    Em rất muốn tìm hiểu về cái này, rất mong các anh giúp đỡ và sửa sai về hướng làm và cách làm cho em, em cảm ơn rất nhiều ! @@
    Trong FPGA cũng cần timing constraint. Bạn cứ làm tiếp theo hướng này, khi mô phỏng hoàn chỉnh, bắt đầu lắp đặt lên FPGA thì tìm hiều timing constraint.

    Good luck!

    Leave a comment:


  • nhandt3
    replied
    Chào anh, em hiện tại mới code xong cho phần bộ lọc, các submodule cộng, nhân, delay, rounder đã test và map lại với nhau(phần control em chưa code vì em nghĩ check function bằng modelsim thì điểu khiển trong testbench là được), em giờ đang code matlab để tạo số cửa sổ, hệ số bộ lọc, vector input, output, sau đó đẩy input vào modelsim để so sánh kết quả với nhau. Ít ngày nữa thì em mới mượn được Kit vertex II-pro, em định thực hiện trên Kit này. Đúng là phần tạo signal và phân tích phổ làm em lúng túng quá, em đang định chỉ load vertor input được tạo từ matlab sang ram rồi test nhưng mà thế thì đuối quá em sẽ cố gắng tìm hiểu cách tạo tín hiệu để làm tốt hơn.
    Còn về synthesis và timing contrain (cái này làm em rất mù mờ). Đây là lần đầu em làm FPGA, nhưng em đã làm 1 project ASIC bằng tool của synopsys thì trong đầu em nghĩ là, chỉ có trong ASIC mới làm timing constrain rồi chỉnh contrains cho phù hợp để fix setup,hold time , còn trong FPGA thì phần timing ,tools sẽ tự tính cho mình và offer khoảng tần số hoạt động, ??? Liệu suy nghĩ của em có đúng không ạ, Mong anh giải thích hộ em dù có thể những câu hỏi của em hơi ngớ ngẩn, hix
    Giờ em muốn simulation cái code em vừa viết cho đúng đã, sau đó em đinh tìm hiểu cách tạo ram, load vào FPGA, sau đó mới đến tạo tín hiệu, kiểm tra,...
    Em rất muốn tìm hiểu về cái này, rất mong các anh giúp đỡ và sửa sai về hướng làm và cách làm cho em, em cảm ơn rất nhiều ! @@

    Leave a comment:


  • jefflieu
    replied
    Nguyên văn bởi nhandt3 Xem bài viết
    Chào tất cả các anh, em đang muốn học và đang làm bộ lọc fir trên fpga theo chuẩn thiết kế của zipcore anh đưa lên, cho em hỏi các thông số USE_SATURATE và USE_OPTZERO dùng để làm gì, em đã code và mô phỏng bằng modelsim xong(em code bằng verilog dùng systolic array), em muốn hỏi, khi nạp vào kit FPGA thì làm sao kiểm tra đc là nó đúng, làm sao để có đầu vào của bộ lọc này, @@ em hơi mù mờ cái này, mong các anh quay lại giúp em ! em cám ơn nhiều .
    Good !!!
    Bạn mô phỏng như thế nào? Test pattern của bạn là gì?
    Bạn synthesis như thế nào? Timing constraint của bạn là gì?
    Bạn có board mạch có ADC ko? Bạn cần signal generator nữa. Bạn có thể tạo signal vào và capture signal ra rồi phân tích phổ bằng Matlab.

    Leave a comment:


  • nhandt3
    replied
    Chào tất cả các anh, em đang muốn học và đang làm bộ lọc fir trên fpga theo chuẩn thiết kế của zipcore anh đưa lên, cho em hỏi các thông số USE_SATURATE và USE_OPTZERO dùng để làm gì, em đã code và mô phỏng bằng modelsim xong(em code bằng verilog dùng systolic array), em muốn hỏi, khi nạp vào kit FPGA thì làm sao kiểm tra đc là nó đúng, làm sao để có đầu vào của bộ lọc này, @@ em hơi mù mờ cái này, mong các anh quay lại giúp em ! em cám ơn nhiều .

    Leave a comment:


  • binhdtvt44
    replied
    bạn muốn xem cách đổi từ số thực sang dạng fix thì bạn có thể liên lạc với mình qua gmail: dangbinhhvktqs44@gmail.com
    hj . chúc bạn thành công

    Leave a comment:


  • binhdtvt44
    replied
    bạn dùng FDA tool của Matlab thì sau khi nhập các thông số (pp thiết kế : window,....; bộ lọc dải thông , dải chặn, hay thông thấp , thông cao ...., tương ứng sẽ có thông số cho từng loại , rồi bậc của bộ lọc ...) sau đó ban design bộ lọc đó => kết quả thu đc sẽ là các đáp ứng xung ở dạng số thực chứ !
    xong bạn muốn chuyển số đó ở dạng nhị phân thì phải chuyển nó về định dạng số thực dấu phẩy tĩnh , hoặc số thực dấu phẩy động.
    m cũng đang làm đề tài NCKH về thiết kế bộ lọc FIR , mình thiết kế bộ lọc sắp xong rồi (mình viết code bằng VHDL , dùng thuật toán DA ). nếu bạn muốn hỏi gì thì qua Gmail của mình nhé : dangbinhhvktqs44@gmail.com

    Leave a comment:


  • 1111060727
    replied
    Hỏi cách đưa các hệ số lọc từ Matlab

    Sau khi export hệ số lọc từ FDATool ra em thấy hệ số lọc gồm một dãy số dài dạng nhị phân.
    Mà đầu vào bộ lọc của em chỉ là 14 bit thì bằng cách nào em đưa được các hệ số lọc đó vào
    chuơng trình code được ạ?.Anh chị nào chỉ em với.

    Leave a comment:


  • tonyvandinh
    replied
    Nguyên văn bởi ohmygodntt Xem bài viết
    Các anh có thể mô tả tổng quát quá trình thiết kế bộ lọc IIR bằng mã giả ko ạ? Vì em ko học matlab nên em khó hỉu quá . Các anh giúp em nha. Em cũng đang cần viết bằng C++. Tks mọi ng
    Bạn nên mở thread mới cho câu hỏi này. Thread này chỉ bàn về FIR. Xin đừng đi lạc đề. Cám ơn.

    Leave a comment:


  • ohmygodntt
    replied
    Các anh có thể mô tả tổng quát quá trình thiết kế bộ lọc IIR bằng mã giả ko ạ? Vì em ko học matlab nên em khó hỉu quá . Các anh giúp em nha. Em cũng đang cần viết bằng C++. Tks mọi ng

    Leave a comment:

Về tác giả

Collapse

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

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

Collapse

Đang tải...
X