Để hướng tới các project to hơn, em xin lập threat mới (theo sự động viên của bác Tony). Nếu bạn nào quan tâm xin mời tham gia. Rất mong nhận được ý kiến của mọi người
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
-
Tiêu chuẩn của thiết kế Generic Ultra-speed FIR Filter
Em xin lấy tiêu chuẩn thiết kế của zipcores http://www.zipcores.com/generic-ultra-speed-fir-filter.html như sau:
General Description
FIR filter designed for very high sample rate applications. Organized as a systolic array, the filter is modular and scalable, permitting the user to specify large order filters without compromising maximum attainable clock-speed. The design is fully generic, with configurable coefficients, data width and number of taps.
Key Design Features
- Systolic array for speed and scalability
- Configurable coefficients
- Configurable data width
- Configurable number of taps
- Symmetric arithmetic rounding
- Output saturation or wrap modes
- FPGA sample rates in excess of 550 MHz
-
Hi Cá Chep,
"Dự án nhỏ" của bạn với yêu cầu trên thật ra không nhỏ tí nào. Mình xin đưa ra một vài chỉ tiêu cơ bản về bộ lọc FIR nha:
- Độ rộng của ngỏ vào có thể cài đặt theo người sử dụng (dùng parameter) tối đa là 32 bit (cái này tùy bạn thôi)
- Độ rộng của ngõ ra có thể cài đặt theo người sử dụng + có thể làm tròn lên, xuống, không làm tròn hay độ rộng lớn nhất (Full)
- Bậc của bộ lọc tối đa là 1024.
- Có thể tùy chọn dùng Register hay dùng RAM trong cấu trúc phần cứng (Cái này có thể tham khảo)
- Có khả năng tối ưu cấu trúc dựa vào sự chên lệch giữa tốc độ mẫu và tốc độ cung cấp cho IP (ví dụ tốc độ clock gấp 3 lần tốc độ lấy mẫu)
- Có khả năng tối ưu theo thông số bộ lọc: đối xứng, lọc 1/k băng thông
- Có khả năng nạp lại hệ số (hiện tại cái này thì chưa cần thiết)
- Tần số lấy mẫu tối đa là 27MHz. Còn tần số hoạt động của IP thì tùy bạn có thể là 100 - 200MHz
- Khi nào làm xong cái đó thì hãy nghĩ đến xử lí đa kênh
Những điều kiện trên chỉ mang tính tham khảo bạn có thể chọn để làm nha. Chúc bạn thành công
.^_^.
Comment
-
Tôi cũng xin đề nghị là chưa nên làm cách thức "systolic array" ngay từ đầu vì nó sẽ giới hạn vô một cấu trúc riêng biệt cho tốc độ mà thôi. Những tiêu chuẩn khác có thể giữ như trên để mọi người cùng tham khảo về lợi hại của mỗi tiêu chuẩn.
Mặc dù project này có thể làm bằng một người nhưng tôi xin mọi người cùng đóng góp để thiết kế. Có làm sai mới học hỏi được nhiều. Ăn thua là ở tinh thần cầu tiến.
Xin Chào
Comment
-
Nguyên văn bởi tonyvandinh Xem bài viết
Mặc dù project này có thể làm bằng một người nhưng tôi xin mọi người cùng đóng góp để thiết kế. Có làm sai mới học hỏi được nhiều. Ăn thua là ở tinh thần cầu tiến.
Mong mọi người tiếp tục cho ý kiến ạ!!!
Comment
-
Design space nên dịch là gì nhỉ?
Như bạn danbeo85 đã đề ra: design space khá là rộng ... bạn cá chép nên hiểu khá khá phần lý thuyết về FIR trước rồi tiến hành HDL design.
Bạn danbeo85 có đề cập:
- Có khả năng tối ưu theo thông số bộ lọc: đối xứng, lọc 1/k băng thông
....
- Tần số lấy mẫu tối đa là 27MHz. Còn tần số hoạt động của IP thì tùy bạn có thể là 100 - 200MHz
- Khi nào làm xong cái đó thì hãy nghĩ đến xử lí đa kênh
Cho mình hỏi "lọc 1/k băng thông" nghĩa là gì? ... tại sao tần số lấy mẫu tối đa là 27MHz? ... còn xử lý đa kênh nghĩa là gì? ... có phải polyphase ko?
Thanks.
Comment
-
Hi, jefflieu
Mình xin giải nghĩa một số từ trên:
- 1/k băng thông là sai. Băng thông bằng 1/k fs/2 thì đúng hơn. Lấy một ví dụ nếu bạn dùng một bộ lọc FIR thông thấp lấy 1/2 của fs/2, bạn sẽ có một tập hợp các hệ số của bộ lọc mà trong đó sẽ có giá trị 0 được lặp lại theo một quy luật. Mà trong tính toán thì chúng ta không cần lưu những hệ số này vì nó không cần thiết (trong trường hợp không cần nạp lại các hệ số khi hệ thống đang chạy).
- Mình lấy tín hiệu mẫu cao nhất là 27MHz chỉ là ngẫu nhiên (random) thôi không có gì hết
- Còn xử lí đa kênh có nghĩa là do cấu trúc FIR của bạn có thể xử lí nhiều tin hiệu ngõ vào liên tục (và các tín hệu này cần dùng chung một tập hợp hệ số bộ lọc). Bạn có thể tham khảo chức năng này trong FIR IP của Altera và Xilinx.
Mình hi vọng câu trả lời này sẽ làm rõ nghĩa thêm yêu cầu của đề tài.
,^_^.
Comment
-
Như bạn danbeo đã nêu ra, rất rất nhiều option cần phải để tâm khi thiết kế.
Theo mình thấy specifications quan trọng nhất của bô lọc FIR:
- Độ rộng của tín hiệu và các hệ số vào phải là parameter nghĩa là re-configurable. Điều này ảnh hưởng trực tiếp đến khả năng của bộ lọc.
Các yếu tố còn lại:
- Bậc của FIR : mình nghĩ bạn có thể cố định cho nó trước rồi sau này cải tiến cho nó configurable.
Có thể bắt đầu bằng 8-tap, rồi phát triển lên.
- Độ rộng của ngõ ra, đơn giản nhất là Full-precision, không bỏ bớt bit nào hết.
- Chênh lệch giữa tốc độ lấy mẫu và tốc độ của IP. Để đơn giản hóa bạn có thể bắt đầu bằng tốc độ lấy mẫu = tốc độ của mạch
Về cấu trúc của mạch FIR, mình search trên mạng thì thấy có 3 dạng cơ bản sau (và rất nhiều dạng phức tạp từ các bài báo khoa học khác)
Comment
-
Bộ lọc FIR 8 taps
@cachep, bạn có ý định gì về FIR chưa? Thôi để mình gồng mình lên làm mẫu trước nhé.
1) 8 TAPS - có thể đổi được
2) Độ rộng (8 bit integer, có thể đổi được)
3) Coefficient - Truyền từ ngoài vô (programmable)
4) Register base cho shift registers.
Đính kèm là systemC model với test bench. Mô hình này sẽ nhận 1 sample và cho ra 1 sample cho mỗi clock. Nhân của FIR là untime model. Tùy theo tiêu chuẩn, nhân nên đổi ra time model với cấu trúc chỉ tiêu.
Các bạn có thể theo cái link dưới đây để lấy chỉ dẫn thêm về systemC.
http://www.dientuvietnam.net/forums/...729#post253729
Chúc các bạn nghiên cứu vui vẻ và đóng góp.
TonyAttached FilesLast edited by tonyvandinh; 16-04-2010, 04:55.
Comment
-
Nguyên văn bởi tonyvandinh Xem bài viết@cachep, bạn có ý định gì về FIR chưa? Thôi để mình gồng mình lên làm mẫu trước nhé.
1) 8 TAPS - có thể đổi được
2) Độ rộng (8 bit integer, có thể đổi được)
3) Coefficient - Truyền từ ngoài vô (programmable)
4) Register base cho shift registers.
Đính kèm là systemC model với test bench. Mô hình này sẽ nhận 1 sample và cho ra 1 sample cho mỗi clock. Nhân của FIR là untime model. Tùy theo tiêu chuẩn, nhân nên đổi ra time model với cấu trúc chỉ tiêu.
Các bạn có thể theo cái link dưới đây để lấy chỉ dẫn thêm về systemC.
http://www.dientuvietnam.net/forums/...729#post253729
Chúc các bạn nghiên cứu vui vẻ và đóng góp.
Tony
bác Tony ở em mới chỉ ngâm cứu vhdl thôi. bác có thể viết nó với ngôn ngữ vhdl dc k ạ?
thanks bác trước!
Comment
-
Nguyên văn bởi robocon2011 Xem bài viếtbác Tony ở em mới chỉ ngâm cứu vhdl thôi. bác có thể viết nó với ngôn ngữ vhdl dc k ạ?
thanks bác trước!Không có việc gì khó,
chỉ sợ lòng không bền!
Comment
-
Một vài góp ý vế FIR filter implementation:
- Thông thường thì bạn cần analyze filter requirements (ripple characteristics, response) để derive number of taps và filter data width cần thiết.
- Hardware platform: design sẽ chạy trên FPGA nào, và realistically, maximum attainable / target clock rate của design là bao nhiêu?
- Number of taps, output data rate, và design clock rate ảnh hưởng đến cấu trúc của filter --> cần dùng maximum number of multipliers hoặc có thể share resource? Design clock rate x number of multipliers cần phải > output data rate x number of taps. (Chẳng hạn như resampling FIR filter, input data rate không quan trọng, chỉ ăn thua ở output data rate).
- Với một design thật sự, scalability rất quan trọng, chẳng hạn như dùng generate để tùy ý thay đổi number of multipliers từ 1 đến N. Support data / filter data width khác nhau dễ dàng thực hiện hơn, như dùng parameters đã được đề cập đến, hoặc dùng unconstrained ports.
- Trước tiên bạn nên tạo ra một fixed-point mathematical model với Matlab hoặc Numerical Python. Dù FIR filter hơi đơn giản một chút, nhưng bạn sẽ verify design của bạn như thế nào? Bạn nên đạt được bit-exact match giữa model và simulation/hardware output. Với algorithm khó hơn một chút như Cholesky decomposition, QR decomposition hoặc SVD decomposition, bạn không thể bỏ qua phần modeling được.
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Năm mới dientuvietnam.netbởi mèomướpDạ năm mới cháu xin kính chúc ông, bà, cô, dì, chú, bác, anh, chị, em, các bạn, các cháu... trong diễn đàn sức khỏe dồi dào, gặp nhìu may mắn và thành công...
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 05:42 -
-
Trả lời cho Năm mới dientuvietnam.netbởi nhathung1101Chúc cả nhà ăn no mặc ấm, quần lúc có lúc không.
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 00:02 -
-
Trả lời cho Năm mới dientuvietnam.netbởi vandong1111Năm mới 2025 cháu chúc các chú, các bác mạnh khỏe, vui vẻ, gặp nhiều may mắn.
-
Channel: Tâm tình dân kỹ thuật
29-01-2025, 20:59 -
-
Trả lời cho tìm mua đồng hồ vạn năngbởi bqvietNói một cách xây dựng thì kiểu đồng hồ kiêm kẹp dòng NJTY3266 mà bạn Mèo đề cập là đúng nhu cầu người hỏi rồi. Một số cửa hàng bán trên 200ng, vài sàn thương mại điện tử bán dưới - thế là đúng nhu cầu về giá. Nếu khéo săn...
-
Channel: Điện tử dành cho người mới bắt đầu
27-01-2025, 20:02 -
-
Trả lời cho tìm mua đồng hồ vạn năngbởi nhathung1101Đa năng còn chưa dùng hết, nếu không biết cách dùng.
200k thì hơi khó mua, nhưng 50k chắc là có. Cứ bảo bán cho tôi cái đồng hồ hỏng.-
Channel: Điện tử dành cho người mới bắt đầu
26-01-2025, 23:21 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi nhathung1101Lão Đinh Vặn học giải phương trình hồi đi trẻ mà. Mẫu giáo học lập trình AI rồi. Lớp lão ấy gần lớp em nên em biết....
-
Channel: Điện tử công suất
26-01-2025, 23:11 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nhathung1101Vậy chú đã hỏi hãng SIEMEN chưa? Tại sao cái PLC S7-200 cổ lỗ mà họ vẫn thiết kế riêng cho thị trường TQ với chữ SMART? Thậm chí phần mềm riêng để đọc file ngu.smart?
Vấn đề không còn là công nghệ "cốt lõi" nữa, mà là giá thành quyết định. Ham rẻ là trả giá mà....-
Channel: Điện tử công suất
26-01-2025, 23:01 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi vi van phamĐồng ý với Bqv.
50 năm làm nghề, tôi đã chứng kiến 3 lần máy x quang mới nhập từ nước ngoài về bị lỗi.
- Lần thứ 1 máy xq của Pháp được ks Pháp lằp đặt bị lỗi 1 con didode, đưa cho ks Pháp con didode khác cùng mã số, ông...-
Channel: Điện tử công suất
26-01-2025, 08:09 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi mèomướpDạ chú dinh... muốn sửa lỗi cho hãng thì chú cứ gửi những hình ảnh, video cho họ đi ạ, chú có thể tìm thông tin của những lãnh đạo bên ấy để gửi thì sẽ hiệu quả hơn ạ. Về tổng quan thì họ sẽ ko phản hồi rõ ràng đâu ạ, vì nhận...
-
Channel: Điện tử công suất
26-01-2025, 06:19 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi bqvietCuối năm bàn thêm chuyện to hơn chút, đấy là 2 vụ rơi đám 737 đời mới và trục trặc ở cả tá chiếc khác. Ngay cả những thứ tưởng như cao siêu sang xịn thật thì vẫn có thể gặp trường hợp oái oăm như thường. Từ hồi đó bqv đã thấy khó hiểu làm sao lại đẻ ra đám MCAS quái thai đến thế được. Rồi...
-
Channel: Điện tử công suất
24-01-2025, 19:40 -
Comment