Identyfikator artykułu: 000084426 Typ materiałów: Rozwiązywanie problemów Ostatnia zmiana: 11-09-2012

Dlaczego synteza Quartus® II nieprawidłowo przetwarza wybrane bity z podpisanych zmiennych?

Środowisko

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Opis

Oprogramowanie Quartus® II w wersji 6.0 i 6.0 SP1 nieprawidłowo przetwarza bit, wybierając z podpisanych zmiennych ze względu na znany problem z oprogramowaniem. Kod veriloga obejmujący bity wybrane z podpisanych zmiennych powinien zwracać niewyrównane wartości zgodnie z określeniem w Verilog LRM (wersja C std 1364-2001, sek. 4.5.1).

Ten problem nie istnieje w wersji 5.1 lub wcześniejszej. Problem został naprawiony począwszy od oprogramowania Quartus® II w wersji 6.1.

Jako przykład tego problemu oprogramowanie Quartus® II w wersji 6.0 nieprawidłowo przetwarza następujący przykład kodu:

reg [7:0] unrounded;

reg [6:0] rounded;

always @ (posedge clk) begin

 rounded <= unrounded[7:1]   unrounded[0];

Oprogramowanie powinno wyzerować sygnał bez opłat[0], aby upewnić się, że wartość jednego bitu zostanie dodana do fragmentu bitu unrounded[7:1].

Oprogramowanie Quartus® II wersji 6.0 i 6.0 SP1 sign-extend sygnału unrounded[0] zamiast zero-extending sygnału. W przykładzie, jeśli unrounded[0] sygnał jest wartością 1, oprogramowanie interpretuje 1 jako znak numeru i w związku z tym konwertuje go do 7-bitowej reprezentacji podpisanej -1 zamiast wartości niepodpisanej. Dlatego oprogramowanie dodaje -1 do unrounded[7:1], zamiast dodawać 1.

Aby uniknąć tego problemu (w wersjach 6.0 lub 6.0 SP1), wykonaj jedną z następujących czynności:

  • Skontaktuj się z mySupport , aby poprosić o poprawkę 1.20 dla oprogramowania Quartus II w wersji 6.0 SP1.
  • Obsługuj jedną ze zmiennych i wymusij całość wyrażenia na ocenę jako niepodpisaną przy użyciu funkcji Verilog-2001:
rounded <= (unrounded[7:1])   unrounded[0]
  • Ręcznie podkładaj wiodące zer w następujący sposób (tj. wyraźnie wykaż, że wiodące bity powinny wynosić 0):
  • rounded <= unrounded[7:1]   {{6{1'b 0}}, unrounded[0]};

     

Podobne produkty

Ten artykuł dotyczy 1 prod.

Stratix® II FPGA

Materiały zawarte na tej stronie są tłumaczeniem z języka angielskiego, wykonanym częściowo przez człowieka, a częściowo automatycznie. Materiały te są udostępnione dla Twojej wygody i należy je traktować jedynie jako ogólne źródło informacji. Nie ma jednak gwarancji, że są one kompletne bądź poprawne. Jeśli istnieje jakakolwiek rozbieżność między wersją angielską tej strony a jej tłumaczeniem, wersja angielska jest wersją obowiązującą i ma rozstrzygające znaczenie. Wyświetl anglojęzyczną wersję tej strony.