-
Data: 2015-09-19 12:16:57
Temat: Re: Xilinx Spartan 3, "komponent" BSCAN i komunikacja przez JTAG
Od: s...@g...com szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu piątek, 18 września 2015 23:44:32 UTC+2 użytkownik Grzegorz Kurczyk napisał:
> Witam.
> Mam pytanie do Kolegów rzeźbiących w FPGA Xilinxa. Próbuję wykombinować
> loader umożliwiający mi za pośrednictwem JTAG-a wrzucenie danych do
> wewnętrznej pamieci BlockRAM w FPGA. Poniżej fragment opisujący obsługę
> sygnałów z BSCAN
>
> reg [31:0] JTAG_SR;
> reg [31:0] JTAG_OUT;
>
> BSCAN_SPARTAN3 BSCAN_SPARTAN3_inst (
> .CAPTURE(BS_CAPTURE), // CAPTURE output from TAP controller
> .DRCK2(BS_DRCK2), // Data register output for USER2 functions
> .SEL2(BS_SEL2), // USER2 active output
> .SHIFT(BS_SHIFT), // SHIFT output from TAP controller
> .TDI(BS_TDI), // TDI output from TAP controller
> .UPDATE(BS_UPDATE), // UPDATE output from TAP controller
> .TDO2(JTAG_SR[0]) // Data input for USER2 function
> );
>
> always @(posedge BS_DRCK2) begin
> if(BS_SHIFT) begin
> JTAG_SR <= {BS_TDI, JTAG_SR[31:1]};
> end
> end
>
> always @(posedge BS_UPDATE) begin
> if(BS_SEL2) begin
> JTAG_OUT <= JTAG_SR;
> end
> end
>
> =====
>
> Próbuję to potraktować za pośrednictwem programu iMPACT w trybie
> wsadowym. Wsad wygląda tak (w łańcuchu JTAG mam jeszcze pamięć
> konfiguracyjną)
>
> setMode -bs
> setCable -port auto
>
> bsdebug -start
> bsdebug -reset
>
> # pamięć na BYPASS, FPGA na USER2
> bsdebug -scanir 11111111000011 -irlength 14
>
> # dane do przeslania, pierwszy bit to BYPASS pamieci konfiguracyjnej
> bsdebug -scandr 000000000000000000000111100001111 -drlength 33
> bsdebug -scandr 000000000000000010000011111101100 -drlength 33
> bsdebug -scandr 000000000000000100000111100001111 -drlength 33
> bsdebug -scandr 000000000000000110000011001101010 -drlength 33
> bsdebug -scandr 000000000000001000000111100001111 -drlength 33
> bsdebug -scandr 000000000000001010000011010000001 -drlength 33
> bsdebug -scandr 000000000000001100000111100001111 -drlength 33
> bsdebug -scandr 000000000000001110000011010000110 -drlength 33
> bsdebug -scandr 000000000000010000000111100001111 -drlength 33
> bsdebug -scandr 000000000000010010000011010001011 -drlength 33
> bsdebug -scandr 000000000000010100000111100001111 -drlength 33
> bsdebug -scandr 000000000000010110000011010010000 -drlength 33
> bsdebug -scandr 000000000000011000000111100001111 -drlength 33
> bsdebug -scandr 000000000000011010000011010011000 -drlength 33
> bsdebug -scandr 000000000000011100000111100001111 -drlength 33
> bsdebug -scandr 000000000000011110000011011011111 -drlength 33
> bsdebug -scandr 000000000000100001010000111111111 -drlength 33
> bsdebug -scandr 000000000000100011101000100010000 -drlength 33
> bsdebug -scandr 000000000000100100111000000110000 -drlength 33
> bsdebug -scandr 000000000000100111100000100000001 -drlength 33
> ... duuuuuuużo linijek z scandr
> bsdebug -scandr 000001111111110110000000000000000 -drlength 33
> bsdebug -scandr 000001111111111000000000000000000 -drlength 33
> bsdebug -scandr 000001111111111010000000000000000 -drlength 33
> bsdebug -scandr 000001111111111100000000000000000 -drlength 33
> bsdebug -scandr 000001111111111110000000000000000 -drlength 33
>
> bsdebug -stop
> closeCable
> quit
>
> =======
>
> Programator USB DLC9G. Robię kilka prób z tym samym plikiem wsadowym.
> Czasem to zadziała (zwłaszcza jak jest niewiele linii bsdebug -scandr),
> ale najczęściej przejdzie kilkadziesiąt pierwszych słów 32-bitowych i
> przestają się pojawiać sygnały DRCK2 i UPDATE. Często dochodzi do resetu
> układu lub niekiedy nawet jego przeprogramowania.
>
>
> P.S. Na tym samym sprzęcie (komputer/programator/Xilinx) układ FPGA
> poprawnie przyjmuje "wsad" przez JTAG-a.
>
> --
Najupierdliwsze tematy są właśnie takie jak opisałeś. Nie wiem, czy pomogę w
czymkolwiek pomóc, ale podzielę się własnymi spostrzeżeniami/doświadczeniami.
Jeżeli działa to w sposób losowy, to podejrzewam :
1) Błąd na Twoim HW, źle dobrane wartości rezystorów/kondziorów/brak terminacji TCK.
Zwróć też uwagę na BUSY/CCLK/PROGRAM_B/DONE/INIT_B. Ja robię na S6 i wygląda to tak:
http://www.fotosik.pl/zdjecie/pelne/3dce84ab70177997
2) Przetwornice vs. PCB. Jeżeli masz na iluśtam warstwowej PCB "splitted power
planes'y" i sygnały konfiguracyjne przebiegają nad/pod zmianą GND/VCC, to też może
robić chocki-klocki.
3) iMPACT - w najnowszej i chyba ostatniej wersji 14.7 są problemy. Nawkurwiałem się
przy tym chyba z tydzień, gdzie jest "bug". Nie wiem i nie chcę wiedzieć. Po
wygenerowaniu bitstreama, używam do wstrzyknięcia iMPACT'a v12.1 i jest OK.
Tyle mogę doradzić... Dej znać staremu chłopu (50+), czy coś sensownego doradziłem.
Następne wpisy z tego wątku
- 19.09.15 12:28 s...@g...com
- 20.09.15 12:32 Grzegorz Kurczyk
- 25.09.15 01:35 s...@g...com
- 30.09.15 08:31 Grzegorz Kurczyk
Najnowsze wątki z tej grupy
- Dziwne zachowanie magistrali adresowej w 8085
- Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- Jaki silikon lub może klej?
- Smar do video
- Litowe baterie AA Li/FeS2 a alkaliczne
- "ogrodowa linia napowietrzna"
- jaki zasilacz laboratoryjny
- jaki zasilacz laboratoryjny
- Puszka w ziemię
- T-1000 was here
- Ściąganie hasła frezem
- Koszyk okrągły, walec 3x AA, na duże paluszki R6
- Brak bolca ochronnego ładowarki oznacza pożar
- AMS spalony szybkim zasilaczem USB
- stalowe bezpieczniki
Najnowsze wątki
- 2025-02-12 Dziwne zachowanie magistrali adresowej w 8085
- 2025-02-11 Mini pecet
- 2025-02-10 Spalił się spaliniak
- 2025-02-10 zarowka wifi - z sensowna apka lub lepiej albo lokalnie lub przez web. I zeby harmonogram miala
- 2025-02-10 Chrzanów => Programista NodeJS <=
- 2025-02-10 Kraków => DevOps Engineer (Junior or Regular level) <=
- 2025-02-10 Dlaczego takie preferencje banków?
- 2025-02-10 Białystok => iOS Developer (Swift) <=
- 2025-02-10 Mińsk Mazowiecki => Team Lead / Tribe Lead FrontEnd <=
- 2025-02-10 Białystok => System Architect (Java background) <=
- 2025-02-10 Współczesne mierniki zniekształceń nieliniowych THD audio, produkują jakieś?
- 2025-02-10 Szczecin => Senior Field Sales (system ERP) <=
- 2025-02-10 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-02-10 Chrzanów => Specjalista ds. public relations <=
- 2025-02-10 Chrzanów => NodeJS Developer <=