Mấy bác giúp em với, em tìm hiểu về cách tạo hàm tính Sin, Cos cho FPGAs mà chưa biết cách làm, được biết là phương pháp CORDIC dùng để tính mà em chưa hiểu lắm, có bác nào biết thì chỉ em với, cám ơn mấy bác nhiều!
Thông báo
Collapse
No announcement yet.
Tạo hàm tính Sin, Cos
Collapse
X
-
Nguyên văn bởi xuantung Xem bài viếtchắc là bạn đang dùng phần mềm ise à. những việc tính toán loằng ngoằng như vậy bạn nên để mấy chú vi điều khiển làm. ví dụ như bạn có thể dùng PicoBlaze viết bàng ASEM hoặc bạn dùng MicroBlaze viết bằng C...
Bạn có thử dùng CORDIC core chưa? Chỉ pulse new data signal khi đưa data vào, và ready sẽ go high khi sine/cosine đã được tính xong. Rất gọn.
Điểm mạnh của FPGA chính là việc tính toán. Xu hướng hiện thời là sử dụng FPGA để thay thế embedded processor (cỡ PowerPC 7448 chứ không phải soft processor như MicroBlaze) trong các việc tính toán, chẳng hạn như FFT.
Comment
-
CORDIC core là các lõi có trong thư viện của ISE. thực chất của quá trình viết trên Micro
là sử dụng các hàm API. các hàm này cũng được bọn nó viết và tối ưu rồi có khác nhau nhiều đâu????Lại nói về PPC thì nó cũng là nõi nhưng là lõi cứng tức là nó đã nhũng sẵn trong FPGA. vậy nó khác nhau ở chỗ nào bạn nhỉ. bạn có thể phân tích rõ được không? còn muốn tạo ra sóng sine và cosine thì dùng DDS trong System Generator có luôn rồi bạn ạ. thực ra thì System cũng là lấy các lõi trong core generator ra.bạn có thể phân tích rõ hơn một chút để cho mọi người hiểu???
Comment
-
Em mới làm quen với FPGAs chưa được lâu nên còn non lắm, tại em đang làm Space Vector Modulation nên cần phần tính Cos, Sin cho góc alpha, dùng phương pháp tra bảng thông thường không được, vì góc alpha biến thiên theo thời gian mà không tăng theo bậc, có một phương pháp xây dựng hàm lượng giác như link dưới đây, mấy bác xem giúp em với. Cám ơn mấy bác nhiều!
http://en.wikipedia.org/wiki/CORDIC
Comment
-
Nếu chúng ta đưa alpha (theta) vào, một clock cycle sau chúng ta sẽ nhận được sin(theta) và/hoặc cos(theta) như thí dụ bên dưới dùng Xilinx look-up core, nên alpha (theta) có biến hay không biến cũng không thành vấn đề ở đây.
Core đầu vào theta = 8-bit, nên theta = 0 = 0 radian, và theta = 128 = pi. Đầu ra = 16-bit, nên 16384 = 1.0, và -16384 = -1.0. Trong trường hợp này chúng ta dùng core cho tiện, nhưng thực chất nó chỉ là một look-up table, không nhất thiết phải dùng coregen.
Comment
-
Còn muốn tạo ra sóng sine và cosine thì dùng DDS trong System Generator có luôn rồi bạn ạ. bạn có thể phân tích rõ hơn một chút để cho mọi người hiểu???
DDS tạo sóng dựa theo output frequency và sampling frequency. Như thí dụ bên dưới, sampling clock = 100 MHz, và output frequency = 25 MHz, approximation của sóng 25 MHz lặp đi lặp lại mỗi 4 clock cycles (100 MHz).
Tìm sin/cos đã có thí dụ ở post trên.
Lại nói về PPC thì nó cũng là nõi nhưng là lõi cứng tức là nó đã nhũng sẵn trong FPGA. vậy nó khác nhau ở chỗ nào bạn nhỉ. bạn có thể phân tích rõ được không?
Một thí dụ đơn giản: trong một clock cycle, MicroBlaze có thể làm được một phép tính nhân, và cũng trong một clock cycle, một DSP48 slice (trên Virtex 4/5) hoặc built-in multiplier (trên Virtex-II) làm được một phép tính nhân. Một FPGA như Virtex-4 SX55 có 512 DSP48 slice ... bạn có thể nhúng bao nhiêu MicroBlaze processor vào một FPGA?
MicroBlaze cũng có những điểm mạnh của nó, nhưng computation không phải là một trong số đó.
Comment
-
Mấy bác ơi, thế làm thế nào khai thác được Cor đó hả mấy bác, mấy bác giúp em với, em toàn dùng ISE để viết code VHDL không thôi, em chưa biết cách khai thác các lõi có sẵn được. Người ta hướng dẫn sử dụng thuật giải CORDIC để viết theo cách dịch và cộng mà em chưa hiểu. Em loay hoay hoài mà cũng không xong nữa, mong mấy bác giúp em. Đúng là khó cho mấy bác thật, vì em còn kém quá, chưa hiểu được nhiều, mong mấy bác thông cảm. Cám ơn mấy bác nhiều!
Comment
-
Mình chưa làm với Core nhưng chưa làm nhiều. bạn nemesis21 có thể viết tutorial hướng dẫn làm core được không?
Còn về phần tranh luận ở trên có thể mình và bạn chưa hiểu ý định của nhau.
Phải công nhận là các PPC mà bạn đưa ra thực sự mạnh. mình chưa được sờ đến nó nên chưa biết nó mạnh đến cỡ nào thôi. mình có mấy bo FPGA nên mới chỉ sử dụng mấy con vdk này thôi. chưa có điều kiện tiếp cận như bạn.
tuy nhiên cũng phải nói rằng Micro,PPC là vi điều khiển mềm 32 bit nhúng trong FPGA. nó cho phép tạo nhiều ứng dụng nhúng. các lệnh nhân nó sử dụng đâu phải chỉ có một mà có thể sử dụng tất cả các bộ nhân cứng có sẵn trong FPGA đấy chư.thực chất nó cũng gọi các core generator mà.mà ở đây nó chính là CORDIC. tuy nhiên ở đây cách truyền tham số của nó khác thôi.
mìng đang nghiên cứu, cách xây dựng hệ thống nhúng trên FPGA.cụ thể là nhồi lõi kernel cho các vdk 32 bít này.bạn có kinh nghiệm về mảng này có thể share cho mình một chút?
Comment
-
Tutorial thì Xilinx có rồi, phần CoreGen ở trang 35-37:
http://www.xilinx.com/direct/ise10_t...s/ise10tut.pdf
Comment
-
Nguyên văn bởi xuantung Xem bài viếtMình chưa làm với Core nhưng chưa làm nhiều. bạn nemesis21 có thể viết tutorial hướng dẫn làm core được không?
Còn về phần tranh luận ở trên có thể mình và bạn chưa hiểu ý định của nhau.
Phải công nhận là các PPC mà bạn đưa ra thực sự mạnh. mình chưa được sờ đến nó nên chưa biết nó mạnh đến cỡ nào thôi. mình có mấy bo FPGA nên mới chỉ sử dụng mấy con vdk này thôi. chưa có điều kiện tiếp cận như bạn.
tuy nhiên cũng phải nói rằng Micro,PPC là vi điều khiển mềm 32 bit nhúng trong FPGA. nó cho phép tạo nhiều ứng dụng nhúng. các lệnh nhân nó sử dụng đâu phải chỉ có một mà có thể sử dụng tất cả các bộ nhân cứng có sẵn trong FPGA đấy chư.thực chất nó cũng gọi các core generator mà.mà ở đây nó chính là CORDIC. tuy nhiên ở đây cách truyền tham số của nó khác thôi.
mìng đang nghiên cứu, cách xây dựng hệ thống nhúng trên FPGA.cụ thể là nhồi lõi kernel cho các vdk 32 bít này.bạn có kinh nghiệm về mảng này có thể share cho mình một chút?Nguyên văn bởi xuantung Xem bài viếtnhững việc tính toán loằng ngoằng như vậy bạn nên để mấy chú vi điều khiển làm
Mình cũng dùng viết embedded code (chủ yếu để chuyển tiếp data) nhưng chưa có dịp dùng embedded processor trên FPGA (hơi yếu ).
Hình trên là quad-PPC VME board với 2 PMC sites (mỗi PMC thường có 2 FPGA).
Comment
-
Con Microblaze nhúng xuống FPGA thực ra cũng là một cái thiết kế từ VHDL hoặc gì gì đấy,nó cũng có ALU,CU...v..v.Control path và datapath.Cái tạo ra sự khác biệt về tốc độ giữa Microblaze và PPC là thằng Microblze sử dụng các LUT của FPGA để implement,đương nhiên tốc độ làm sao bằng con fix-core PPC được.Microblaze chạy 50Mhz đã là khỏe rồi,còn PPC thì chạy đc 400Mhz cơ mà.
Core generator thì mình đã dùng khá nhiều,và trong đấy có nhiều IP thực sự mạnh,bạn cần cái gì thì đọc datasheet của nó thôi,cũng khá đầy đủ.Mình đã làm thành công 2DFFT từ core 1DFFT của xilinx rồi.Và cũng chỉ đọc datasheet của nó thôi.Đúng là làm FPGA thì phải làm nhiều mới biết đc^^.
Chúc bạn thành công với hệ thống nhúng.mình đang toàn làm VHDL
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Hỏi về test hipot cao ápbởi nguyendinhvanCách nghĩ của bạn là theo duy tâm thôi. Còn trong công việc thì phải theo duy lý.
Bạn vào goggle và gõ từ : tiêu chuẩn an toàn cách điện.
Bạn sẽ thấy vô vàn các quy định, VN cũng có , quốc tế cũng có. Mỗi vùng , mỗi khu vực,...-
Channel: Điện tử dành cho người mới bắt đầu
02-11-2024, 20:04 -
-
bởi lamvu0677Chào mọi người, ai làm về điện, đặc biệt biến áp xung, mâý con nho nhỏ gắn vào mạch nguồn, cho e hỏi tí ą, e cũng làm trong ty về biển áp thì đo kiểm thành phẩm sẽ kiểm cao áp, tức là kiểm xem có phóng điện giữa các cuộn dây với...
-
Channel: Điện tử dành cho người mới bắt đầu
01-11-2024, 21:05 -
-
bởi AaaabbbbbEm chào các anh chị ,cô chú . Em đang có 1 đề tài: Mô phỏng điều khiển động cơ 1 chiều và bộ điều khiển điện áp tự động (AVR) sử dụng MATLAB/Simulink và Arduino . Anh chị có thế giải thích hoặc định hướng giúp em với được không ạ . Em xin cảm ơn !!...
-
Channel: Vi điều khiển AVR
30-10-2024, 16:38 -
-
bởi 2embeyeuem mới nhập môn, bác nào có sơ đồ của mạch này và cách cắm mạch trên panel cho em xin với, em cảm ơn ạ
-
Channel: Điện tử dành cho người mới bắt đầu
30-10-2024, 15:52 -
-
bởi dqt21091997Hi mọi người,
Team mình hiện là đối tác phân phối cho 1 dịch vụ Proxy US chuẩn bị mở mang tên Proxy Compass. Mọi người có thể trải nghiệm ở đây: https://proxycompass.com/vi/free-trial/
Điểm mạnh của Proxy Compass là:
- 50 địa chỉ IP proxy
...-
Channel: Tổng quan về ngành viễn thông
30-10-2024, 14:46 -
-
Trả lời cho Thắc mắc về kiến thức điện xoay chiềubởi SteinsKMình nhớ là do điện AC không có chia cực cố định như DC, thêm vào đó thì ổ điện loại mà 2 lỗ thì cũng không có phân biệt chiều cắm, thành ra mình cắm chiều nào cũng được. Đây là em hiểu như vậy, có bác nào có ý kiến khác không ạ....
-
Channel: Điện tử dành cho người mới bắt đầu
30-10-2024, 09:57 -
-
bởi tivungvechào mọi người, em là sinh viên mới tìm hiểu về điện em có thắc mắc là tại sao điện AC ở nhà dùng có phích cắm khi cắm vào ổ điện thì cắm chiều nào cũng được, mà em đọc trên mạng thấy điện AC có dây trung tính và dây pha mà nhỉ...
-
Channel: Điện tử dành cho người mới bắt đầu
27-10-2024, 14:25 -
-
Trả lời cho ccs - 1 nút nhấn điều khiển 2 led - cần giúp ahbởi Truong2005Cám ơn nhiều! Code đẫ chạy
-
Channel: từ PIC tới dsPIC
26-10-2024, 21:21 -
Comment