VHDL ( zegar, powielanie )

Ostatnie to ma najwyzej wplyw na szybkosc. No i ewaluuje w dobra strone, bo pewien uklad co mi wychodzil kiedys na 25MHz (Quartus 2.0 albo i 1.x) teraz wychodzi w tej samej kosci na 80MHz :-) Czy zajmuje mniej czy wiecej logiki to niestety juz nie powiem...

Reply to
jerry1111
Loading thread data ...

Ino po co komu gigabit - zaraz problem ze pamieci trzeba wiadro podlaczac. Ale takie 10/100 z prosciutkim tcp...

Zawsze lepiej. Gotowca w opencores nie ma?

Moze sie czegos napil jak to mowil?? :-)

Reply to
jerry1111

Ale jak go zrobic zeby nie bazowal na wewnetrznych opoznieniach w fpga? Znaczy zeby byl tolerancyjny na duuuuze ich rozbieznosci?

Reply to
jerry1111

"jerry1111":

[...]

jak to nie bedzie dzialac ? jesli kompilator zrobi dokladnie to co napisane, to polaczy zanegowane wyjscie AND z wejsciem tegoz AND i bedzie piekny oscylator; tyle, ze stawiam raczej na jakies 3ns opoznienia, niz na jedna nanosekunde; inna sprawa, czy autorowi o to chodzilo ;)

JA

Reply to
JA

Zdawalo mi sie ze petle for (for i in 10 downto 0 loop ...) da sie syntetyzowac? Przy okazji - moglby ktos polecic dobry podrecznik do vhdl? Na razie przedzieram sie przez "Projektwanie uk. cyf. z wyk. jezyka VHDL" Marka Zwolinskiego - ale przydaloby sie cos z indeksem rzeczowym, lezace na podoredziu, gdzie moglbym szybko skladnie sprawdzic - "normalnie" programuje c/c++ i czasem skladnia VHDL mnie do rozpaczy doprowadza... GRG

Reply to
Gregor

Ale sens i zasada "dzialania" jest deczko inna od powszechnie przyjetej w C/C++...

Reply to
jerry1111

Boze... nastepny :-) NIE BEDZIE DZIALAC. Koniec. Kropka.

odczas syntezy narzedzia po prostu olewaja taki zapis i tyle. To jest pomocne jedynie przy symulacji kodu _zrodlowego_.

Reply to
jerry1111

jerry1111:

Boze... nastepny;

bedzie dzialac dokladnie tak, jak jest napisane w VHDL, ale nie tak, jak autor mial na mysli;

ano, "AFTER 1 NS" zostanie olane, ale reszta nie, wiec powstanie barmka AND, ktorej wejscie przez negator jest polaczone z wyjsciem i sygnalem "Clock" jako bramka; szacujac opoznienie ACEX -3 na ok. 3-4ns wyjdzie z tego oscylator ok. 330-250MHz, o ile ACEX potrafi przeniesc taka czestotliwosc, enable'owany sygnalem "Clock";

JA

Reply to
JA

potrzebne...mam do przeslania dane z kamerki 64 megapiksele , musze to przesalc w 2s, 128MB...

w opnecores jest MAC 100/10, mysle go przerobic..na gigabit

mam cala specyfikacje..w sumei 15 MB pdf'a.. czytalem i jakos mnie to az tak nei przerazilo.. moduly CRC mam... no i na razei mam podstawe - rdzen z MTIP tylko musze tunel z firmy pod linuxem postawic, aby quartus na zewnatrz firmy widzial serwer licencyjny - czy ktos sie w to bawil? w sumie wyczailem na ktorych portach sie do serwera odzywa..dzis zrobie proby..

Reply to
Greg

O kurka... wez lepiej jednak procka - np: siakis prosty 4 bitowy. Bo jak zaczniesz nas pytac o PCI, to bedzie gorzej :-(

Reply to
jerry1111

Niby 10x przyspieszyc i dolozyc przetwarzanie na sygnaly do PHY. Albo zamiast gigabit eth wsadzic po prostu swiatelko i juz - standard niby wlasny, ale przesylac mozna szybko.

A po co? Niech w firmie kupia sztuke T-dongle (do LPTa podlaczane).

Reply to
jerry1111

tunel dziala.. w firmie mam licencje..a chciale sobie w domu porzezbic..dla mojej biednej uczelni, gdzie na mysl o wydaniu tej kasy to by zemdleli:)

