witam,
Od pewnego czasu dość intensywnie zajmuję się tematyką FPGA, mam na koncie kilka udanych projektów, ale jak to bywa - szybko zaczyna rosnąć skala i złożoność z każdym kolejnym zleceniem.
"Bawię się" obecnie Spartan3e xc3s1600 - starter kit + microblaze.
(http://direct.xilinx.com/bvdocs/userguides/ug258.pdf)
Na dniach połączę ten układ ze swoim systemem opartym na ARM-7. (połączenie to na razie 16 adresów i 8bit danych).
Jako ciekawostkę mogę powiedzieć, że zrobiłem testy prędkości ARM-7 vs Microblaze.
Microblaze skompilowałem z "pełnym wypasem", tj. cache, FPU itd.
Napisałem prosty benchmark w C, zwykła pętla 1000000 razy, a w niej sinusy, tangensy, dzielenie floatów - totalna sieczka.
Wynik - ARM wykonał program 30 razy (!!) szybciej, mimo, że nie ma FPU, a benchmark opierał się głównie na Floatach.
Oba procki pracowały na takim samym zegarze. próbowałem modyfikować konfigurację microblaze, ale wynik jedynie się pogarszał.
To mnie troszkę wyleczyło z fascynacji soft-procesorami (na jakiś czas
)
Mam pytanie, być może ktoś będzie w stanie pomóc:,
na w/w płytce xilinxa jest też 64 MB DDR ram (32Mx16). Microblaze korzystał z niego bez problemu, ale ja chcę podpiąć ją pod ARM'a. Przydałby się tylko bardzo jakiś w miarę dobry i wygodny w użyciu kontroler (VHDL). Na stronie Xilinxa znalazłem "Memory Interface Generator" (IP do CoreGen). Wygenerowałem komponent, ale z tego co widzę, to dość sporo jescze trzeba robić poza nim.
Czy ktoś używał już pamięci DDR w swoich projektach? Będę wdzięczny za każdą pomoc, ew. dobry opis, a może gdzieś można znaleźć jakiś przykład wykorzystania komponentu generowanego przez "MIG'a"?
Idałem było by z jednej strony podpiąć DDR, a z drugiej mieć interface do "normalnej" szyny CPU. Ciekawi mnie też czy istnieje jakiś sposób, by użyć kontrolera, z którego korzysta microblaze?
Zrobiłem dzisiaj prosty komponent w VHDL generujący sygnały VGA. Narazie 640x480 8 kolorów. DDR byłby super jako VideoRAM, w zamian za pomoc mógłbym udostępnić to wraz z jakimiś funkcjami graficznymi w C, które będę pisał
OK, bo "troszkę" przydługi wyszedł ten post
Z góry dzięki za pomoc.
Od pewnego czasu dość intensywnie zajmuję się tematyką FPGA, mam na koncie kilka udanych projektów, ale jak to bywa - szybko zaczyna rosnąć skala i złożoność z każdym kolejnym zleceniem.
"Bawię się" obecnie Spartan3e xc3s1600 - starter kit + microblaze.
(http://direct.xilinx.com/bvdocs/userguides/ug258.pdf)
Na dniach połączę ten układ ze swoim systemem opartym na ARM-7. (połączenie to na razie 16 adresów i 8bit danych).
Jako ciekawostkę mogę powiedzieć, że zrobiłem testy prędkości ARM-7 vs Microblaze.
Microblaze skompilowałem z "pełnym wypasem", tj. cache, FPU itd.
Napisałem prosty benchmark w C, zwykła pętla 1000000 razy, a w niej sinusy, tangensy, dzielenie floatów - totalna sieczka.
Wynik - ARM wykonał program 30 razy (!!) szybciej, mimo, że nie ma FPU, a benchmark opierał się głównie na Floatach.
Oba procki pracowały na takim samym zegarze. próbowałem modyfikować konfigurację microblaze, ale wynik jedynie się pogarszał.
To mnie troszkę wyleczyło z fascynacji soft-procesorami (na jakiś czas
Mam pytanie, być może ktoś będzie w stanie pomóc:,
na w/w płytce xilinxa jest też 64 MB DDR ram (32Mx16). Microblaze korzystał z niego bez problemu, ale ja chcę podpiąć ją pod ARM'a. Przydałby się tylko bardzo jakiś w miarę dobry i wygodny w użyciu kontroler (VHDL). Na stronie Xilinxa znalazłem "Memory Interface Generator" (IP do CoreGen). Wygenerowałem komponent, ale z tego co widzę, to dość sporo jescze trzeba robić poza nim.
Czy ktoś używał już pamięci DDR w swoich projektach? Będę wdzięczny za każdą pomoc, ew. dobry opis, a może gdzieś można znaleźć jakiś przykład wykorzystania komponentu generowanego przez "MIG'a"?
Idałem było by z jednej strony podpiąć DDR, a z drugiej mieć interface do "normalnej" szyny CPU. Ciekawi mnie też czy istnieje jakiś sposób, by użyć kontrolera, z którego korzysta microblaze?
Zrobiłem dzisiaj prosty komponent w VHDL generujący sygnały VGA. Narazie 640x480 8 kolorów. DDR byłby super jako VideoRAM, w zamian za pomoc mógłbym udostępnić to wraz z jakimiś funkcjami graficznymi w C, które będę pisał
OK, bo "troszkę" przydługi wyszedł ten post