Chciałbym wiedzieć czy mam rację w pewnej kwestii. Nie wiem gdzie tego szukać a nikt w kursach nie porusza tego tematu.
W układach sekwencyjnych sychronicznych (jakimi są chyba procesy w vhdl ale nie jestem pewien na 100% odpowiedzcie)
wykonywane operacje zależą od zegara czyli to oznacza że każda pojedyncza instrukcja w vhdl w procesie wykonywana jest przy 1 zboczu narastającym lub opadającym ?
2. Jeśli moje domysły mają rację. Czy ma miejsce sytuacja że np piszemy kod w procesie i używamy jako argumeny if rising_edge_clk na narastające zbocze i w tym warunku jeśli nastąpi to zrobimy jakiś kolejny if który będzie liczył narastające zbocza i np co sekundę będzie zapalał diodą. To mało kodu ale załóżmy że zamiast zapalania diody będzie bardzo wiele instrukcji To czy w takiej sytuacji trochę zbocz zegara zostanie poświęconych na prace algorytmu co spowoduje, że algorytm odpowiadający za liczenie zbocz nie policzy wszystkich? bo będą wykonywały się inne instrukcję ?
ewentualnie link do czegoś o tym
Dodano po 1 [minuty]:
przy wyższym taktowaniu tym bym się nie przejmował ale będę tym przetwarzał sygnał zamiast używać atmegi328
Dodano po 2 [godziny] 19 [minuty]:
naprzykład taki kod tyle że zamiast migania led będzie więcej operacji
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.std_logic_unsigned.all;
entity glowny is
Port ( clk : in STD_LOGIC;
led : out STD_LOGIC);
end glowny;
architecture Behavioral of glowny is
signal licznik:STD_LOGIC_VECTOR(0 to 29):="000000000000000000000000000000";
signal ledsig:STD_LOGIC:='1';
begin
process(clk)
begin
if(rising_edge(clk)) then
if(licznik= "101101110001101011111111") then
licznik<="000000000000000000000000000000";
ledsig<=not ledsig;
else
licznik<=licznik+"1";
end if;
end if;
end process;
led<=ledsig;
end Behavioral;
W układach sekwencyjnych sychronicznych (jakimi są chyba procesy w vhdl ale nie jestem pewien na 100% odpowiedzcie)
wykonywane operacje zależą od zegara czyli to oznacza że każda pojedyncza instrukcja w vhdl w procesie wykonywana jest przy 1 zboczu narastającym lub opadającym ?
2. Jeśli moje domysły mają rację. Czy ma miejsce sytuacja że np piszemy kod w procesie i używamy jako argumeny if rising_edge_clk na narastające zbocze i w tym warunku jeśli nastąpi to zrobimy jakiś kolejny if który będzie liczył narastające zbocza i np co sekundę będzie zapalał diodą. To mało kodu ale załóżmy że zamiast zapalania diody będzie bardzo wiele instrukcji To czy w takiej sytuacji trochę zbocz zegara zostanie poświęconych na prace algorytmu co spowoduje, że algorytm odpowiadający za liczenie zbocz nie policzy wszystkich? bo będą wykonywały się inne instrukcję ?
ewentualnie link do czegoś o tym
Dodano po 1 [minuty]:
przy wyższym taktowaniu tym bym się nie przejmował ale będę tym przetwarzał sygnał zamiast używać atmegi328
Dodano po 2 [godziny] 19 [minuty]:
naprzykład taki kod tyle że zamiast migania led będzie więcej operacji
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.std_logic_unsigned.all;
entity glowny is
Port ( clk : in STD_LOGIC;
led : out STD_LOGIC);
end glowny;
architecture Behavioral of glowny is
signal licznik:STD_LOGIC_VECTOR(0 to 29):="000000000000000000000000000000";
signal ledsig:STD_LOGIC:='1';
begin
process(clk)
begin
if(rising_edge(clk)) then
if(licznik= "101101110001101011111111") then
licznik<="000000000000000000000000000000";
ledsig<=not ledsig;
else
licznik<=licznik+"1";
end if;
end if;
end process;
led<=ledsig;
end Behavioral;