V
vjabagch
Guest
Minulla on Sine kosini ROM moduuli jota tuotetaan Matlab käyttäen puoli-tarkkuuslähestyminen toiminto saatavilla Matlab-sivustosta.Se koostuu 10-bittinen osoite tilaa ja 16-bittinen tiedot bussi.Saan erittäin suuri (ja väärä) numeroita simulaation.Olen liittänyt esimerkki simulointi lähtö.
# 0.00 radiaaneina -> sin = 131072.0000 cos = 1,0000
# 0.01 radiaaneina -> sin = 131072.0000 cos = 1,0000
# 0.01 radiaaneina -> sin = 16777216.0000 cos = 1,0000
# 0.01 radiaaneina -> sin = 16777216.0000 cos = 1,0000
...
# 6.27 radiaaneina -> sin = 4261412864.0000 cos = 1,0000
# 6.27 radiaaneina -> sin = 4278190080.0000 cos = 1,0000
# 6.28 radiaaneina -> sin = 4278190080.0000 cos = 1,0000
# 6.28 radiaaneina -> sin = 4294836224.0000 cos = 1,0000
The testbench sisältää suurin ongelma sisällä seurata julkilausuman.
$ seurata ( "% 1.2f radiaaneina -> sin =% 1.4f cos =% 1.4f", (osoite * 2 * pi / 1023),
((-1) ** (Sine [15])) * (1'b1 (sine [9:0]>> 10)) * (2 ** (sine [14:10] - 5'd15)) ,
((-1) ** (Kosini [15])) * (1'b1 (kosini [9:0]>> 10)) * (2 ** (kosini [14:10] - 5'd15)) );
Omat kysymykset ovat seuraavat:
Onko minun seurata julkilausuma perustaa oikein muuntaa 16-bittinen liukuluku todellisiin (x.xxxx-muodossa).
Mikä on max määrä desimaalia, että puoli tarkkuus (16-bittinen liukuluku) olisi sen desimaalierottimen oikealla puolella?Koska olen käsittelevät sin ja kosini 0: sta 2pi (jonka säde on 1) Olen vain 1 numeron vasemmalle.
Olen Latasin moduuli ja testi-penkki, seuraavaan osoitteeseen.
http://vahejabagchourian.comyr.com/Verilog/
Yksittäiset tiedostot tallennetaan osoitteessa:
http://vahejabagchourian.comyr.com/Verilog/sync_rom.v
http://vahejabagchourian.comyr.com/Verilog/sync_rom_tb.v
Kaikki apu on tervetullutta.
Kiitos,
Vahe
Anteeksi, mutta sinun on kirjautumistunnuksen nähdäksesi tämän liitäntävaatimuksia
# 0.00 radiaaneina -> sin = 131072.0000 cos = 1,0000
# 0.01 radiaaneina -> sin = 131072.0000 cos = 1,0000
# 0.01 radiaaneina -> sin = 16777216.0000 cos = 1,0000
# 0.01 radiaaneina -> sin = 16777216.0000 cos = 1,0000
...
# 6.27 radiaaneina -> sin = 4261412864.0000 cos = 1,0000
# 6.27 radiaaneina -> sin = 4278190080.0000 cos = 1,0000
# 6.28 radiaaneina -> sin = 4278190080.0000 cos = 1,0000
# 6.28 radiaaneina -> sin = 4294836224.0000 cos = 1,0000
The testbench sisältää suurin ongelma sisällä seurata julkilausuman.
$ seurata ( "% 1.2f radiaaneina -> sin =% 1.4f cos =% 1.4f", (osoite * 2 * pi / 1023),
((-1) ** (Sine [15])) * (1'b1 (sine [9:0]>> 10)) * (2 ** (sine [14:10] - 5'd15)) ,
((-1) ** (Kosini [15])) * (1'b1 (kosini [9:0]>> 10)) * (2 ** (kosini [14:10] - 5'd15)) );
Omat kysymykset ovat seuraavat:
Onko minun seurata julkilausuma perustaa oikein muuntaa 16-bittinen liukuluku todellisiin (x.xxxx-muodossa).
Mikä on max määrä desimaalia, että puoli tarkkuus (16-bittinen liukuluku) olisi sen desimaalierottimen oikealla puolella?Koska olen käsittelevät sin ja kosini 0: sta 2pi (jonka säde on 1) Olen vain 1 numeron vasemmalle.
Olen Latasin moduuli ja testi-penkki, seuraavaan osoitteeseen.
http://vahejabagchourian.comyr.com/Verilog/
Yksittäiset tiedostot tallennetaan osoitteessa:
http://vahejabagchourian.comyr.com/Verilog/sync_rom.v
http://vahejabagchourian.comyr.com/Verilog/sync_rom_tb.v
Kaikki apu on tervetullutta.
Kiitos,
Vahe
Anteeksi, mutta sinun on kirjautumistunnuksen nähdäksesi tämän liitäntävaatimuksia