-
1. Data: 2014-04-20 22:50:42
Temat: VHDL - PROCESS
Od: s...@g...com
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?
-
2. Data: 2014-04-21 20:07:56
Temat: Re: VHDL - PROCESS
Od: Jakub Rakus <s...@o...pl>
On 20.04.2014 22:50, s...@g...com wrote:
> 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
-
3. Data: 2014-04-22 14:07:58
Temat: Re: VHDL - PROCESS
Od: "nowyr" <d...@y...pl>
<s...@g...com> wrote in message
news:f3e67ff6-7b2e-4022-a838-c48885535385@googlegrou
ps.com...
Szczerze powiedziawszy nie za bardzo łapię listę czułości -
process(coś_tam).
> 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
-
4. Data: 2014-04-24 12:38:00
Temat: Re: VHDL - PROCESS
Od: Adam Górski <gorskiamalpa@wpkropkapl>
>> 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.
> 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
-
5. Data: 2014-04-24 14:38:13
Temat: Re: VHDL - PROCESS
Od: "nowyr" <d...@y...pl>
"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
.....
-
6. Data: 2014-04-24 14:55:07
Temat: Re: VHDL - PROCESS
Od: Adam Górski <gorskiamalpa@wpkropkapl>
W dniu 2014-04-24 14:38, nowyr pisze:
>
> "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
-
7. Data: 2014-04-25 00:33:06
Temat: Re: VHDL - PROCESS
Od: "nowyr" <d...@y...pl>
"Adam Górski" <gorskiamalpa@wpkropkapl> wrote in message
news:535909ab$0$2149$65785112@news.neostrada.pl...
>> 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.
-
8. Data: 2014-04-25 10:08:14
Temat: Re: VHDL - PROCESS
Od: Adam Górski <gorskiamalpa@wpkropkapl>
>>> 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
-
9. Data: 2014-04-26 19:37:14
Temat: Re: VHDL - PROCESS
Od: "nowyr" <d...@y...pl>
"Adam Górski" <gorskiamalpa@wpkropkapl> wrote in message
news:535a17ef$0$2368$65785112@news.neostrada.pl...
>> 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ę :-)