1. kamere
  2. Car Audio & Electronics
  3. Domači glasbeni sistem
  4. Osebni avdio
  5. televizorji
  6. Pametni dom
  >> Elektronske tehnologije Online >  >> televizorji >> TV pretvorniki

Koda za generiranje kvadratnih valov v VHDL?

```vhdl

knjižnica ieee;

uporabite ieee.std_logic_1164.all;

uporabite ieee.numeric_std.all;

entiteta square_wave_generator je

pristanišče (

clk :v std_logic;

ponastavitev:v std_logic;

frekvenca:v std_logic_vector(7 downto 0); -- Vhodna frekvenca v Hz (0-255)

izhodni_signal:izhodna std_logika

);

končna entiteta kvadratni_generator_valov;

vedenje arhitekture square_wave_generatorja je

števec signalov:brez predznaka (7 navzdol do 0);

polovična_perioda signala:brez predznaka (7 navzdol do 0);

začeti

-- Izračunajte polperiodo glede na vnos frekvence

polovična_perioda <=10000000 / (2 * brez predznaka (frekvenca)); -- 10000000 =taktna frekvenca 10MHz

postopek (clk, ponastavitev)

začeti

če je ponastavitev ='1' potem

števec <=(ostali => '0');

izhodni_signal <='0';

elsif rising_edge(clk) torej

če je števec =pol_obdobje - 1 potem

števec <=(ostali => '0');

izhodni_signal <=ni izhodni_signal;

drugače

števec <=števec + 1;

konec če;

konec če;

končni postopek;

vedenjska končna arhitektura;

```

Razlaga:

1. Izjava subjekta:

- Definira entiteto `square_wave_generator` z vrati za uro, ponastavitev, frekvenčni vhod (8-bitni) in izhodni signal.

2. Arhitektura:

- Uporablja `vedenjsko` arhitekturo za opisovanje logike.

3. Signali:

- `counter`:8-bitni nepredznačeni števec za generiranje oblike valov.

- `half_period`:8-bitni signal brez predznaka, ki predstavlja polovično obdobje kvadratnega vala (izračunano na podlagi vhodne frekvence).

4. Izračun polčasa:

- Vrstica `half_period <=10000000 / (2 * unsigned(frequency));` izračuna polperiodo na podlagi vhodne frekvence in taktne frekvence 10 MHz. Prilagodite vrednost `10000000`, če je vaša urna frekvenca drugačna.

5. Postopek:

- Proces je občutljiv na signale ure in ponastavitve.

- Izvaja naslednje:

- Ponastavi logiko: Če je `reset` visoko, se števec ponastavi na nič, izhod pa na nizek.

- Rising Edge Logic: Na naraščajočem robu ure proces preveri, ali je števec dosegel vrednost `half_period - 1`. Če je tako, preklopi `output_signal` in ponastavi števec. V nasprotnem primeru poveča števec.

Kako deluje:

- Števec šteje od 0 do `half_period - 1`.

- Ko števec doseže `half_period - 1`, se izhodni signal preklopi in števec ponastavi.

- To ustvari pravokotni val s periodo, ki je dvakrat večja od izračunane `polovične_periode`.

Uporaba:

- Povežite signala `clk` in `reset` z vašo uro in vhodi za ponastavitev.

- Zagotovite želeno frekvenco (0-255 Hz) prek vnosa `frekvenca`.

- `output_signal` bo izpisal ustvarjeni kvadratni val.

Opomba: Ta koda predvideva taktno frekvenco 10MHz. Spremenite izračun `half_period`, če je vaša urna frekvenca drugačna.

  1. Vrste RG 6 Kabli
  2. Kako odpraviti težave Toshiba 50H13 projekcije televiziji
  3. Kako ponastaviti plazma TV
  4. Kako so navitja izdelana v transformatorju glede na napetost?
  5. DIY LCD Mount