1. Kamere
  2. Avto avdio in elektronika
  3. Domači avdio
  4. Osebni avdio
  5. Televizorji
  6. Pametni dom
  >> Elektronska Tehnologija >  >> 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.

  • --热点Elektronske tehnologije Online
  1. Ali lahko uporabite transformator 500 mA 12 VDC na enoti, ki zahteva 180 mA 12 VDC?
  2. Kako vedeti , če je moj TV potrebuje Box Converter
  3. Kako namestiti Magnavox DVD predvajalnik /DTV Converter
  4. Ko se naročnik Dish Network preseli, ali vzame svoj sprejemnik s seboj ali bi ga moral oddati in zahtevati novega?
  5. Ali je lahko TV z vgrajenim VHS pretvornikom za predvajanje DVD-jev?