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 Trình điều khiển bước rời rạcbởi mèomướpDạ nếu chú đã viết được chương trình cho vđk thì thêm 1 chương trình con chạy động cơ bước chỉ đơn giản là copy phát. Về phần cứng thì vài con cách ly quang, vài con mosfet thôi ạ. thực sự là dễ dàng như bài tập bình thường của sinh viên thôi ạ...
-
Channel: Máy công cụ
Hôm qua, 12:55 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi Minhdai95vâng mình cảm ơn mn đã góp ý
-
Channel: Điện tử công suất
Hôm qua, 11:30 -
-
bởi tom22Xin chào
Tôi có một dự án trong đó một động cơ bước tích hợp được điều khiển bởi một bộ vi điều khiển.
Nhưng tôi thực sự không thích trả tiền cho trình điều khiển bước, khi tôi có một bộ vi điều khiển có khả năng thực...-
Channel: Máy công cụ
Hôm qua, 10:54 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi mèomướpDạ chú chủ thớt có thời gian và đam mê thì cứ từ từ ngâm cứu đi ạ đừng nghe chú Chú bq... dọa mà sợ ạ. Cái nguồn nhìn cũng lởm có khi hông bằng cái máy hàn tàu của chị hàng xóm hôm nọ tháo ra sửa với chú thợ thông ống nước suốt đêm mới xong. Chú ý an toàn xíu là được ạ...
-
Channel: Điện tử công suất
05-01-2025, 15:40 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi bqvietBộ nguồn xung ở tầm công suất 2700W này, gần 3 ký, không bao giờ đơn giản để mà sửa ngay cả đối với người có kinh nghiệm chứ đừng nói người không chuyên. Đám linh kiện công suất không tự nhiên cháy mà phải xuất phát từ nguyên nhân...
-
Channel: Điện tử công suất
04-01-2025, 22:09 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi mèomướpDạ chú kiểm tra đi ốt đầu vào, ra nữa ạ. Về phần kiểm tra dao động chú hỏi chị google ấy ạ, có nhìu cô chú đã hướng dẫn rồi ạ...
-
Channel: Điện tử công suất
04-01-2025, 16:53 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi Minhdai95mình đã kiểm tra phần công suất thấy hỏng cả 4 con IGBT mà mình muốn kiểm tra phần dao động và hồi tiếp khi chưa cấp điện cho mạch thì có cách nào không b, mình không phải dân trong nghề lên chưa có kinh nghiệm sửa. Cảm ơn b
-
Channel: Điện tử công suất
04-01-2025, 14:27 -
-
Trả lời cho Sửa bộ nguồn DC 60V 45Abởi mèomướpDạ chú nhắm phần công suất dễ kiểm tra và hay hư hỏng nhất trước ạ. Rồi đến phần dao động nguồn, hồi tiếp...
-
Channel: Điện tử công suất
04-01-2025, 11:42 -
-
bởi Minhdai95mọi người đã ai sửa bộ nguồn này chưa ạ, cho e xin ít kinh nghiệm để sửa bộ nguồn. Em cảm ơn...
-
Channel: Điện tử công suất
04-01-2025, 11:22 -
-
Trả lời cho Thắc mắc về hạ áp cho adapter laptopbởi nhathung1101
-
Channel: Điện tử dành cho người mới bắt đầu
31-12-2024, 17:39 -
Comment