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
-
bởi nguyendinhvanSau bao năm nghiên cứu cái dtvn. Tôi phát hiện công thức này. Các anh em xem đúng bao nhiêu phần trăm nhé !
Chập thì thay. Cháy thì tháo
Làm thì láo. Báo thì hay
May thì khoe. Rủi thì bỏ
Thành tích nhỏ. Báo thành to
Làm cho có. Báo chi li
Sai cả li. Báo...-
Channel: Tâm tình dân kỹ thuật
hôm nay, 00:35 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi yname11có chắc ko b, màn lcd phải có cao áp mới sáng, màn led thì ko có, ko có cáp chuyển đổi thì lắp thế nào đc ??...
-
Channel: Thiết bị điện tử cá nhân
Hôm qua, 22:31 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi mèomướpDạ ý chú là màn oled ấy ạ. Cùng chuẩn lvds cùng độ phân giải thì cắm được ạ. Còn nó mà khác thì hơi khó vì oled các điểm ảnh nó tự phát sáng chứ ko dùng đèn nền như lcd. Cháu chỉ biết đến vậy thôi ạ. Chú muốn nghịch phải tự tìm hiểu kỹ trước khi mua thôi, khó mà ông thợ nào tư vấn vụ này...
-
Channel: Thiết bị điện tử cá nhân
Hôm qua, 22:14 -
-
Trả lời cho Tự làm máy đo Cuộn cảmbởi bacthoHay đấy bạn ạ. Đây có thể hiểu là máy đo cuộn dây. Tiện đây xin cho hỏi bạn có hiểu rõ về máy nạp rôm pcb 45 của hãng thiên minh không giúp mình cách cài fw của nó với vì mình vừa được anh bạn cho nhưng lại không biết cài fw nên chưa dùng được. Nếu có thể thì bạn giúp mình với...
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 21:48 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi yname11màn của mình là LCD , giờ m muốn mua màn LED để thay thế (ko muốn dùng màn LCD nữa) , lên muốn hỏi xem có cáp chuyển đổi nào có thể cắm đc màn LED vào ko , tất nhiên phải có cùng số chân pin với màn cũ rồi . VD: màn cũ là lcd mỏng , 40 pin...
-
Channel: Thiết bị điện tử cá nhân
Hôm qua, 21:43 -
-
Trả lời cho các bạn giúp mình về file HEX với!!!bởi bacthoBạn vào trang phuclanshop.com ,tìm đến góc kỹ thuật. Tác giả vương khánh hưng nói rất rõ về điều bạn tìm...
-
Channel: Vi điều khiển họ 8051
Hôm qua, 21:21 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi mèomướpDạ màn hình lcd đều có thể lai cấy cho nhau được hết ạ. Các loại cáp, bo mạch chuyển đổi lvds rất nhìu, với dòng sony còn phải nhổ cả chip nhớ của main cũ đưa lên gỗ thì mới lắp sang máy khác đc, chưa kể các bệnh về màu... ngay cả...
-
Channel: Thiết bị điện tử cá nhân
Hôm qua, 20:43 -
-
Trả lời cho Xin hỏi về màn hình laptopbởi yname11Màn của e là LCD , e muốn thay thế bằng màn led thì có cáp chuyển đổi nào thực hiện đc việc đó ko nhỉ, nếu có bác mách e với....
-
Channel: Thiết bị điện tử cá nhân
Hôm qua, 16:34 -
-
bởi bqvietServo cuối cùng vẫn chỉ là điều chỉnh tốc độ và đọc phản hồi vị trí
Qua cổng song song LPT cổ
https://www.electronicsforu.com/elec...eed-controller
Qua cổng USB - xem thêm đám FT232RL-
Channel: Điện tử công nghiệp
22-11-2024, 15:56 -
Comment