Chào các bạn,
Xin update trước tình hình project của mình : các bước lấy mẫu và xuất dữ liệu qua các ngõ nối tiếp (SPI) của ADC,DAC đã tạm ok.
Bây giờ mình lại phải xử lý một số dữ liệu, trong đó có dùng hàm Arcsin/cos (12bit).
Lúc đầu mình khờ dại định tính xấp xỉ nó bằng Taylor rồi code, nhưng mà cuối cùng ko ổn vì Taylor hàm arcsin(x) muốn đủ chính xác cho project của mình phải cần tới cỡ x^15 lận. Bó chiếu
Rồi mình chuyển qua tính bằng các hàm logic. Ngõ ra 12 bit, ngõ vào 12 bit, thì mỗi bit ngõ ra là 1 hàm logic của 12 ngõ vào. Mình đã thành công cách này, simulation VHDL mình viết rồi. Nhưng mà cách này tốn tài nguyên kinh khủng, 1 cái hàm hàm arcsin đã tốn hết 8% con FPGA. Làm cho vài hàm như vậy nó sẽ chiếm hết. Mà quan trọng nữa là cái hàm logic của mình trâu bò lắm, nó tính toán chắc mất thời gian.
Vậy giờ, mình đành phải dùng Memory để nạp sẵn bảng LUT, rồi cho FPGA địa chỉ và dò giá trị cho hàm arcsin. Câu hỏi mình thắc mắc hiện giờ là :
-Làm thế nào để nạp giá trị cho external Memory nhỉ ? Nạp thông qua các chân của FPGA hay là nó có mạch nạp riêng nhỉ ?
Xin update trước tình hình project của mình : các bước lấy mẫu và xuất dữ liệu qua các ngõ nối tiếp (SPI) của ADC,DAC đã tạm ok.
Bây giờ mình lại phải xử lý một số dữ liệu, trong đó có dùng hàm Arcsin/cos (12bit).
Lúc đầu mình khờ dại định tính xấp xỉ nó bằng Taylor rồi code, nhưng mà cuối cùng ko ổn vì Taylor hàm arcsin(x) muốn đủ chính xác cho project của mình phải cần tới cỡ x^15 lận. Bó chiếu
Rồi mình chuyển qua tính bằng các hàm logic. Ngõ ra 12 bit, ngõ vào 12 bit, thì mỗi bit ngõ ra là 1 hàm logic của 12 ngõ vào. Mình đã thành công cách này, simulation VHDL mình viết rồi. Nhưng mà cách này tốn tài nguyên kinh khủng, 1 cái hàm hàm arcsin đã tốn hết 8% con FPGA. Làm cho vài hàm như vậy nó sẽ chiếm hết. Mà quan trọng nữa là cái hàm logic của mình trâu bò lắm, nó tính toán chắc mất thời gian.
Vậy giờ, mình đành phải dùng Memory để nạp sẵn bảng LUT, rồi cho FPGA địa chỉ và dò giá trị cho hàm arcsin. Câu hỏi mình thắc mắc hiện giờ là :
-Làm thế nào để nạp giá trị cho external Memory nhỉ ? Nạp thông qua các chân của FPGA hay là nó có mạch nạp riêng nhỉ ?
Comment