1. fotoaparati
  2. Car Audio & Electronics
  3. Home Audio
  4. Osobni Audio
  5. TV
  6. Pametna kuća
  >> Hrvatska Electronic Technology >  >> Osobni Audio >> Digitalni diktafoni

Kako se piše Verilog kod za modificirani enkoder kabine?

```verilog

modul modificirani_koder_kabine (

ulaz [3:0] množenik, // 4-bitni množenik

ulazni [3:0] množitelj, // 4-bitni množitelj

izlaz [7:0] proizvod // 8-bitni proizvod

);

// Interni registri za djelomične proizvode

reg [7:0] djelomični_proizvod [0:3];

// Inicijaliziranje djelomičnih proizvoda na 0

početni početak

djelomični_proizvod[0] <=0;

djelomični_proizvod[1] <=0;

djelomični_proizvod[2] <=0;

djelomični_proizvod[3] <=0;

kraj

// Logika kodiranja kabine

uvijek @(*) počinje

// Iteracija kroz svaki bit množitelja

za (cijeli broj i =0; i <4; i =i + 1) početak

// Provjerite obrasce kodiranja kabine

slučaj ({množitelj[i], množitelj[i-1]})

2'b00:početak

djelomični_proizvod[i] <=djelomični_proizvod[i];

kraj

2'b01:početak

djelomični_proizvod[i] <=djelomični_proizvod[i] + množenik;

kraj

2'b10:početak

djelomični_proizvod[i] <=djelomični_proizvod[i] - množenik;

kraj

2'b11:početak

djelomični_proizvod[i] <=djelomični_proizvod[i];

kraj

zadano:početak

djelomični_proizvod[i] <=djelomični_proizvod[i];

kraj

završni slučaj

kraj

kraj

// Izračunajte konačni proizvod

dodijeli proizvod =djelomični_proizvod[0] + (djelomični_proizvod[1] <<1) + (djelomični_proizvod[2] <<2) + (djelomični_proizvod[3] <<3);

krajnji modul

```

Objašnjenje:

1. Ulazi i izlazi:

- `množenik`:4-bitni unos koji predstavlja množenik.

- `multiplier`:4-bitni unos koji predstavlja množitelj.

- `proizvod`:8-bitni izlaz koji predstavlja umnožak množenika i množitelja.

2. Interni registri:

- `partial_product`:Niz od 4 registra, od kojih svaki pohranjuje djelomični umnožak. Ovi registri će se ažurirati na temelju Booth kodiranja.

3. Inicijalizacija:

- Početni blok postavlja sve djelomične registre proizvoda na 0 na početku.

4. Logika kodiranja kabine:

- Blok `always @(*)` implementira Boothov algoritam kodiranja.

- Iterira kroz svaki bit množitelja (od MSB do LSB).

- Za svaki bit, provjerava trenutni bit i prethodni bit kako bi odredio Boothov uzorak kodiranja.

- Na temelju uzorka izvodi odgovarajuću operaciju na djelomičnom proizvodu:

- 00: Nema operacije (djelomični proizvod ostaje nepromijenjen).

- 01: Dodajte množenik djelomičnom umnošku.

- 10: Oduzmite množenik od djelomičnog umnoška.

- 11: Nema operacije (djelomični proizvod ostaje nepromijenjen).

5. Izračun konačnog proizvoda:

- Naredba `assign` izračunava konačni proizvod dodavanjem pomaknutih djelomičnih proizvoda.

- Svaki djelomični umnožak pomaknut je ulijevo za odgovarajuću poziciju bita.

Kako kod funkcionira:

Modificirani Boothov algoritam kodiranja zamjenjuje proces množenja nizom zbrajanja i oduzimanja na temelju uzoraka u množitelju. Provjerom parova uzastopnih bitova u množitelju, možemo učinkovito izvesti množenje.

Primjer:

Pretpostavimo da je `množnik =5` (binarno:`0101`) i `množnik =3` (binarno:`0011`).

1. Iteracija 1: `multiplier[3:2] =00` - Nema operacije.

2. Iteracija 2: `množnik[2:1] =01` - Dodajte `množenik` u `djelomični_proizvod[1]`.

3. Iteracija 3: `multiplier[1:0] =11` - Nema operacije.

Nakon petlje, imat ćemo:

- `djelomični_proizvod[0] =0`

- `djelomični_proizvod[1] =5`

- `djelomični_proizvod[2] =0`

- `djelomični_proizvod[3] =0`

Konačno, `proizvod =0 + (5 <<1) + (0 <<2) + (0 <<3) =10` (binarno:`1010`), što je točan umnožak 5 i 3.

  1. Kako ukloniti Skinit
  2. Kako koristiti Sennheiser bežične slušalice
  3. Kako staviti glazbu na SanDisk s CD-a
  4. Može li iTunes raditi s BILO KIM MP3 playerom?
  5. Kako kopirati glazbu izravno s CD-a na iPod na MacBook