Pls tell błędów w tym kodzie

A

appu1985

Guest
Kod:

Moduł RLM (CLK, lrate, i, x, p, PSW, psy, tryb, IO, xo, PO, pswo);Parametr size = 65535 / / rozmiar lub liczbę pikseli w obrazie

wejście lrate; / / nauczania stawki algorytmu

Drut lrate;

/ / Porty wejściowe przetwarzania ELEMENTU

wejście CLK;

wejscie [7:0] I / / Wskaźnik wkładu pikseli

wejscie [7:0] x / / Wartość pikseli wejściowego

wejscie [3:0] p / / indeks osoba, której obraz jest wysyłany

wejscie [4:0] PSW / / Częściowe Suma wagi aktualizacji

wejscie [12:0] psy / / Suma Częściowe wyjście dla obliczenia

wejscie [1:0] mode / / Aby wybrać operację Uznanie faza lub faza szkolenia 00,01 - Uznanie

/ / 10 - Trainging i Waga Aktualizowanie 11 - Projekcja Kalkulacja/ / Output portów przetwarzania ELEMENTUwyjście [7:0] IO / / Wskaźnik pikseli, który jest oceniany na tym PE i przejściu do następnej PE

wyjście [7:0] xo / / Wartość piksel będzie następna PE

wyjście [3:0] PO / / Wskaźnik wartości osoby, której obraz jest przetwarzanie

wyjście [4:0] pswo; / / obliczona częściowe Suma Waga aktualizacji wysłany do następnego PE, jak również przechowywane tutaj

/ / output [12:0] psyo; / / obliczona częściowe Suma produkcji wysyłane do następnej PE, jak również przechowywane tutaj/ / Zarejestruj Deklaracje wewnątrz PRZETWORZENIA ELEMENTUreg [4:0] w [65535:0]; / / rejestr w processig element do przechowywania odważników Image

reg [12:0] ylearn [15:0]; / / rejestr sklep rzut "Y" każdego obrazu maks. 16 obrazów

reg [4:0] psw1; / / rejestr sklep częściowy suma oceniane

reg [12:0] pso1; / / rejestr przechowywać Częściowe Suma wyjścia dla oceny projekcji "Y"./ / Wire Deklaracji jako użyte wewnątrz przetwarzania elementu

wire [4:0] g;

wire [4:0] W1;

wire [12:0] t;

wire [12:0] psj;

wire [3:0] sel;

/ / Instancji z ckt do 2 kroku Waga Update

/ / Tu "g" jest Częściowe sumy i "W1" jest Zaktualizowano wagi

integer count = 0;/ / dekoder grudnia (tryb, sel); / / Adecoder jest używany tylko do oceny sposobu funkcjonowania/ / Początkowo logiki jest w zależności od wybranego trybu pracy

/ / Poniższy przypadku logika coverts w Multipleksery

przypadku (tryb)

00: out2 s2 (I lrate, w, ylearn, x, psw1, g, W1); / / Logic kombinowanych do realizacji ..
KROK 2 - Aktualizacja wagi wektory

01: out2 s2 (I lrate, w, ylearn, x, psw1, g, W1); / / Logic kombinowanych do realizacji ..
KROK 2 - Aktualizacja wagi wektory

10: OUT1 s1 (x, w, psy, t, psj); / / kombinowanych Logic do Wdrożenie ...
KROK 1 - Obliczyć prognozy

11: OUT1 s1 (x, w, psy, t, psj); / / kombinowanych Logic do Wdrożenie ...
KROK 1 - Obliczyć prognozy

domyślny

endcase/ / Pierwsze trybie gdy prognozy są oceniane.

zawsze @ (xi lub CLK lub tryb)

zacząć

if (tryb == 2'b10 | | tryb == 2'b11) / / Sprawdza, czy tryb pracy jest dla Realizacja oceny

zacząć

pso1 <= pso1 psj; / / stale akumulowania Częściowe Suma Wyjście do oceny

