obawiam sie, ze traktujesz pld jak inny rodzaj procesora ... ale moze zle sie domyslam; to co jest po "always (at)(pos reg config; wire done; wire config_trigger = CPU_NRESET & egde; always (at)(negedge config_trigger or posedge done) if ( done ) config <= 1'b0; else config <= 1'b1; always (at)(posedge external_clock)...
Obecnie mój kod wyglada tak (i dziala jak oczekiwalem): /.../ Czekam na ewentualne dalsze uwagi dot. kodu i jego zgodnosci ze "sztuka opisu sprzetu". to masz troche szczescia, ze dziala; jesli sygnal cs jest synchroniczny z sck , i okres sck jest odpowiednio dlugi cs bedzie nieaktywny PRZED opadajacym zboczem sck -> wyzeruje bitcount i warunek if(bitcount...
Bym się rozpisał na ten temat, ale może kiedy indziej :P Dla fanów C/C++: "The Design Warriors Guide to FPGAs" i wiele innych.
Nie analizowałem tego kodu super dokładnie (bo jest za bardzo skomplikowany jak na tą porę ;p ), ale jeśli dobrze rozumiem twoją wątpliwość to wystarczy że Px Cx Nx w linii 176 są zadeklarowane jako rejestry (BTW zmieniając nazwy zmiennych nie ułatwiłeś analizy ;p ). Sam układ porównujący (diffcheck0 i diffcheck1) jest po prostu układem kombinacyjnym...
Witam zlecę napisanie kodu fpga verilog pod Tang Nano 9K który bedzie nadsłuchiwał pamiec spi przykład winbond 25q32 100mhz kod ma implementowac rejestr przesuwny tu jest przykład pod emmc always (at)(posedge emmc_clk or negedge sys_rst_n) begin capture <= capture; counter <= counter; trigger <= trigger; if (!sys_rst_n) begin trigger <=...
https://obrazki.elektroda.pl/3545666900_... Jeśli pracowałeś kiedyś nad otwartymi rdzeniami procesora RISC-V ISA, istnieje duża szansa, że natknąłeś się na WARP-V. Dla początkujących WARP-V to po prostu generator rdzeni procesora RISC-V napisany w TL-Verilog (Transaction-Level Verilog), który obsługuje nie tylko RISC-V,...
musisz zmienić jeszcze tu assgin led=cnt[46]; będzie dwa razy wolniej.
Dane na wyjściu rejestru pojawiają się po wystąpieniu zbocza. To że rejestr jest w innym module nie spowoduje powstania dodatkowego opóźnienia.
Wydaje mi się, iż jest to możliwe do wykonania nawet na zasadzie opisu asynchronicznego na czym właśnie mi zależy Jeśli to miałby by być asynchronicznie to wg mnie nie zadziała. Rejestr 'danePamieci' musi przechowywać informację w momencie kiedy dane mają być przekazane do rejestru 'daneFPGA'. Napisz dokładnie jaką funkcję ma pełnić ten rejestr, bo...
Rejestr reg nie jest nigdzie ustawiany! Wywal to byte_count i po prostu inkrementuj reg. Poza tym jakiś reset by się przydał.
Wsuwanie bitu SI powinno być na operacji Or a nie And. To nie jest Verilog :D [url=http://vhdl.renerta.com/mobile/sour... - Concatenation
Krótko i na temat... ten kod to kompletne dno... to jest wyssane z palca... dobrym krokiem było by gdybyś zajrzał do obojętnieje jakiej książki VHDL-a i poczytał o nim to byś wiedział w czym rzecz... Napisz kilka liczników rejestrów itp... a zrozumiesz co pisze... Niech to cię nie zraza ale ty chcesz umieć czytać bez nauki czytania... Ten kod nie ma...
Witam. Mam nastepujacy problem... zrobilem sobie licznik w Verilogu i chcial bym by posluzyl on jako adresy kolejnych komorek pamieci np. always(at) (licznik) pamiec module cntr(clk,start,dziel); parameter n=2; //wielkosc dzielnika input clk,start; //wejscie rozpoczynajace liczenie input [n:0] dziel; //dzielnik czestotliwosci reg...
Mam problem z moim licznikiem. Chciałbym, żeby resetował się na dodatnim zboczu x1 ... podobny problem pojawia sie tu dosc czesto, wiec nieco bardziej lopatologicznie niz uczynil to piotrva ; VERILIG lub VHDL to NIE jest kolejny jezyk programowania jakiegos procesora z rodziny FPGA; FPGA NIE algorytm wykonania jakiejs funkcji; linijki: jednym bloku...
W twoim kodzie 'out' jest ustawiany w warunku zależnym od 'out'. Logiczne porównanie, gdy trafi na wartość nieznaną 'X', również zwraca 'X'. W takiej sytuacji symulator nie wie czy ma wykonać 'out=0', czy 'out=out+1', więc pozostawia wartość X. Zgodnie z poradą użytkownika drobok, powinieneś zainicjalizować rejestr 'out'.
ct_dev_num jest rejestrem czy wyjsciem jakiegos bloku kombinacyjnego? Jesli to rejestr, to powinno dzialac. ISE nie zsytntezuje pamieci distributed/block RAM jesli adres lub dane nie sa wyjsciem rejestru. Pzdr TW
Robisz synchroniczną detekcję zbocza i odliczanie timeoutu jakimś długim rejestrem w momencie ustawienia stanu wysokiego. Jak timeout minie - ustawiasz na zero. IIR raczej nie nie znajdzie tu zastosowania. BTW - co to za projekt docelowo ma być jeśli mogę spytać?
UNIKAJ X , jak w symulacji pojawi się gdziekolwiek, to opis układu jest d* warty.
Faktycznie moduł I2C można użyć bezpośrednio w edytorze schematów. Myślę ze jest to bardzo dobra sugestia. Jeżeli chodzi o powód dla którego podałem liczbę bramek to tylko po to ażeby oszacować złożoność układu. Nawet przy użyciu gotowych elementów rejestrów, liczników, multiplekserów itd. nakład pracy jest nieporównywalnie większy niż napisanie tego...
jeden przyklad zamiast dziesiatek slow ... [syntax=verilog] module clk_divider ( input clk50, output reg clkdiv = 1'b0, input cnt_en, output [7:0] cnt_out ); reg [7:0] cnt = 8'h0; always (at)(posedge clk50) clkdiv <= !clkdiv; always (at)(posedge clkdiv) if (cnt_en) cnt <= cnt + 1'b1; else cnt <= cnt; assign cnt_out = cnt; endmodule ///========================...
Ok spróbuje w ten sposób. Ogólnie nie chciałem wrzucać bezpośrednio instacji tych komponentów Nie ma takiej potrzeby. Podejrzewam, ze wartość ACC jest używana natychmiast po przypisaniu przez mnożarkę, wiec syntezer nie może wstawić rejestrów pomiędzy bloki 18x18 i 'spajplajnować' przetwarzania. Spróbuj wstawić opóźnienie na 1-2 rejestrach na wyjściu...
Np. jak poniżej: [syntax=verilog] always(at)(posedge clk) if (state==setting) begin if (minuty_press) begin minuty += 1; end //if end //if else begin if(timer_presk == 1) begin minuty+=1; end; //if end //else end //always [/syntax] Jeżeli chcesz sterować zboczami, zrób ich detekcję na rejestrach przesuwających.
ja bym to zrobil tak: [w kodzie sa komentarze, ktory byc moze cos wyjasnia] [syntax=verilog] module dekada (CLK, RST, CE, SET, prst1, prst2, prst3, prst4, Q0, Q1, Q2, Q3, zero); input CLK, RST, CE, SET; input [3:0] prst1; // input [2:0] prst2; // chyba typo input [3:0] prst2; input [3:0] prst3; input [3:0] prst4; output [3:0] Q0; output [3:0] Q1; output...
Może tak. Opis zrób z asynchronicznym resetem. Zamiana z asynchronicznego na synchroniczny to tylko dodanie dodatkowej flagi dla syntezera XST (-async_to_sync), albo w GUI ISE na PPM na Synthesize - XST. Pełny synchroniczny reset w systemie to brak resetu jeśli nie ma domeny zegarowej. Jak używasz opisu logiki synchronicznego z asynchronicznym resetem,...
Zaprojektować układ mnożący dowolną liczbę binarną przez liczbę stałą 3. Liczba wejściowa ma być podawana z rejestru R1, a wynik zapisywany do rejestru R2. Rejestry 8-bitowe. AI: Czy układ ma być zrealizowany sprzętowo (np. w postaci schematu logicznego, VHDL/Verilog) czy programowo (np. kod w asemblerze lub C na mikrokontroler)? Schemat logiczny, tablice...
Wpisanie początkowych wartości miało ułatwić przetestowanie działania układu. /.../ Cały układ wykorzystujący pamięć działa. Problem jest więc chyba tylko z tym defparam. tak wlasnie zrozumialem poprzedni post; bez calego kodu RTL i dostepu do narzedzia trudno wyrokowac, gdzie jest problem, moze zapomniales o dyrektywie syntezy, ze RAM ma byc w jednostkach...
Ma to działać tak: /.../ zrob moze tak: doloz rejestry na aktualny stan licznika, w bloku always taktowanym zegarem aktywny sygnal EN przepisuje wartosc licznika do rejestru i jednoczesnie zeruje licznik; mniej wiecej tak reg [2:0] rejestry; always (at)(posedge clk) if ( EN ) begin rejestry <= cnt; cnt <= 3'b0; end...
przychodzę z pytaniem jak stworzyć procesor w domu Ma to być procesor czy mikroprocesor? Procesor możesz zbudować z układów logicznych a nawet z tranzystorów, lamp czy przekaźników. Mikroprocesor - czyli taki procesor z cała logiką zamknięta w jednym układzie scalonym - to raczej w domu nie osiągalne bo wymaga opanowania technologii produkcji układów...
Witam, mam za zadanie napisać w verilogu układ, który oblicza wynik wyrażenia cos x, gdzie x jest podawany w formacie zmiennoprzecinkowym pojedynczej precyzji single, czyli bit znaku, 8 bitów wykładnika, 23 bity mantysy. Chciałbym się dowiedzieć głównie jak rozwiązać problem z tym zmiennym przecinkiem - jak to przekonwertować, w jakich rejestrach przechowywać,...
Nie musisz stosować konwertera. Wszystko możesz upchać do FPGA, generacja LVDS etc.. Jeden scalak mniej, ale troszkę więcej roboty :D Co do poprawności, wrzuć Sobie do jakiegoś symulatora. Jak używasz Quartus'a to do ModelSim'a. Sprawdź markerami czasy. Przelicznik na odpowiednie czasy i tak masz w datasheet matrycy. Albo nabrać troszkę skill'a w pisania...
Witam Chcę się nauczyć podstwa języka Verliog i VHDL. Poszukuje jakiś darmowych, prostych najlepiej w wersji free open source kompilatorów tych języków. Wiem, że jest np: Active-HDL, Xilininx i Altera ale są one dla mnie zbyt potęzne jak na początek. Zależy mi na podstawach (projekt rejestru, licznika itp). Pozdrawiam
Czy ktoś wyjaśni taki wynik prościutkiego programu w Verilogu? Ha, ciekawe pytanie, aż sprawdziłem - czego to człowiek nie zrobi, żeby się oderwać od roboty :) 1. Deklaracja integer x jest raczej oczywista, domyślnie 32 bit "signed" we wszystkich językach o jakich słyszałem (co nie znaczy we wszystkich ;]). 2. Deklaracja reg domyślnie "unsigned" -...
Co trzeba wyłączyć w programie QUARTUS II , żeby nie redukował rejestrów, niżej podaje ostrzeżenie wygenerowane: Warning: Reduced register "Barrel:neuro_barrel|DOUT po co ci ten rejestr, jesli jego wejscie D jest zawsze ustawione na '0' ? chyba ze jest to celowe. choc trudno mi sobie wyobrazic po co; mozesz poprosic kompilator by nie usuwal zbednej...
Czesc, Bede strzelal: always (at)(posedge CCK or negedge CCLR or negedge CLOAD) begin if (CCLR==0) licznik <= 0; else if (CLOAD==0) licznik <= rejestr; else if (CCKEN==0) licznik <= licznik + 1; end assign RCO = (licznik==8'b111111111) ? 0 : 1; Pozdrawiam, tony_tg
No hej! Więc miło że ktoś poruszył temat tego „badziewia” od Dallasa… Wszystko robię mniej więcej tak jak napisałeś… tzn. póki co nie bawię się numerami seryjnymi. Co do różnych przykładów dostępnych na stronach Dallasa, to też z nimi walczyłem… ale do sedna. Udało mi się odczytać pierwszy bajt numeru seryjnego mojego czujnika,...
Z oszacowaniem nie ma problemu. Napisz projekt a potem dobierasz sobie układ. Tak się zawsze robi. I nie zastanawiaj się nad tym czy CPLD czy FPGA. Najpierw opisz strukturę tego co potrzebujesz w językach z grupy HDL(VHDL czy verilog) podaj syntezie w jakim środowisku Quartus (altera)czy ISE (xilinx) i otrzymasz konkretną odpowiedź czego potrzebujesz....
Nikt już nie robi nowych scalaków LSI, serie 7400 czy 4000 są takie same jak były w latach '80, a nawet część (większość?) układów wyszła już z produkcji. Praktycznie dowolny układ cyfrowy możesz zamodelować na układzie CPLD lub FPGA. Można albo narysować schemat, albo opisać działanie w jednym z języków opisu sprzętu, jak VHDL lub Verilog. Ja niestety...
Cóż, oczywiście myślę, że poprawna jest moja wersja. I potwierdzają to podesłane później linki. Wydaje mi się także, że Twój sposób rozumowania wynika z utożsamiania listy czułości procesu i bloku always z verilog'a. Więc chyba każdy z nas pozostanie przy swoim. A głupi automat rozumie nas obu ;-) https://obrazki.elektroda.pl/8988222100_...
nie wiem jak wygenerowac taka pamiec... to model cypres CY7C1386B znalazlem opis CY7C1386D, z punktu widzenia logiki dzialania to z pewnoscia to samo; dzialanie tych ukladow rozni sie od starszych pamieci sram, z ktorymi pracowalem na tyle, ze prawdopodobnie nie ma szans wygenrowanie podobnego modelu za pomoca coregen w ise, czy w quartusie; problem...
Dziękuje twój kod działa. Popatrzyłem na twój kod dostosowałem do moich potrzeb i dział... przynajmniej tak wynika z przebiegów czasowy w następnym tygodniu sprawdzę to w a płycie czy przebiegi czasowe pokrywają się z pracą fizyczna ... Następne pytanie: Jak zamienić mój kod w VHDL-u / Verilog-u na jeden bloczek (symbol) w schematic-u... bo muszę przyznać...
Witam, Zaimplementowałem odsiewacz zakłóceń na bazie rejestru przesuwnego w lewo. Rozwiązanie sprawdza się znakomicie. Dziękuję Koledze (at)yakuza_2000 za podsunięcie dobrego pomysłu:) [syntax=verilog] module debounce (PS2_CLK, CLOCK_50, RESET, PS2_CLK_FIlTRED); input CLOCK_50; //zegar próbkujący input RESET;//reset input PS2_CLK; //PS2 CLK output reg...
nie jestem ekspertem VHDL error at Vhdl1.vhd(28): can't determine definition of operator ""<="" ten jezyk jest silnie 'utypowiony', w zasadzie nie mozna robic zadnej operacji na obiektach roznych typow, by narzedzie zaakceptowalo zapis trzeba starannie zadeklarowac typy, np. tak: czy mogę sobie z jakigoś innego bloku przesłać jakąś liczbę (spośród...
1. Czy układ realizujesz w jakimś konkretnym FPGA? Z kontekstu wynika, że to jakiś Zynq, ale podaj konkretnie co to za układ. 2. W jaki sposób sprawdzasz czy Twój projekt działa? Wgrywasz go do FPGA i testujesz go w sprzęcie? Używasz ChipScope? Używasz symulacji? 3. Gdy kanał wyjściowy/PWM jest podłączony do PL, nie można wpisać wartości za pomocą AXI....
Czesc, Z wysylaniem zegara z FPGA to nie taka prosta sprawa i jak juz J.A zauwazyl, najlepiej jest jak zegar jest na PCB i idzie zarowno do FPGA (dedykowane wejscie) jak i do odbiornika. Wtedy zarowno FPGA jak i odbiornik sa perfekcynjie synchroniczne. (o ile zegar jest routowany jako zegar na PCB czyli dociera do wszystkich ukladow w tym samym czasie)....
Witam!!! Na wstępie proszę abyście nic nie dopisywali żadnych odpowiedzi do tego tematu. Jak chcesz coś dodać od siebie to proszę o informacje na priva. Dokleję i poinformuje co kto dodał o ile ta informacja będzie coś wnosiła do tego kompendium. Chce wprowadzić taki zabieg aby czytelnicy nie wertowali tego posta co kto dodał. To ma ktoś otworzyć i...
kikiz VHDL, Verilog, Abel czy CUPL, to nie tyle języki programowania, co języki opisu sprzętu ([url=http://en.wikipedia.org/wiki/Hardw... Właśnie w tym miejscu wychodzi różnica i ja tak to rozumiem - zestawiając np. mikrokontroler i układ programowalny. Przy uC korzystamy np. z języka C i programujemy, albo w ogóle używamy...
Z tymi adresami nie byłoby problemu bo 8051 ma pewną, nieużywaną przestrzeń pamięci. Jednak wolałbym nie korzystać z tej pamięci - preferuję zastosowanie własnych rejestrów. Teraz pytanie od czego mam zacząć ? Od razu projektować układ logiczny wykonujący obliczenia (ALU) ? Początkowo moja wizja takiego układu wygląda następująco: zwykły automat z deterministyczny...
Jest kilka wiodących producentów układów logiki programowalnej. Układów jest zatrzęsienie i łatwo się w tym pogubić. Rzeczywiście, Lattice jest jednym z większych producentów i specjalizuje się w małych i energooszczędnych układach, niemniej jednak, większość rynku posiadają firmy Intel i Xilinx. Ich układy FPGA są najpopularniejsze, dlatego też proponowałbym...
Ale czy nie będzie problemu z odczytywaniem danych. jeżeli zaadresuje blok0 to adres pójdzie także do bloku1 ale już do bloku1 nie pójdzie sygnał zapisu przez co nastąpi odczyt pamięci i nadpisanie bufora bdata. Według intencji odczytanych z twojego kodu, bufor 'bdata' będzie nadpisany tylko gdy OE==1'b1 Układ sterowany będzie z procesora niekoniecznie...
32- letnia firma, laboratorium badawczo - rozwojowe Optel Sp. z o.o. (optel.pl) z siedzibą we Wrocławiu, poszukuje: Inżyniera Elektronika na stanowisko konstruktora specjalistycznych innowacyjnych urządzeń elektronicznych wymagania: - wykształcenie wyższe ELEKTRONICZNE - znajomość hardware'u i software'u mikrokontrolerów z rodziny Xilinx, Spartan3,...
verilog sygnał verilog nauka licznik verilog
karcher schemat elektryczny odblokowania bootloadera podcisnienia passat
Maksymalna moc z sieci jednofazowej – ile kW można pobrać? Zabezpieczenia, przekroje, limity Co oznacza symbol FR1, FR2 w zasilaczu do telefonu?