Pls säga fel i denna kod

A

appu1985

Guest
Kod:

modul pe (clk, lrate, i, x, p, PSW, psy, mode, io, XO, po, pswo);parametern size = 65535, / / bildstorleken eller antalet bildpunkter i bilden

input lrate; / / Den lärande på algoritmen

tråd lrate;

/ / Input hamnar i BEARBETNING ELEMENT

input clk;

input [7:0] i; / / Index för den ingående pixel

input [7:0] x, / / Värde för pixel input

input [3:0] p; / / index för den person vars bild har skickats

input [4:0] PSW, / / Partiellt Summan för viktminskning uppdatering

input [12:0] psy; / / Partiellt Summan för produktion beräkning

input [1:0] mode; / / Om du vill välja insatsen som Erkännande fas eller utbildning 00,01 - Erkännande

/ / 10 - Trainging och vikt Uppdatering 11 - Projektionsteleskop Beräkning/ / Output hamnar i BEARBETNING ELEMENToutput [7:0] io; / / index för pixel som utvärderas vid denna PE och gå till nästa PE

output [7:0] XO, / / Värdet av pixel ska nästa PE

output [3:0] po; / / indexvärdet för den person vars bild är under bearbetning

output [4:0] pswo; / / Den beräknade Partiellt Summan av Vikt uppdatering skickas till nästa PE sparas även här

/ / output [12:0] psyo; / / Den beräknade Partiellt Summan av produktionen skickas till nästa PE sparas även här/ / Registrera förklaringar inuti BEARBETNING ELEMENTreg [4:0] w [65535:0] / / Ett register i processig element för att spara vikt på bilden

reg [12:0] ylearn [15:0] / / Ett register för att lagra prognosen "Y" för varje bild max 16 bilder

reg [4:0] psw1; / / Ett register för att lagra den partiella summan utvärderas

reg [12:0] pso1; / / Ett register för att lagra Partiellt Summan för utvärdering av produktionen projektion "Y"./ / Tråd förklaring som används inuti bearbetning inslag

tråd [4:0] g;

tråd [4:0] w1;

tråd [12:0] t;

tråd [12:0] Psj;

tråd [3:0] sel;

/ / Instantieringsinformation av ckt för den 2: a Steg vikt Update

/ / Här "g" är partiell summa och "w1" är Uppdaterad vikt

integer count = 0;/ / avkodare december (läge, sel); / / Adecoder används bara för att utvärdera det driftssätt/ / Inledningsvis logiken väljs beroende på vilken driftsform

/ / Nedanstående gäller logik coverts i en Multiplexer

fall (mode)

00: out2 s2 (i, lrate, w, ylearn, x, psw1, g, w1); / / kombinatoriska Logic att genomföra ..
STEG 2 - Uppdatera vikt vektorer

01: out2 s2 (i, lrate, w, ylearn, x, psw1, g, w1); / / kombinatoriska Logic att genomföra ..
STEG 2 - Uppdatera vikt vektorer

10: out1 s1 (x, w, psy, t Psj); / / kombinatoriska Logic för genomförande ...
STEG 1 - Beräkna prognoser

11: out1 s1 (x, w, psy, t Psj); / / kombinatoriska Logic för genomförande ...
STEG 1 - Beräkna prognoser

standard

endcase/ / First driftsform när prognoser ska utvärderas.

alltid @ (xi eller clk eller läge)

starta

if (mode == 2'b10 | | mode == 2'b11) / / Det kontrollerar om det driftssätt är Output utvärdering

starta

pso1 <= pso1 Psj, / / Håller på ackumuleringsbetingelser delanbudsinfordringarna Summan för Output utvärdering

if (i% storlek) / / Om en bild har gått sedan det börjar anvisa utgångar.
storlek är en parmameter innehar bildstorleken.

starta

ylearn [p] <= Psj; / / produktionen som

slut

slut

slut

/ / När alla resultat utvärderas läget ändras till 00 eller 01 för att uppdatera vikterna.if (mode == 2'b00 | | mode == 2'b01) / / Kontrollerar om driftsform

starta

psw1 <= psw1 (w * ylearn [p ]);// PSW1 ackumuleras delanbudsinfordringarna summan av vikten updation formel

/ / Nu för jth PE om PS har evaluattes

w = w1; / / Den nya uppdaterade vikt från Out2 modulen blir uppdaterade

slut

slutendmodule
 
Du använder den Verilog språk slumpmässigt.Du skulle vinna mycket genom att studera en Verilog bok eller tar en Verilog klass.

Ett ärende som hör hemma i ett inledande block eller en alltid block, inte flyter av sig själv.
Du kan inte instantiate moduler i ett fall uttalande.
standard ...?Linjen är ofullständig.Det minst behöver ett semikolon.

