A
appu1985
Guest
Pode qualquer organismo .. deixe-me saber por que razão o meu código não é executado em Xilinx ISE Simulator .. Sua apenas simples código ainda não foi publicado ...módulo pelement (ii, xi, pi, psi, RCL, m1, m2, io, xo, po, psj);
/ / Taxa de Aprendizagem Parâmetros da rede neural
parâmetro lrate = 0,01;
/ / Entrada portos da transformação elemento
input [5:0] II; / / Índice do pixel de entrada para o elemento de transformação
input [7:0] xi; / / Pixel valor de entrada para o elemento de transformação
input [3:0] pi; / / Índice do número de pessoas cuja imagem está sendo entrada
input [7:0] psi; / / Soma parcial Entrada da anterior elemento de transformação
input CLK;
entrada m1; / / Select Signal para decidir sobre o modo de funcionamento se Formação ou Reconhecimento
entrada m2; / / Select Signal para decidir sobre a Formação em modo se temos que calcular a saída ou Atualização dos pesos
/ / Saída portos do elemento de transformação
output [5:0] io; / / Saída do índice do pixel
output [7:0] xo, / / saída do pixel valor
output [3:0] po; / / Saída da Pessoa índice
output [7:0] psj; / / Saída da actualização parcial soma calculada em Processamento este elemento
/ / Registo Definição
reg [7:0] OSP;
reg [7:0] y [9:0];
reg [7:0] yrecog;
reg [7:0] w [4095: 0];
reg [7:0] PSW;
reg [7:0] g;
reg [7:0] w1;
reg [7:0] psj;
reg [7:0] yrec;
reg [7:0] regr;
/ / Fios
wire [7:0] t;
wire [15:0] d;
wire [15:0] out;
wire [15:0] temp;
wire [15:0] y2;
wire [31:0] temp1;
sempre @ (M1 ou M2)
começam: abc1
if (m1! = 0) begin
if (m2! = 0) begin
mult m1 (xi, w [ii], t);
adicionar a1 (t, psi, psj);
if (ii> = 4095) começam
/ / sempre @ (RCL)
atribuir y [pi] = psj;
fim
fim
atribuir io = ii;
atribuir xo = xi;
atribuir po = pi;
fim
if (m1! = 0) begin
if (m2) começar
mult m2 (lrate, y [pi], d);
mult m3 (d, xi, fora);
adicionar a2 (a, w [ii], temp);
mult m4 (y [pi], y [pi], y2);
mult M5 (y2, w [ii], temp1);
adicionar A3 (temp1, PSW, g);
atribuir PSW = g;
subtrair s1 (temp, temp1, w1);
atribuir w [ii] = w1;
sempre @ (RCL)
começo
atribuir io = ii;
atribuir xo = xi;
atribuir po = pi;
atribuir psj = PSW;
fim
fim
fim
if (m1 == 1'b0) começam
mult m6 (x [ii], w [ii], regr);
if (ii> = 4095) começam
atribuir yrecog = yrec;
fim
diferente
começo
adicionar A4 (yrec, regr, tempre);
atribuir yrec = tempre;
fim
fim
fim
endmodule
/ / Taxa de Aprendizagem Parâmetros da rede neural
parâmetro lrate = 0,01;
/ / Entrada portos da transformação elemento
input [5:0] II; / / Índice do pixel de entrada para o elemento de transformação
input [7:0] xi; / / Pixel valor de entrada para o elemento de transformação
input [3:0] pi; / / Índice do número de pessoas cuja imagem está sendo entrada
input [7:0] psi; / / Soma parcial Entrada da anterior elemento de transformação
input CLK;
entrada m1; / / Select Signal para decidir sobre o modo de funcionamento se Formação ou Reconhecimento
entrada m2; / / Select Signal para decidir sobre a Formação em modo se temos que calcular a saída ou Atualização dos pesos
/ / Saída portos do elemento de transformação
output [5:0] io; / / Saída do índice do pixel
output [7:0] xo, / / saída do pixel valor
output [3:0] po; / / Saída da Pessoa índice
output [7:0] psj; / / Saída da actualização parcial soma calculada em Processamento este elemento
/ / Registo Definição
reg [7:0] OSP;
reg [7:0] y [9:0];
reg [7:0] yrecog;
reg [7:0] w [4095: 0];
reg [7:0] PSW;
reg [7:0] g;
reg [7:0] w1;
reg [7:0] psj;
reg [7:0] yrec;
reg [7:0] regr;
/ / Fios
wire [7:0] t;
wire [15:0] d;
wire [15:0] out;
wire [15:0] temp;
wire [15:0] y2;
wire [31:0] temp1;
sempre @ (M1 ou M2)
começam: abc1
if (m1! = 0) begin
if (m2! = 0) begin
mult m1 (xi, w [ii], t);
adicionar a1 (t, psi, psj);
if (ii> = 4095) começam
/ / sempre @ (RCL)
atribuir y [pi] = psj;
fim
fim
atribuir io = ii;
atribuir xo = xi;
atribuir po = pi;
fim
if (m1! = 0) begin
if (m2) começar
mult m2 (lrate, y [pi], d);
mult m3 (d, xi, fora);
adicionar a2 (a, w [ii], temp);
mult m4 (y [pi], y [pi], y2);
mult M5 (y2, w [ii], temp1);
adicionar A3 (temp1, PSW, g);
atribuir PSW = g;
subtrair s1 (temp, temp1, w1);
atribuir w [ii] = w1;
sempre @ (RCL)
começo
atribuir io = ii;
atribuir xo = xi;
atribuir po = pi;
atribuir psj = PSW;
fim
fim
fim
if (m1 == 1'b0) começam
mult m6 (x [ii], w [ii], regr);
if (ii> = 4095) começam
atribuir yrecog = yrec;
fim
diferente
começo
adicionar A4 (yrec, regr, tempre);
atribuir yrec = tempre;
fim
fim
fim
endmodule