VHDL - hloupe otazky 2.0

balu@home balu na k-net.fr
Pátek Leden 3 23:04:52 CET 2014


zalezi co od toho ocakavate...
Ak potrebujete kvalitne hodiny tak ich treba po cipe rozvadzat 
dedikovanymi hodinovymi zbernicami. To sa sposobom uvedenym dole neda 
(pouzijem hodinovu zbernicu pre logiku a ta bude generovat odvodene 
hodiny, tieto sa budu ale rozvadzat len beznym routovanim).
Vacsina FPGA ma na cipe obvody sluziace na upravu hodin. Treba 
instancovat vhodny primitiv a mate to zadarmo. Najdete oneskorovacie 
linky, fazove zavesy, oneskorovacie zavesy a ine. Asi by som sa v prvom 
rade pozrel tymto smerom.
Mozno musia byt obidve frekvencie perfektne nizkosumove, mozno tych 
odvodenych 65MHz moze byt robenych len nejakym clock enable na 100MHz 
domene. Mozno by nebolo zle naznacit konecnu aplikaciu.
b.


On 03/01/2014 22:40, Draček Fráček wrote:
> Jsem asi ten posledni , dko tu muze radit ve VHDL, neb je to pro me
> pueblo español, presto.
> Ono zalezi na jakem HW to pak pojede a predevsim jak haklivy jste na
> presnsot a stridu hodin.
> Pokud nejste cimprlich tak, timhle by pri M=13 a D=20 mohlo jit udelat
> 65 z 100
>
> -- =======
> --
> -- Given:
> --
> --   Fi = input frequency Hz
> --   M  = multiplier
> --   D  = divisor
> --   Fo = output frequency Hz
> --
> -- Where:
> --
> --   M ≤ D
> --
> -- Then:
> --
> --        ⎧    M
> --        ⎪ Fi·—        if M <= D
> --   Fo = ⎨    D
> --        ⎪
> --        ⎩ undefined   if M > D
> --
> --
> -- If (M/D) is greater than 0.5, only the clock enable is valid.
> -- If (M/D) is greater than 1.0, both outputs are invalid.
>
> entity Clock_Divider is
>    generic (
>      operand_width : positive
>      );
>    port (
>      clock : in bit;
>      reset : in bit;
>
>      multiplier : in unsigned(operand_width-1 downto 0);
>      divisor    : in unsigned(operand_width-1 downto 0);
>
>      out_enable : buffer bit;
>      out_clock  : buffer bit
>      );
> end entity;
>
> architecture any of Clock_Divider is
>    signal enable_2x : bit;
> begin
>
>    -- Divide the clock by accumulating phase using the mulitplier and
>    -- subtracting when we pass the divisor value.
>
>    proc_enable : process is
>      variable phase : unsigned(operand_width downto 0);
>    begin
>      wait until rising_edge(clock);
>      phase := phase + multiplier;
>      if phase >= divisor then
>        phase := phase - divisor;
>        out_enable <= '1';
>      else
>        out_enable <= '0';
>      end if;
>      if reset = '1' then
>        phase := (others => '0');
>        out_enable <= '0';
>      end if;
>    end process;
>
>    proc_enable : process is
>      variable phase : unsigned(operand_width downto 0);
>    begin
>      wait until rising_edge(clock);
>      phase := phase + (multiplier & '0');
>      if phase >= divisor then
>        phase := phase - divisor;
>        enable_2x <= '1';
>      else
>        enable_2x <= '0';
>      end if;
>      if reset = '1' then
>        phase := (others => '0');
>        enable_2x <= '0';
>      end if;
>    end process;
>
>
>    proc_out_clock : process is
>    begin
>      wait until rising_edge(clock);
>      if enable_2x = '1' then
>        out_clock <= not out_clock;
>      end if;
>    end process;
>
> end architecture;		
>
>
>
> Dne 3. ledna 2014 21:14 <hw na itherm.cz <mailto:hw na itherm.cz>> napsal(a):
>
>     Mam dalsi otazku ;-)
>
>     Potreboval bych generovat 65MHz a 100MHz hodiny, da se to udelat pomoci
>     jednech hodin z venku?
>
>     Pavel
>
>
>     -----Original Message-----
>     From: Hw-list [mailto:hw-list-bounces na list.hw.cz
>     <mailto:hw-list-bounces na list.hw.cz>] On Behalf Of Marek Peca
>     Sent: 2. ledna 2014 10:13
>     To: HW-news
>     Subject: RE: VHDL - hloupe otazky
>
>      > Me pri otazce slo hlavne o to jestli neni nejaky jeste lepsi postup
>      > nez stavovy automat.
>
>     To je velmi zapeklita otazka. Z hlediska Turingovske ekvivalence
>     automatu je
>     v synchronnim svete uplne *kazdy* obvod na spolecnem hodinovem signalu
>     stavovym automatem...
>
>     Prakticky zajimave jsou tedy 2 rozdilne dusledky zpusobu psani v HDL:
>     a) co vyjde dobre na cas, popr. spotrebu hradel
>     b) co se dobre cte a pise
>
>      > Premyslel jsem nad tim to udelat i jako velky posuvny registr a
>     proste
>      > to precist najednou ;-)
>
>     V a) to pro vetsinu uloh vyjde nevyhodne, velmi brzo pomine i
>     zdanlive b),
>     obavam se.
>
>
>     ZdraviMP
>     _______________________________________________
>     HW-list mailing list  -  sponsored by www.HW.cz <http://www.HW.cz>
>     Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>     http://list.hw.cz/mailman/listinfo/hw-list
>
>     _______________________________________________
>     HW-list mailing list  -  sponsored by www.HW.cz <http://www.HW.cz>
>     Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>     http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>


Další informace o konferenci Hw-list