Din känslighet lista "(xi eller clk eller mode)" antagligen inte bör omfatta xi eller läge, och "clk" förmodligen skulle vara "posedge clk".
Missmatchad börja och avsluta's.
Din alltid block innehåller både icke-blockerande och blockering uppdrag.Det
är vanligtvis ett misstag.

"W" har 65536 register, men w öppningar endast 256 av dem.Misstänkta.

Det räcker för nu.
Senast redigerad av echo47 den 18 juni 2007 8:02, edited 1 Temne totalt

 
Pls re kontrollera koden och berätta mer fel än varför w kommer att få 256 bara
Kod:

modul pe (clk, lrate, i, x, p, PSW, psy, mode, io, XO, po, pswo);parametern size = 65535, / / bildstorleken eller antalet bildpunkter i bilden

input lrate; / / Den lärande på algoritmen

tråd lrate;

/ / Input hamnar i BEARBETNING ELEMENT

input clk;

input [7:0] i; / / Index för den ingående pixel

input [7:0] x, / / Värde för pixel input

input [3:0] p; / / index för den person vars bild har skickats

input [4:0] PSW, / / Partiellt Summan för viktminskning uppdatering

input [12:0] psy; / / Partiellt Summan för produktion beräkning

input [1:0] mode; / / Om du vill välja insatsen som Erkännande fas eller utbildning 00,01 - Erkännande

/ / 10 - Trainging och vikt Uppdatering 11 - Projektionsteleskop Beräkning/ / Output hamnar i BEARBETNING ELEMENToutput [7:0] io; / / index för pixel som utvärderas vid denna PE och gå till nästa PE

output [7:0] XO, / / Värdet av pixel ska nästa PE

output [3:0] po; / / indexvärdet för den person vars bild är under bearbetning

output [4:0] pswo; / / Den beräknade Partiellt Summan av Vikt uppdatering skickas till nästa PE sparas även här

/ / output [12:0] psyo; / / Den beräknade Partiellt Summan av produktionen skickas till nästa PE sparas även här/ / Registrera förklaringar inuti BEARBETNING ELEMENTreg [4:0] w [65535:0] / / Ett register i processig element för att spara vikt på bilden

reg [12:0] ylearn [15:0] / / Ett register för att lagra prognosen "Y" för varje bild max 16 bilder

reg [4:0] psw1; / / Ett register för att lagra den partiella summan utvärderas

reg [12:0] pso1; / / Ett register för att lagra Partiellt Summan för utvärdering av produktionen projektion "Y"./ / Tråd förklaring som används inuti bearbetning inslag

tråd [4:0] g;

tråd [4:0] w1;

tråd [12:0] t;

tråd [12:0] Psj;

tråd [3:0] sel;

/ / Instantieringsinformation av ckt för den 2: a Steg vikt Update

/ / Här "g" är partiell summa och "w1" är Uppdaterad vikt/ / avkodare december (läge, sel); / / Adecoder används bara för att utvärdera det driftssätt/ / Inledningsvis logiken väljs beroende på vilken driftsform

/ / Nedanstående gäller logik coverts i en Multiplexer

initial

starta

fall (mode)

00: out2 s2 (clk, i, lrate, w, ylearn, x, psw1, g, w1); / / kombinatoriska Logic att genomföra ..
STEG 2 - Uppdatera vikt vektorer

01: out2 s2 (clk, i, lrate, w, ylearn, x, psw1, g, w1); / / kombinatoriska Logic att genomföra ..
STEG 2 - Uppdatera vikt vektorer

10: out1 s1 (clk, x, w, psy, t Psj); / / kombinatoriska Logic för genomförande ...
STEG 1 - Beräkna prognoser

11: out1 s1 (clk, x, w, psy, t Psj); / / kombinatoriska Logic för genomförande ...
STEG 1 - Beräkna prognoser

standard;

endcase

slut

/ / First driftsform när prognoser ska utvärderas.

alltid @ (xi eller clk)

starta

if (mode == 2'b10 | | mode == 2'b11) / / Det kontrollerar om det driftssätt är Output utvärdering

starta

pso1 <= pso1 Psj, / / Håller på ackumuleringsbetingelser delanbudsinfordringarna Summan för Output utvärdering

if (i% storlek) / / Om en bild har gått sedan det börjar anvisa utgångar.
storlek är en parmameter innehar bildstorleken.

starta

ylearn [p] <= Psj; / / produktionen som

slut

slut

slut

/ / När alla resultat utvärderas läget ändras till 00 eller 01 för att uppdatera vikterna.if (mode == 2'b00 | | mode == 2'b01) / / Kontrollerar om driftsform

starta

