RTV forum PL | NewsGroups PL

Różnice w implementacji przerzutnika D w VHDL z użyciem i bez PROCESS

VHDL - PROCESS

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Różnice w implementacji przerzutnika D w VHDL z użyciem i bez PROCESS

Guest

Sun Apr 20, 2014 10:50 pm   



Szczerze powiedziawszy nie za bardzo łapię listę czułości - process(coś_tam).

Przykład, zwykły przerzutnik D, wersja 1:

entity fd is
Port ( CLK : in std_logic;
D : in std_logic;
Q : out std_logic;
end fd;

architecture Behavioral of fd is

begin

process (CLK)

begin

if CLK'event and CLK='1' then
Q<=D;
end if;
end process;


end Behavioral;

================
I teraz to samo bez "process", wersja_2 :

entity fd is
Port ( CLK : in std_logic;
D : in std_logic;
Q : out std_logic;
end fd;

architecture Behavioral of fd is

begin

if CLK'event and CLK='1' then
Q<=D;
end if;


end Behavioral;

====================
Gdzie jest różnica?

Jakub Rakus
Guest

Mon Apr 21, 2014 6:07 pm   



On 20.04.2014 22:50, stchebel@gmail.com wrote:
Quote:
Szczerze powiedziawszy nie za bardzo łapię listę czułości - process(coś_tam).

Przykład, zwykły przerzutnik D, wersja 1:

entity fd is
Port ( CLK : in std_logic;
D : in std_logic;
Q : out std_logic;
end fd;

architecture Behavioral of fd is

begin

process (CLK)

begin

if CLK'event and CLK='1' then
Q<=D;
end if;
end process;


end Behavioral;

=================

I teraz to samo bez "process", wersja_2 :

entity fd is
Port ( CLK : in std_logic;
D : in std_logic;
Q : out std_logic;
end fd;

architecture Behavioral of fd is

begin

if CLK'event and CLK='1' then
Q<=D;
end if;


end Behavioral;

=====================

Gdzie jest różnica?


Przy tak krótkim kodzie zawartym wewnątrz procesu, to nigdzie.
Teoretycznie to co jest zawarte w procesie będzie się realizować "po
kolei", czyli "prawie" jak w programie napisanym na uC.
Gdzieś czytałem ostatnio także o innej ciekawej kwestii dotyczącej
procesu - mniej więcej chodzi o to, że słowo kluczowe "process" oraz
podawana wraz z nim lista czułości jest ważna właściwie tylko dla
zwiększenia czytelności kodu oraz przy vhdl-u używanym dla symulacji.
Przy syntezie do docelowego układu kompilator zwraca uwagę głównie na
zależności logiczne między sygnałami, czyli w tym przypadku na if
CLK'event and CLK='1' then.

--
Pozdrawiam
Jakub Rakus

nowyr
Guest

Tue Apr 22, 2014 12:07 pm   



<stchebel@gmail.com> wrote in message
news:f3e67ff6-7b2e-4022-a838-c48885535385@googlegroups.com...
Szczerze powiedziawszy nie za bardzo łapię listę czułości -
process(coś_tam).

Quote:
Gdzie jest różnica?

Przy jednym procesie nie ma różnicy ale jak zrobisz ich kilka to myśl o nich
jak o układach scalonych TTL, które sobie posadzisz na płytce i połączysz
"signalami". A żeby symulator i explorer architektury ładniej pokazywał
później to sobie opisz tak:

U1:process (CLK)


U2:process (CLK)


U3:process (CLK)

Jak masz explorator rysujący obrazki to będziesz miał scalaczki na nim :-0

Adam GĂłrski
Guest

Thu Apr 24, 2014 10:38 am   



Quote:
Gdzie jest różnica?


Przy tak krótkim kodzie zawartym wewnątrz procesu, to nigdzie.
Teoretycznie to co jest zawarte w procesie będzie się realizować "po
kolei", czyli "prawie" jak w programie napisanym na uC.

Jak przeczytam to jeszcze raz to będę gryzł. To NIE jest prawie jak w
programie napisanym na uC. To jest zdecydowanie inne od programu
napisanego dla uC.

Quote:
Gdzieś czytałem ostatnio także o innej ciekawej kwestii dotyczącej
procesu - mniej więcej chodzi o to, że słowo kluczowe "process" oraz
podawana wraz z nim lista czułości jest ważna właściwie tylko dla
zwiększenia czytelności kodu oraz przy vhdl-u używanym dla symulacji.
Przy syntezie do docelowego układu kompilator zwraca uwagę głównie na
zależności logiczne między sygnałami, czyli w tym przypadku na if
CLK'event and CLK='1' then.


Faktycznie największą rolę odgrywa w symulacji.
Należy pamiętać że bardzo łatwo jest napisać fragment niesyntezowalny,
czyli taki którego nie da się skompilować na 99% dostępnych układów.

Pzdr

Adam Górski

nowyr
Guest

Thu Apr 24, 2014 12:38 pm   



"Adam Górski" <gorskiamalpa@wpkropkapl> wrote in message
news:5358e985$0$2231$65785112@news.neostrada.pl...

Quote:
Gdzieś czytałem ostatnio także o innej ciekawej kwestii dotyczącej
procesu - mniej więcej chodzi o to, że słowo kluczowe "process" oraz
podawana wraz z nim lista czułości jest ważna właściwie tylko dla
zwiększenia czytelności kodu oraz przy vhdl-u używanym dla symulacji.
Przy syntezie do docelowego układu kompilator zwraca uwagę głównie na
zależności logiczne między sygnałami, czyli w tym przypadku na if
CLK'event and CLK='1' then.


Faktycznie największą rolę odgrywa w symulacji.
Należy pamiętać że bardzo łatwo jest napisać fragment niesyntezowalny,
czyli taki którego nie da się skompilować na 99% dostępnych układów.

Lista czułości VHDL obejmuje zegary i to co przed nimi.jako input do procesu

U12:process(clk, reset)
if reset='0' then
x <= '0';
elseif clk'event and clk='1' then
......

Adam GĂłrski
Guest

Thu Apr 24, 2014 12:55 pm   



W dniu 2014-04-24 14:38, nowyr pisze:
Quote:

"Adam Górski" <gorskiamalpa@wpkropkapl> wrote in message
news:5358e985$0$2231$65785112@news.neostrada.pl...

Gdzieś czytałem ostatnio także o innej ciekawej kwestii dotyczącej
procesu - mniej więcej chodzi o to, że słowo kluczowe "process" oraz
podawana wraz z nim lista czułości jest ważna właściwie tylko dla
zwiększenia czytelności kodu oraz przy vhdl-u używanym dla symulacji.
Przy syntezie do docelowego układu kompilator zwraca uwagę głównie na
zależności logiczne między sygnałami, czyli w tym przypadku na if
CLK'event and CLK='1' then.


Faktycznie największą rolę odgrywa w symulacji.
Należy pamiętać że bardzo łatwo jest napisać fragment niesyntezowalny,
czyli taki którego nie da się skompilować na 99% dostępnych układów.

Lista czułości VHDL obejmuje zegary i to co przed nimi.jako input do
procesu

U12:process(clk, reset)
if reset='0' then
x <= '0';
elseif clk'event and clk='1' then
......

Lista czułości VHDL definiuje przy zmianach jakich sygnałów proces
powinien zostać wznowiony.

Adam

nowyr
Guest

Thu Apr 24, 2014 10:33 pm   



"Adam Górski" <gorskiamalpa@wpkropkapl> wrote in message
news:535909ab$0$2149$65785112@news.neostrada.pl...

Quote:
Lista czułości VHDL obejmuje zegary i to co przed nimi.jako input do
procesu

U12:process(clk, reset)
if reset='0' then
x <= '0';
elseif clk'event and clk='1' then
......

Lista czułości VHDL definiuje przy zmianach jakich sygnałów proces
powinien zostać wznowiony.

Ale nie wszystkich. Tylko zegar i asynchroniczne sygnały nierejestrowane.
Wszystko co siedzi pod even'em nie wpisujesz, bo to załatwia zbocze zegara,
a nie lista czułości. Cokolwiek będzie pomiędzy elseif clk'event and clk='1'
then oraz endifem dla niego nie wpisujemy na listę czułości procesu.

Adam GĂłrski
Guest

Fri Apr 25, 2014 8:08 am   



Quote:
Lista czułości VHDL obejmuje zegary i to co przed nimi.jako input do
procesu

U12:process(clk, reset)
if reset='0' then
x <= '0';
elseif clk'event and clk='1' then
......

Lista czułości VHDL definiuje przy zmianach jakich sygnałów proces
powinien zostać wznowiony.

Ale nie wszystkich. Tylko zegar i asynchroniczne sygnały
nierejestrowane. Wszystko co siedzi pod even'em nie wpisujesz, bo to
załatwia zbocze zegara, a nie lista czułości. Cokolwiek będzie pomiędzy
elseif clk'event and clk='1' then oraz endifem dla niego nie wpisujemy
na listę czułości procesu.


Za bardzo patrzysz na to przez pryzmat architektury na którą piszesz.
To że większość fpga ma 4 i więcej wejściowy LUT + reg + kilka dodatków
wymusza takie a nie inną konstrukcję.
VHDL pozwala na dużo więcej niż może zrealizować hardware.

Najprostszym przykładem jest proces reagujący na oba zbocza. Symuluje
się świetnie a "skompilować" już ciężko. Nie znaczy to jednak że
projektując ASIC takie konstrukcje nie są możliwe.

Poza tym , nigdzie nie napisałem że to bzdury. Raczej jedna z możliwości.

Pzdr.

Adam Górski

nowyr
Guest

Sat Apr 26, 2014 5:37 pm   



"Adam Górski" <gorskiamalpa@wpkropkapl> wrote in message
news:535a17ef$0$2368$65785112@news.neostrada.pl...

Quote:
Ale nie wszystkich. Tylko zegar i asynchroniczne sygnały
nierejestrowane. Wszystko co siedzi pod even'em nie wpisujesz, bo to
załatwia zbocze zegara, a nie lista czułości. Cokolwiek będzie pomiędzy
elseif clk'event and clk='1' then oraz endifem dla niego nie wpisujemy
na listę czułości procesu.


Za bardzo patrzysz na to przez pryzmat architektury na którą piszesz.

Obaj mamy po części rację Smile

elektroda NewsGroups Forum Index - Elektronika Polska - Różnice w implementacji przerzutnika D w VHDL z użyciem i bez PROCESS

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map