if (i% size) / / Jeśli jeden obraz zdała wtedy zaczyna przypisywania wyjść.
wielkość gospodarstwa jest parmameter rozmiar obrazu.

zacząć

ylearn [p] <= psj; / / wyjście jest przypisany

koniec

koniec

koniec

/ / Gdy wszystkie wyniki są oceniane w trybie zmieniono na 00 lub 01 do aktualizacji wagi.if (tryb == 2'b00 | | tryb == 2'b01) / / Sprawdza dla trybu pracy

zacząć

psw1 <= psw1 (w * ylearn [p ]);// PSW1 gromadzi częściowy suma masy updation wzoru

/ / Teraz do PE, jeśli jth PS został evaluattes

w = W1 / / Nowa aktualizacja wagi z Out2 moduł zostanie zaktualizowana

koniec

koniecendmodule
 
Korzystasz z Verilog język haphazardly.Jesteś skorzystałyby znacznie studiowania przez jeden Verilog książki lub podjęciem Verilog klasy.

A case należą wewnątrz początkowy blok lub zawsze bloku, nie pływających sam.
Nie można instancję modułów w przypadku oświadczenia.
domyślnie ...?Linia jest niekompletne.To co najmniej potrzeb średnikami.

Twoja lista czułości "(xi lub CLK lub tryb)," prawdopodobnie nie powinno obejmować XI lub trybu i "CLK" chyba powinno być "posedge CLK".
Niezgodne rozpocząć i zakończyć's.
Twoja zawsze blok zawiera zarówno spoza blokowania i blokowania zadań.To zwykle pomyłka.

"w" ma
65.536 rejestrów, ale w dostęp tylko 256 z nich.Podejrzane.

To na tyle na razie.
Ostatnio edytowane przez echo47 na 18 czerwca 2007 8:02, edited 1 raz w sumie

 
Pls ponownie sprawdzić ten kod i powiedzieć mi więcej błędów oprócz dlaczego w będzie dostęp tylko 256
Kod:

Moduł RLM (CLK, lrate, i, x, p, PSW, psy, tryb, IO, xo, PO, pswo);Parametr size = 65535 / / rozmiar lub liczbę pikseli w obrazie

wejście lrate; / / nauczania stawki algorytmu

Drut lrate;

/ / Porty wejściowe przetwarzania ELEMENTU

wejście CLK;

wejscie [7:0] I / / Wskaźnik wkładu pikseli

wejscie [7:0] x / / Wartość pikseli wejściowego

wejscie [3:0] p / / indeks osoba, której obraz jest wysyłany

wejscie [4:0] PSW / / Częściowe Suma wagi aktualizacji

wejscie [12:0] psy / / Suma Częściowe wyjście dla obliczenia

wejscie [1:0] mode / / Aby wybrać operację Uznanie faza lub faza szkolenia 00,01 - Uznanie

/ / 10 - Trainging i Waga Aktualizowanie 11 - Projekcja Kalkulacja/ / Output portów przetwarzania ELEMENTUwyjście [7:0] IO / / Wskaźnik pikseli, który jest oceniany na tym PE i przejściu do następnej PE

wyjście [7:0] xo / / Wartość piksel będzie następna PE

wyjście [3:0] PO / / Wskaźnik wartości osoby, której obraz jest przetwarzanie

wyjście [4:0] pswo; / / obliczona częściowe Suma Waga aktualizacji wysłany do następnego PE, jak również przechowywane tutaj

/ / output [12:0] psyo; / / obliczona częściowe Suma produkcji wysyłane do następnej PE, jak również przechowywane tutaj/ / Zarejestruj Deklaracje wewnątrz PRZETWORZENIA ELEMENTUreg [4:0] w [65535:0]; / / rejestr w processig element do przechowywania odważników Image

reg [12:0] ylearn [15:0]; / / rejestr sklep rzut "Y" każdego obrazu maks. 16 obrazów