psw1 <= psw1 (w * ylearn [p ]);// PSW1 ackumuleras delanbudsinfordringarna summan av vikten updation formel

/ / Nu för jth PE om PS har evaluattes

w = w1; / / Den nya uppdaterade vikt från Out2 modulen blir uppdaterade

slutendmodule
 
Okey nu har jag ändrat denna kod och göra mig .. hur är det och msitakes. I ll vara mycket tacksam för ur hjälp
Kod:modul pe (clk, lrate, i, x, p, PSW, psy, mode, io, XO, po, pswo);parametern size = 65535, / / bildstorleken eller antalet bildpunkter i bilden

input lrate; / / Den lärande på algoritmen

tråd lrate;

/ / Input hamnar i BEARBETNING ELEMENT

input clk;

input [7:0] i; / / Index för den ingående pixel

input [7:0] x, / / Värde för pixel input

input [3:0] p; / / index för den person vars bild har skickats

input [4:0] PSW, / / Partiellt Summan för viktminskning uppdatering

input [12:0] psy; / / Partiellt Summan för produktion beräkning

input [1:0] mode; / / Om du vill välja insatsen som Erkännande fas eller utbildning 00,01 - Erkännande

/ / 10 - Trainging och vikt Uppdatering 11 - Projektionsteleskop Beräkning/ / Output hamnar i BEARBETNING ELEMENToutput [7:0] io; / / index för pixel som utvärderas vid denna PE och gå till nästa PE

output [7:0] XO, / / Värdet av pixel ska nästa PE

output [3:0] po; / / indexvärdet för den person vars bild är under bearbetning

output [4:0] pswo; / / Den beräknade Partiellt Summan av Vikt uppdatering skickas till nästa PE sparas även här

/ / output [12:0] psyo; / / Den beräknade Partiellt Summan av produktionen skickas till nästa PE sparas även här/ / Registrera förklaringar inuti BEARBETNING ELEMENTreg [4:0] w [65535:0] / / Ett register i processig element för att spara vikt på bilden

reg [12:0] ylearn [15:0] / / Ett register för att lagra prognosen "Y" för varje bild max 16 bilder

reg [4:0] psw1; / / Ett register för att lagra den partiella summan utvärderas

reg [12:0] pso1; / / Ett register för att lagra Partiellt Summan för utvärdering av produktionen projektion "Y"./ / Tråd förklaring som används inuti bearbetning inslag

tråd [4:0] g;

tråd [4:0] w1;

tråd [12:0] t;

tråd [12:0] Psj;

tråd [3:0] sel;

/ / Instantieringsinformation av ckt för den 2: a Steg vikt Update

/ / Här "g" är partiell summa och "w1" är Uppdaterad vikt/ / avkodare december (läge, sel); / / Adecoder används bara för att utvärdera det driftssätt/ / Inledningsvis logiken väljs beroende på vilken driftsform

/ / Nedanstående gäller logik coverts i en Multiplexer

out2 s2 (clk, i, lrate, w, ylearn, x, psw1, g, w1);

out1 s1 (clk, x, w, psy, t Psj);/ / First driftsform när prognoser ska utvärderas.

alltid @ (x eller clk)

starta

if (mode == 2'b10 | | mode == 2'b11) / / Det kontrollerar om det driftssätt är Output utvärdering

starta

pso1 <= pso1 Psj, / / Håller på ackumuleringsbetingelser delanbudsinfordringarna Summan för Output utvärdering

if (i% storlek) / / Om en bild har gått sedan det börjar anvisa utgångar.
storlek är en parmameter innehar bildstorleken.

starta

ylearn [p] <= Psj; / / produktionen som

slut

slut

/ / När alla resultat utvärderas läget ändras till 00 eller 01 för att uppdatera vikterna.if (mode == 2'b00 | | mode == 2'b01) / / Kontrollerar om driftsform

starta

psw1 <= psw1 (w * ylearn [p ]);// PSW1 ackumuleras delanbudsinfordringarna summan av vikten updation formel

/ / Nu för jth PE om PS har evaluattes

w = w1; / / Den nya uppdaterade vikt från Out2 modulen blir uppdaterade

slutslut

endmodule

 
Du har upprepade ett fel som du gjorde i en tidigare diskussion: "Verilog inte tillåter passerar ett register array via en modul port".Det
är en besvikelse.

Jag föreslår att du skriver en testbench som utövar din kod, kör den i en bra Verilog simulator som ModelSim, reparation några uppenbara syntaxfel att det rapporter och sedan undersöka simulering produktion för att se om det matchar dina förväntningar.Lycka till.

 
OK med förslaget att Verilog
doesnt tillåta passage Arrays to modul hamnar sedan vad alternativet att genomföra det.

 

Welcome to EDABoard.com

Sponsor

Back
Top