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

Kako napišete kodo Verilog za spremenjen kodirnik kabine?

```verilog

modul modified_booth_encoder (

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

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

izhod [7:0] izdelek // 8-bitni izdelek

);

// Interni registri za delne izdelke

reg [7:0] delni_produkt [0:3];

// Inicializacija delnih produktov na 0

začetni začetek

delni_produkt[0] <=0;

delni_produkt[1] <=0;

delni_produkt[2] <=0;

delni_produkt[3] <=0;

konec

// Logika kodiranja kabine

vedno se začne @(*).

// Iteracija skozi vsak bit množitelja

za (celo število i =0; i <4; i =i + 1) začetek

// Preverite vzorce kodiranja kabine

case ({množitelj[i], množitelj[i-1]})

2'b00:začetek

delni_izdelek[i] <=delni_izdelek[i];

konec

2'b01:začetek

delni_produkt[i] <=delni_produkt[i] + množenec;

konec

2'b10:začetek

delni_produkt[i] <=delni_produkt[i] - množenec;

konec

2'b11:začetek

delni_izdelek[i] <=delni_izdelek[i];

konec

privzeto:začetek

delni_izdelek[i] <=delni_izdelek[i];

konec

končni primer

konec

konec

// Izračunajte končni izdelek

dodeli izdelek =delni_izdelek[0] + (delni_izdelek[1] <<1) + (delni_izdelek[2] <<2) + (delni_izdelek[3] <<3);

končni modul

```

Razlaga:

1. Vhodi in izhodi:

- `množenik`:4-bitni vnos, ki predstavlja množitelj.

- `multiplier`:4-bitni vhod, ki predstavlja množitelj.

- `produkt`:8-bitni izhod, ki predstavlja zmnožek množitelja in množitelja.

2. Notranji registri:

- `delni_produkt`:Niz 4 registrov, od katerih vsak hrani delni produkt. Ti registri bodo posodobljeni glede na kodiranje Booth.

3. Inicializacija:

- Začetni blok nastavi vse delne registre izdelkov na 0 na začetku.

4. Logika kodiranja Booth:

- Blok `vedno @(*)` implementira Boothov algoritem kodiranja.

- Ponavlja vsak bit množitelja (od MSB do LSB).

- Za vsak bit preveri trenutni bit in prejšnji bit, da določi Boothov vzorec kodiranja.

- Na podlagi vzorca izvede ustrezno operacijo na delnem izdelku:

- 00: Brez operacije (delni izdelek ostane nespremenjen).

- 01: Delnemu zmnožku dodajte množitelj.

- 10: Odštejte množitelj od delnega produkta.

- 11: Brez operacije (delni izdelek ostane nespremenjen).

5. Izračun končnega izdelka:

- Izjava `assign` izračuna končni produkt z dodajanjem premaknjenih delnih produktov.

- Vsak delni produkt je premaknjen levo za svoj ustrezni bitni položaj.

Kako koda deluje:

Spremenjen Boothov algoritem kodiranja nadomešča postopek množenja z vrsto seštevanj in odštevanj na podlagi vzorcev v množitelju. S pregledovanjem parov zaporednih bitov v množilniku lahko učinkovito izvedemo množenje.

Primer:

Recimo, da je `množenec =5` (binarno:`0101`) in `množitelj =3` (binarno:`0011`).

1. 1. ponovitev: `multiplier[3:2] =00` - Brez operacije.

2. 2. ponovitev: `množitelj [2:1] =01` – Dodajte `množenec` v `delni_zmnožek[1]`.

3. Ponovitev 3: `množitelj [1:0] =11` - Brez operacije.

Po zanki bomo imeli:

- `delni_produkt[0] =0`

- `delni_produkt[1] =5`

- `delni_produkt[2] =0`

- `delni_produkt[3] =0`

Končno, `produkt =0 + (5 <<1) + (0 <<2) + (0 <<3) =10` (binarno:`1010`), kar je pravilen zmnožek 5 in 3.

  1. Kako vedeti , če vaš MP4 predvajalnik Has Been Hacked
  2. Kako Wire končnim delom na kabel mikrofona
  3. Kako primerjati iPod Cene
  4. Kakšne možnosti shranjevanja ponuja Philipsov mp3 predvajalnik?
  5. Kako uporabljati Voice Activated Digital Micro Snemalnik