1. kamerák
  2. Car Audio & Electronics
  3. Home Audio
  4. Personal Audio
  5. TV-k
  6. Okos otthon
  >> Elektronikai Technológia Online >  >> Personal Audio >> Digitális hangrögzítők

Hogyan írhat Verilog kódot a módosított fülkekódolóhoz?

``` verilog

moduled_booth_encoder (

bemenet [3:0] szorzó, // 4 bites szorzó

bemeneti [3:0] szorzó, // 4 bites szorzó

output [7:0] termék // 8 bites termék

);

// Résztermékek belső regiszterei

reg [7:0] részleges_termék [0:3];

// Résztermékek inicializálása 0-ra

kezdeti kezdés

részleges_termék[0] <=0;

részleges_termék[1] <=0;

részleges_termék[2] <=0;

részleges_termék[3] <=0;

vége

// Booth kódolási logika

mindig a @(*) kezdődik

// Iteráció a szorzó minden bitjén keresztül

mert (i egész szám =0; i <4; i =i + 1) kezdődik

// Booth kódolási minták ellenőrzése

eset ({szorzó[i], szorzó[i-1]})

2'b00:kezdődik

részleges_termék[i] <=részleges_termék[i];

vége

2'b01:kezdődik

részleges_termék[i] <=részleges_termék[i] + szorzó;

vége

2'b10:kezdődik

részleges_termék[i] <=részleges_termék[i] - szorzó;

vége

2'b11:kezdődik

részleges_termék[i] <=részleges_termék[i];

vége

alapértelmezett:kezdődik

részleges_termék[i] <=részleges_termék[i];

vége

végügy

vége

vége

// A végtermék kiszámítása

termék hozzárendelése =részleges_termék[0] + (résztermék[1] <<1) + (résztermék[2] <<2) + (résztermék[3] <<3);

végmodul

```

Magyarázat:

1. Bemenetek és kimenetek:

- "multiplicand":a szorzót képviselő 4 bites bemenet.

- "szorzó":a szorzót képviselő 4 bites bemenet.

- "termék":8 bites kimenet, amely a szorzó és a szorzó szorzatát képviseli.

2. Belső nyilvántartások:

- "részleges_termék":4 regiszterből álló tömb, amelyek mindegyike egy részterméket tárol. Ezeket a regisztereket a Booth kódolás alapján frissítjük.

3. Inicializálás:

- A kezdeti blokk az összes résztermékregisztert 0-ra állítja az elején.

4. Booth kódolási logika:

- Az "always @(*)" blokk a Booth kódolási algoritmust valósítja meg.

- Iterál a szorzó minden bitjén (MSB-től LSB-ig).

- Minden bitnél ellenőrzi az aktuális bitet és az előző bitet, hogy meghatározza a Booth kódolási mintát.

- A minta alapján elvégzi a megfelelő műveletet a részterméken:

- 00: Nem működik (a résztermék változatlan marad).

- 01: Adja hozzá a szorzót a részszorzathoz.

- 10: Vonja ki a szorzót a részszorzatból.

- 11: Nem működik (a résztermék változatlan marad).

5. Végső termék számítása:

- A "hozzárendelés" utasítás az eltolt résztermékek hozzáadásával számítja ki a végterméket.

- Minden részszorzat balra tolódik el a megfelelő bitpozícióval.

A kód működése:

A módosított Booth-kódolási algoritmus a szorzási folyamatot a szorzóban lévő mintákon alapuló összeadások és kivonások sorozatával helyettesíti. A szorzóban egymást követő bitpárok vizsgálatával hatékonyan tudjuk végrehajtani a szorzást.

Példa:

Tegyük fel, hogy "szorzószám =5" (bináris:"0101") és "szorzó =3" (bináris:"0011").

1. 1. iteráció: `szorzó[3:2] =00` – Nincs művelet.

2. 2. iteráció: `multiplier[2:1] =01` – `multiplicand` hozzáadása a `partial_product[1]`-hez.

3. 3. iteráció: `szorzó[1:0] =11` – Nincs művelet.

A ciklus után a következők lesznek:

- "részleges_termék[0] =0".

- "részleges_termék[1] =5".

- "részleges_termék[2] =0".

- "részleges_termék[3] =0".

Végül a "termék =0 + (5 <<1) + (0 <<2) + (0 <<3) =10" (bináris:"1010"), amely 5 és 3 helyes szorzata.

  1. Hogyan lehet csatlakozni a Bluetooth egy iTouch
  2. Hogyan jutok Music From My iPod egy új számítógépre ?
  3. Hogyan lehet megjavítani My iPod akkumulátor
  4. Hogyan töltse a GPX MW3847 MP3 lejátszó
  5. Hogyan készítsünk egy Tuning Coil Radio