reg [4:0] psw1; / / rejestr sklep częściowy suma oceniane

reg [12:0] pso1; / / rejestr przechowywać Częściowe Suma wyjścia dla oceny projekcji "Y"./ / Wire Deklaracji jako użyte wewnątrz przetwarzania elementu

wire [4:0] g;

wire [4:0] W1;

wire [12:0] t;

wire [12:0] psj;

wire [3:0] sel;

/ / Instancji z ckt do 2 kroku Waga Update

/ / Tu "g" jest Częściowe sumy i "W1" jest Zaktualizowano wagi/ / dekoder grudnia (tryb, sel); / / Adecoder jest używany tylko do oceny sposobu funkcjonowania/ / Początkowo logiki jest w zależności od wybranego trybu pracy

/ / Poniższy przypadku logika coverts w Multipleksery

początkowej

zacząć

przypadku (tryb)

00: out2 s2 (CLK, I, lrate, w, ylearn, x, psw1, g, W1); / / Logic kombinowanych do realizacji ..
KROK 2 - Aktualizacja wagi wektory

01: out2 s2 (CLK, I, lrate, w, ylearn, x, psw1, g, W1); / / Logic kombinowanych do realizacji ..
KROK 2 - Aktualizacja wagi wektory

10: OUT1 s1 (CLK, x, w, psy, t, psj); / / kombinowanych Logic do Wdrożenie ...
KROK 1 - Obliczyć prognozy

11: OUT1 s1 (CLK, x, w, psy, t, psj); / / kombinowanych Logic do Wdrożenie ...
KROK 1 - Obliczyć prognozy

domyślnie;

endcase

koniec

/ / Pierwsze trybie gdy prognozy są oceniane.

zawsze @ (xi lub CLK)

zacząć

if (tryb == 2'b10 | | tryb == 2'b11) / / Sprawdza, czy tryb pracy jest dla Realizacja oceny

zacząć

pso1 <= pso1 psj; / / stale akumulowania Częściowe Suma Wyjście do oceny

if (i% size) / / Jeśli jeden obraz zdała wtedy zaczyna przypisywania wyjść.
wielkość gospodarstwa jest parmameter rozmiar obrazu.

zacząć

ylearn [p] <= psj; / / wyjście jest przypisany

koniec

koniec

koniec

/ / Gdy wszystkie wyniki są oceniane w trybie zmieniono na 00 lub 01 do aktualizacji wagi.if (tryb == 2'b00 | | tryb == 2'b01) / / Sprawdza dla trybu pracy

zacząć

psw1 <= psw1 (w * ylearn [p ]);// PSW1 gromadzi częściowy suma masy updation wzoru

/ / Teraz do PE, jeśli jth PS został evaluattes

w = W1 / / Nowa aktualizacja wagi z Out2 moduł zostanie zaktualizowana

koniecendmodule
 
Okey teraz mam zmodyfikowany ten kod i nie daj mi znać, jak to jest .. i msitakes. I ll być bardzo wdzięczni za pomoc ur
Kod:Moduł RLM (CLK, lrate, i, x, p, PSW, psy, tryb, IO, xo, PO, pswo);Parametr size = 65535 / / rozmiar lub liczbę pikseli w obrazie

wejście lrate; / / nauczania stawki algorytmu

Drut lrate;

/ / Porty wejściowe przetwarzania ELEMENTU

wejście CLK;

wejscie [7:0] I / / Wskaźnik wkładu pikseli

wejscie [7:0] x / / Wartość pikseli wejściowego

wejscie [3:0] p / / indeks osoba, której obraz jest wysyłany

wejscie [4:0] PSW / / Częściowe Suma wagi aktualizacji

wejscie [12:0] psy / / Suma Częściowe wyjście dla obliczenia

wejscie [1:0] mode / / Aby wybrać operację Uznanie faza lub faza szkolenia 00,01 - Uznanie

