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?

 40
Author: Madhav Datt, 2011-03-19

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.

 36
Author: Jan Decaluwe,
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.

 22
Author: Ben Jackson,
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.

 6
Author: toolic,
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

  1. 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
  2. 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

 4
Author: Rahul Jain,
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....

 2
Author: john_conner,
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