Reply to
greg

jak chcesz sprawdzonego PCI w VHDL, to uderzaj na priv mam cos PCI->ISA i do tego kompatybilny PLX poza tym mam tez rdzenie z lattice'a

Reply to
greg

Biedna uczelnia to se to moze kupic za 1k$. Wal na priva jakby co...

Reply to
jerry1111

Z tym sie calkowicie zgadzam, malo ktory programista jest uczony _prawdziwego_, drobnoziarnistego programowania wspolbieznego, a to jest podstawowa filozofia w HDL-ach. Z drugiej strony znane mi jezyki do pisania specyfikacji sprzetu sa zbyt niskopoziomowe

-- mozna w nich latwo zapisac jakies liczniki, jednostki arytmetyczno

-logiczne itd, ale gdy przychodzi opisac uklad o skomplikowanym sterowaniu, to zaczyna byc "wesolo". Na przyklad: jak w czytelny sposob opisac potok procesora superskalarnego, ktory dopuszcza "lokalne" wstrzymania (tj. brak jakichs danych nie wstrzymuje calego potoku, lecz tylko stopnie tych danych wymagajace?). A pytam powaznie, by miec porownanie, bo Wiesz Co tez ma umozliwiac napisanie takich specyfikacji. :-)

Druga sprawa to ubogie wsparcie nowoczesnych paradygmatow programowania. Szczegolnie brakuje mi rozbudowanych deklaracji generycznych (czego jak czego, ale zeby VHDL nie mial szablonow?!), pseudoobiektowosci (dziedziczenie jednobazowe, ukrywanie danych, "code", czy wlasciwie "specification reuse", za to bez deklaracji wirtualnych i byc moze koercji, bo z tym moga byc problemy podczas syntezy). Brak tez akcesorow, przez co przy co dziwniejszych interpretacjach wektorow bitowych (kodowaniach) trzeba wszystko robic recznie, zamiast zostawic to automatowi, wskazujac tylko jak kodowac dany typ, np. deklaracja generyczna dla kodu BCD:

// Liczby naturalne

type UnsignedInt is {k : int | k >= 0} type Positive is {k : int | k > 0}

// Dlugosci wektorow liczb BCD musza byc podzielne przez 4

type BCD_size is {k : Positive | k % 4 = 0}

generic type BCD_vector{N} is group of N bits encoded as BCD_encoding where {const N in {BCD_size}} with

public method add_to(in n : BCD{N}) is self <= self + n; // Kodowanie w obie strony zalatwia // automat na podstawie definicji // BCD_encoding end end

generic encoding BCD_encoding{N} for group of N bits where {const N in {BCD_size}} is

pure accessor in() : UnsignedInt is ... // BCD -> uint end

accessor out(i : UnsignedInt) is ...// uint -> BCD end end

Zamiast tworzenia gigantycznych switchow przydaloby sie tez miec "value dispatch":

method M(i : {n : int | n % 4 = 1}) is ... // Robimy cos dla dajacych reszte 1 end

method M(i : {n : int | n % 4 = 2}) is ... // Robimy cos dla dajacych reszte 2 end method M(i : int) is ... // Robimy cos dla pozostalych end M(5*7+2); // Wywola pierwsza z metod

Pozdrawiam Piotr Wyderski

Reply to
Piotr Wyderski

W czytelny sposob to sie da zrobic niewiele wiecej niz licznik i automat stanow :-(

O cholera :-)

Wiesz - z drugiej strony to podczas pisania w VHDLu trzeba sobie wyobrazac jaki uklad wyjdzie po P&R zeby bylo to wszystko sensownie male i sensownie szybkie. Przy wyzszych poziomach abstrakcji czasami rozne dziwne rzeczy moga byc nie do zauwazenia/nie do wyobrazenia. Z drugiej strony jest System-C i Handel-C... ale jakos cisza o tym, wiec albo jest na tyle dobre ze amerykancy wzieli to dla wojskowosci, albo jest po prostu do dupy :-)

Reply to
jerry1111

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.