Aktywne Wpisy
ja #!$%@? jak ja kocham zycie wlasnie pije sobie drinka w domu, kon zwalony, najedzony pitcom z dagrasso. Nic mi wiecej nie potrzeba ogladam sobie rzeczy o silowni na youtube, kotek siedzi mi na kolanach. Przypominam kon zwalony wiec zero potrzeb zero testosteronu nie musze z nikim walczyc bo nie mam o co. Mam hajsy mam jedzenie i bezpieczenstwo i kon zwalony. Pozdrawiam
#pasta
#pasta
![KarmelowyJeremiasz - ja #!$%@? jak ja kocham zycie wlasnie pije sobie drinka w domu, ...](https://wykop.pl/cdn/c3201142/16a0b58480338a577eadcf40652c04526c7b91928680054b6f5804a8d88fad80,w150.jpg?author=KarmelowyJeremiasz&auth=a9de7a090a8cc73b8ccb8265b345c2a3)
![PozdroMleczny](https://wykop.pl/cdn/c0834752/315b0381de285ce1ccba2549d542ac61d12697acddf32188875328ec4da6c82a,q60.jpg)
PozdroMleczny +141
Problem rozwiązałem rozszerzając kod UART.vhd tak, aby przy dłuższym czasie trwania txIdle, nie przeskakiwało do kolejnego znaku. I fajnie, niby powinno działać.
Przy okazji nauczyłem się obsługiwać symulator ModelSim - jakie to fajne! Zdecydowanie potrzebne narzędzie przy testowaniu, dodatkowo pozwala wykryć pewne błędy już w działającym programie, które kompilator przepuści (co mu się dziwić).
Po modyfikacjach mój przebieg wygląda tak jak na załączonym obrazku. Bardzo zgrabnie, że tak powiem :)
Ale niestety na tym kończy się radość, bo pomimo sensownego przebiegu w symulatorze, w rzeczywistości.. Otrzymywany napis ma podwojoną pierwszą literkę, tj. "HHello darkness my old friend!".
I ni kij wiadomo dlaczego... Teraz by dopiero się przydał oscyloskop. Ktoś ma jakieś pomysły?
Kod:
UART.vhd: http://pastebin.com/bmkV2brB
TX.vhd: http://pastebin.com/v4cAs1wc
Spam @syn_admina
#visherdev przede wszystkim - zapraszam
#fpga #synteza #maximator #vhdl #altera #elektronika
To wygląda na coś w rodzaju race condition. Bardzo dziwne, że problem dotyczył tylko drugiego znaku, skoro nie jest on traktowany w żaden sposób inaczej niż trzeci, czwarty, itd.
Z pierwszym już trochę inaczej ale i tak podejrzewam, że jest to związane z zachowaniem z przed "poprawki".
Tak daleko w FPGA nigdy nie
Komentarz usunięty przez autora
A "instance not found" wygląda tak jakbyś próbował uruchomić SignalTap bez zsyntetyzowania jego funkcjonalności w hardware. (signaltap potrzebuje trochę LE dla siebie). Spróbuj to odpalić według jakiegoś tutoriala.
Teraz tylko muszę się dowiedzieć, dlaczego..
// na obrazku powinno być reversed zamiast inversed :P
chodzi o to, że ponieważ txStart jest przez cały czas '1', to kopiuje sobie dane od razu po wysłaniu poprzednich. Natomiast UART.vhd dostarcza je jeden cykl później. Taka mała zmiana rozwiązała problem: http://pastebin.com/za5KZVAY
:)
Czasowo wyglądało to mniej więcej tak:
1) Przesyłany jest do bufora pierwszy znak
2) Start transmisji
3) Pierwszy znak jest kopiowany z bufora i przekazany do wysłania
4) Transmisja się zakończyła, ale nie została zatrzymana, więc brany jest znak w buforze i kopiowany do wysłania - ale w buforze ciągle siedzi jeszcze pierwszy znak, więc idzie drugi raz
5) Drugi znak jest kopiowany do bufora i siedzi w nim nieruszony,