1. Fotoaparati
  2. Auto audio i elektronika
  3. Kućni audio
  4. Osobni audio
  5. Televizori
  6. Pametna kuća

Kod za generiranje kvadratnog vala u VHDL-u?

```vhdl

knjižnica ieee;

koristiti ieee.std_logic_1164.all;

koristiti ieee.numeric_std.all;

entitet kvadratni_generator_valova je

luka (

clk :u std_logici;

reset :u std_logic;

frekvencija :u std_logic_vector(7 downto 0); -- Ulazna frekvencija u Hz (0-255)

izlazni_signal :izlazna std_logika

);

krajnji entitet kvadratni_generator_valova;

arhitektura ponašanja generatora kvadratnih_valova je

brojač signala :unsigned(7 downto 0);

signal half_period :unsigned(7 downto 0);

početi

-- Izračunajte poluperiod na temelju ulazne frekvencije

poluperioda <=10000000 / (2 * bez predznaka (frekvencija)); -- 10000000 =10MHz taktna frekvencija

proces (clk, reset)

početi

ako je reset ='1' tada

brojač <=(ostali => '0');

izlazni_signal <='0';

elsif rastući_rub(clk) zatim

if counter =half_period - 1 then

brojač <=(ostalo => '0');

izlazni_signal <=nije izlazni_signal;

drugo

brojač <=brojač + 1;

kraj ako;

kraj ako;

završni proces;

end architecture bihevioralni;

```

Objašnjenje:

1. Deklaracija entiteta:

- Definira entitet `square_wave_generator` s priključcima za sat, resetiranje, ulaz frekvencije (8-bitni) i izlazni signal.

2. Arhitektura:

- Koristi "biheviorističku" arhitekturu za opisivanje logike.

3. Signali:

- `brojač`:8-bitni brojač bez predznaka za generiranje valnog oblika.

- `half_period`:8-bitni signal bez predznaka koji predstavlja poluperiod pravokutnog vala (izračunato na temelju ulazne frekvencije).

4. Izračun poluvremena:

- Redak `half_period <=10000000 / (2 * unsigned(frequency));` izračunava poluperiod na temelju ulazne frekvencije i frekvencije takta od 10MHz. Podesite vrijednost "10000000" ako je vaša frekvencija takta drugačija.

5. Proces:

- Proces je osjetljiv na signale sata i resetiranja.

- Obavlja sljedeće:

- Poništi logiku: Ako je `reset` visok, brojač se vraća na nulu, a izlaz se postavlja na nizak.

- Rising Edge Logic: Na rastućem rubu takta, proces provjerava je li brojač dosegao vrijednost `half_period - 1`. Ako je tako, prebacuje `output_signal` i resetira brojač. U suprotnom, povećava brojač.

Kako to radi:

- Brojač broji od 0 do `half_period - 1`.

- Kada brojač dosegne `half_period - 1`, izlazni signal se uključuje, a brojač se poništava.

- Ovo stvara kvadratni val s periodom dvostrukom od izračunate `polu_periode`.

Korištenje:

- Spojite signale `clk` i `reset` na vaš sat i ulaze za resetiranje.

- Unesite željenu frekvenciju (0-255 Hz) preko ulaza `frequency`.

- `output_signal` će ispisati generirani kvadratni val.

Napomena: Ovaj kod pretpostavlja frekvenciju takta od 10MHz. Izmijenite izračun `half_period` ako je vaša frekvencija sata drugačija.

  1. Sony daljinski upravljač rm-y195 kod za glavni kanal digitalni TV pretvarač cm7000?
  2. Pretvarači su uređaji koji se koriste za transformaciju. AC Dc DC DC?
  3. Koji su nedostaci korištenja TV digitalnog pretvarača?
  4. Zašto se moj Cruz čitač ne uključuje iako je priključen na punjač?
  5. Koji se softver koristi za pretvaranje videozapisa niske kvalitete u HD kvalitetu?