dlaczego przy module piszesz od razu co jest input i output? na uczelni pisalismy najpierw wszystkie wejscia wyjscia razem w nwiasie a potem dopiero co jest input i co output i reg
Tak się robiło wg standardu z 1995. Od 2001 jest możliwy bardziej zwarty sposób jak na tej stronie, bez pisania tego samego po kilka razy. Więcej na temat "nowości" tutaj http://www.asic-world.com/verilog/verilog2k1.html#Port_Declaration
Dlatego lepiej tego nie używać. Jak już koniecznie chcemy mieć wartość początkową to lepiej byłoby zrobić reset, zwłaszcza, że często układy PLD mają możliwość wyboru w jakim stanie są aktywne + przerzutniki i tak mają asynchroniczne wejścia resetujące.
8 komentarze :
dzieki za przyklady
dlaczego przy module piszesz od razu co jest input i output? na uczelni pisalismy najpierw wszystkie wejscia wyjscia razem w nwiasie a potem dopiero co jest input i co output i reg
Tak się robiło wg standardu z 1995. Od 2001 jest możliwy bardziej zwarty sposób jak na tej stronie, bez pisania tego samego po kilka razy. Więcej na temat "nowości" tutaj http://www.asic-world.com/verilog/verilog2k1.html#Port_Declaration
Z tym initialem to bym był ostrożny. Może w tym konkretnym przypadku [chip/środowisko] tak jest, ale ten blok niekoniecznie musi być syntezowalny.
Natomiast zdecydowanie przydaje się do symulacji.
pzdr.
Sprawdziłem na Spartanie 3 i XC9572XL - działa :) a gdzieś czytałem, że initial wcale nie jest syntezowalny. Bywa różnie i zawsze mnie to irytuje.
Dlatego lepiej tego nie używać. Jak już koniecznie chcemy mieć wartość początkową to lepiej byłoby zrobić reset, zwłaszcza, że często układy PLD mają możliwość wyboru w jakim stanie są aktywne + przerzutniki i tak mają asynchroniczne wejścia resetujące.
pzdr.
a Block RAM jak zainicjalizować bez initial i bez $readmemh lub $readmemb?
Widzisz, dobre pytanie, będę musiał zgłębić ten temat ;) Jak się dowiem - dam znać ;)
Prześlij komentarz
Skomentuj!