Korzystanie z przewodu lub reg z wejściem lub wyjściem w Verilog
Kiedy deklarujesz coś jako wejście lub wyjście, skąd wiesz, czy musisz również zadeklarować to jako reg
lub wire
?
5 answers
reg
oraz wire
określają, w jaki sposób obiekt zostanie przypisany i dlatego mają znaczenie tylko dla wyjść.
Jeśli planujesz przypisać swoje wyjście w kodzie sekwencyjnym, na przykład w bloku always
, zadeklaruj je jako reg
(co naprawdę jest błędną nazwą dla "zmiennej" w Verilog). W przeciwnym razie powinna to być wire
, która jest również domyślna.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-19 08:24:54
An output reg foo
jest tylko skrótem od output foo_wire; reg foo; assign foo_wire = foo
. Jest to przydatne, gdy planujesz zarejestrować to wyjście i tak. Nie sądzę, aby {[2] } miało znaczenie dla module
(być może task
). input wire
i output wire
są takie same jak input
i output
: jest to po prostu bardziej wyraźne.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-19 06:45:16
Kompilator kodu Verilog, którego używasz, będzie dyktował, co masz do zrobienia. Jeśli używasz nielegalnej składni, otrzymasz błąd kompilacji.
An {[1] } musi być również zadeklarowane jako reg
tylko wtedy, gdy jest przypisane za pomocą "przypisania proceduralnego". Na przykład:
output reg a;
always @* a = b;
Nie ma potrzeby deklarowania {[1] } jako wire
.
Nie ma potrzeby deklarowania input
jako wire
lub reg
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-19 17:59:06
Zobacz to w domenie obwodu cyfrowego
- Przewód utworzy wyjście przewodowe, które może być przypisane tylko za pomocą instrukcji assign, ponieważ polecenie assign tworzy połączenie port/pin i przewód może być podłączony do portu/pin
- reg utworzy rejestr (D FLIP FLOP ), który pobiera lub odbiera wejścia na podstawie listy czułości, może to być zegar (rosnący lub spadający) lub krawędź kombinacyjna .
Więc to całkowicie zależy od zastosowania, czy trzeba Utwórz rejestr i zaznacz go zgodnie z listą czułości lub chcesz utworzyć przypisanie portu / pin
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-07 05:02:45
Zasadniczo reg jest używany do przechowywania wartości.Na przykład, jeśli chcesz licznik (który będzie liczył, a tym samym będzie miał jakąś wartość dla każdego z liczeń), użyjemy reg. Z drugiej strony,jeśli mamy zwykły sygnał o 2 wartościach 0 i 1, zadeklarujemy go jako przewód.Przewód nie wytrzyma values.So przypisanie wartości do drutu prowadzi do problemów....
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-13 11:04:27