A
amr090
Guest
Опитвате се да получите този код да работи ... тя работи добре по simvision .. но когато прехвърлянето на кода върху xilinx ... аз добивам проблеми ....
Код:Модулът datainout (DataToFPGA, DataFromFPGA, ClrFPGAMem, DataValidToFPGA, DataValidFromFPGA, ClkToFPGA);
вход [7:0] DataToFPGA;
изход [7:0] DataFromFPGA;
вход ClrFPGAMem;
вход DataValidToFPGA;
DataValidFromFPGA продукция;
вход ClkToFPGA;рег. [31:0] температура;рег. [7:0] DataFromFPGA;
рег. DataValidFromFPGA;
рег. [2:0]-членка;параметър Sinit = 3'b000;
параметър Sread = 3'b001;
параметър Swrite = 3'b010;
параметър Spause = 3'b100;Аз цяло;
J цяло;Винаги @ (negedge ClkToFPGA или posedge DataValidToFPGA)
започвам
ако (ClrFPGAMem)
започвам
състояние = Sinit;
DataValidFromFPGA = 1'b0;
DataFromFPGA = 8'bzzzzzzzz;
приключвам
в противен случай
започвам
случай (състояние)
Sinit: започнем
ако (DataValidToFPGA)
започвам
I = 1;
състояние = Sread;
приключвам
в противен случай
състояние = Sinit;
приключвам
Sread: започнемтемпература [8 * (I-1)] = DataToFPGA [0];
температура [8 * (I-1)] = DataToFPGA [1];
температура [8 * (I-1)] = DataToFPGA [2];
температура [8 * (I-1)] = DataToFPGA [3];
температура [8 * (I-1)] = DataToFPGA [4];
температура [8 * (I-1)] = DataToFPGA [5];
температура [8 * (I-1)] = DataToFPGA [6];
температура [8 * (I-1)] = DataToFPGA [7];I = I 1;
ако (! DataValidToFPGA)
състояние = Spause;
приключвам
Spause: започнем
I = 1;
DataValidFromFPGA = 1'b1;
състояние = Swrite;
приключвам
Swrite: започнем
ако (DataValidFromFPGA)
започвамDataFromFPGA [0] = температура [8 * (I-1)];
DataFromFPGA [1] = температура [8 * (I-1)];
DataFromFPGA [2] = температура [8 * (I-1)];
DataFromFPGA [3] = температура [8 * (I-1)];
DataFromFPGA [4] = температура [8 * (I-1)];
DataFromFPGA [5] = температура [8 * (I-1)];
DataFromFPGA [6] = температура [8 * (I-1)];
DataFromFPGA [7] = температура [8 * (I-1)];I = I 1;
приключвам
ако (I == 6) DataValidFromFPGA = 1'b0;
приключвамendcase
приключвам
приключвам
endmodule
Код:Модулът datainout (DataToFPGA, DataFromFPGA, ClrFPGAMem, DataValidToFPGA, DataValidFromFPGA, ClkToFPGA);
вход [7:0] DataToFPGA;
изход [7:0] DataFromFPGA;
вход ClrFPGAMem;
вход DataValidToFPGA;
DataValidFromFPGA продукция;
вход ClkToFPGA;рег. [31:0] температура;рег. [7:0] DataFromFPGA;
рег. DataValidFromFPGA;
рег. [2:0]-членка;параметър Sinit = 3'b000;
параметър Sread = 3'b001;
параметър Swrite = 3'b010;
параметър Spause = 3'b100;Аз цяло;
J цяло;Винаги @ (negedge ClkToFPGA или posedge DataValidToFPGA)
започвам
ако (ClrFPGAMem)
започвам
състояние = Sinit;
DataValidFromFPGA = 1'b0;
DataFromFPGA = 8'bzzzzzzzz;
приключвам
в противен случай
започвам
случай (състояние)
Sinit: започнем
ако (DataValidToFPGA)
започвам
I = 1;
състояние = Sread;
приключвам
в противен случай
състояние = Sinit;
приключвам
Sread: започнемтемпература [8 * (I-1)] = DataToFPGA [0];
температура [8 * (I-1)] = DataToFPGA [1];
температура [8 * (I-1)] = DataToFPGA [2];
температура [8 * (I-1)] = DataToFPGA [3];
температура [8 * (I-1)] = DataToFPGA [4];
температура [8 * (I-1)] = DataToFPGA [5];
температура [8 * (I-1)] = DataToFPGA [6];
температура [8 * (I-1)] = DataToFPGA [7];I = I 1;
ако (! DataValidToFPGA)
състояние = Spause;
приключвам
Spause: започнем
I = 1;
DataValidFromFPGA = 1'b1;
състояние = Swrite;
приключвам
Swrite: започнем
ако (DataValidFromFPGA)
започвамDataFromFPGA [0] = температура [8 * (I-1)];
DataFromFPGA [1] = температура [8 * (I-1)];
DataFromFPGA [2] = температура [8 * (I-1)];
DataFromFPGA [3] = температура [8 * (I-1)];
DataFromFPGA [4] = температура [8 * (I-1)];
DataFromFPGA [5] = температура [8 * (I-1)];
DataFromFPGA [6] = температура [8 * (I-1)];
DataFromFPGA [7] = температура [8 * (I-1)];I = I 1;
приключвам
ако (I == 6) DataValidFromFPGA = 1'b0;
приключвамendcase
приключвам
приключвам
endmodule