/ / 10 - Trainging i Waga Aktualizowanie 11 - Projekcja Kalkulacja/ / Output portów przetwarzania ELEMENTUwyjście [7:0] IO / / Wskaźnik pikseli, który jest oceniany na tym PE i przejściu do następnej PE

wyjście [7:0] xo / / Wartość piksel będzie następna PE

wyjście [3:0] PO / / Wskaźnik wartości osoby, której obraz jest przetwarzanie

wyjście [4:0] pswo; / / obliczona częściowe Suma Waga aktualizacji wysłany do następnego PE, jak również przechowywane tutaj

/ / output [12:0] psyo; / / obliczona częściowe Suma produkcji wysyłane do następnej PE, jak również przechowywane tutaj/ / Zarejestruj Deklaracje wewnątrz PRZETWORZENIA ELEMENTUreg [4:0] w [65535:0]; / / rejestr w processig element do przechowywania odważników Image

reg [12:0] ylearn [15:0]; / / rejestr sklep rzut "Y" każdego obrazu maks. 16 obrazów

reg [4:0] psw1; / / rejestr sklep częściowy suma oceniane

reg [12:0] pso1; / / rejestr przechowywać Częściowe Suma wyjścia dla oceny projekcji "Y"./ / Wire Deklaracji jako użyte wewnątrz przetwarzania elementu

wire [4:0] g;

wire [4:0] W1;

wire [12:0] t;

wire [12:0] psj;

wire [3:0] sel;

/ / Instancji z ckt do 2 kroku Waga Update

/ / Tu "g" jest Częściowe sumy i "W1" jest Zaktualizowano wagi/ / dekoder grudnia (tryb, sel); / / Adecoder jest używany tylko do oceny sposobu funkcjonowania/ / Początkowo logiki jest w zależności od wybranego trybu pracy

/ / Poniższy przypadku logika coverts w Multipleksery

out2 s2 (CLK, I, lrate, w, ylearn, x, psw1, g, W1);

OUT1 s1 (CLK, x, w, psy, t, psj);/ / Pierwsze trybie gdy prognozy są oceniane.

zawsze @ (x lub CLK)

zacząć

if (tryb == 2'b10 | | tryb == 2'b11) / / Sprawdza, czy tryb pracy jest dla Realizacja oceny

zacząć

pso1 <= pso1 psj; / / stale akumulowania Częściowe Suma Wyjście do oceny

if (i% size) / / Jeśli jeden obraz zdała wtedy zaczyna przypisywania wyjść.
wielkość gospodarstwa jest parmameter rozmiar obrazu.

zacząć

ylearn [p] <= psj; / / wyjście jest przypisany

koniec

koniec

/ / Gdy wszystkie wyniki są oceniane w trybie zmieniono na 00 lub 01 do aktualizacji wagi.if (tryb == 2'b00 | | tryb == 2'b01) / / Sprawdza dla trybu pracy

zacząć

psw1 <= psw1 (w * ylearn [p ]);// PSW1 gromadzi częściowy suma masy updation wzoru

/ / Teraz do PE, jeśli jth PS został evaluattes

w = W1 / / Nowa aktualizacja wagi z Out2 moduł zostanie zaktualizowana

konieckoniec

endmodule

 
Musisz powtarzany błąd, który się we wcześniejszej dyskusji: "Verilog nie pozwala minięciu tablicy zarejestrować za pośrednictwem modułu portu".To rozczarowuje.

I sugerują, że można napisać, że ćwiczenia testbench kodu, uruchom go w dobrym Verilog symulator jak ModelSim, naprawy wszelkich oczywiste błędy składni, że raporty, a następnie bada symulacji wyjście, aby sprawdzić, czy pasuje do Twoich oczekiwań.Powodzenia.

 
ok z sugestią, że verilog
doesnt umożliwić przekazywanie tablic czw modułu portów następnie whats alternatywą dla jego realizacji.

 

Welcome to EDABoard.com

Sponsor

Back
Top