A
amr090
Guest
Proberen om deze code te werken ... het draait perfect op simvision .. maar als ik de code op Xilinx ... i get problemen ....
Code:module datainout (DataToFPGA, DataFromFPGA, ClrFPGAMem, DataValidToFPGA, DataValidFromFPGA, ClkToFPGA);
input [7:0] DataToFPGA;
output [7:0] DataFromFPGA;
input ClrFPGAMem;
input DataValidToFPGA;
uitgang DataValidFromFPGA;
input ClkToFPGA;reg [31:0] temp;reg [7:0] DataFromFPGA;
reg DataValidFromFPGA;
reg [2:0] staat;parameter Sinit = 3'b000;
parameter sRead = 3'b001;
parameter Swrite = 3'b010;
parameter Spause = 3'b100;integer i;
integer j;altijd @ (negedge ClkToFPGA of posedge DataValidToFPGA)
beginnen
if (ClrFPGAMem)
beginnen
state = Sinit;
DataValidFromFPGA = 1'b0;
DataFromFPGA = 8'bzzzzzzzz;
eindigen
anders
beginnen
geval is (staat)
Sinit: beginnen
if (DataValidToFPGA)
beginnen
i = 1;
state = sRead;
eindigen
anders
state = Sinit;
eindigen
SRead: beginnentemp [8 * (i-1)] = DataToFPGA [0];
temp [8 * (i-1)] = DataToFPGA [1];
temp [8 * (i-1)] = DataToFPGA [2];
temp [8 * (i-1)] = DataToFPGA [3];
temp [8 * (i-1)] = DataToFPGA [4];
temp [8 * (i-1)] = DataToFPGA [5];
temp [8 * (i-1)] = DataToFPGA [6];
temp [8 * (i-1)] = DataToFPGA [7];i = i 1;
if (! DataValidToFPGA)
state = Spause;
eindigen
Spause: beginnen
i = 1;
DataValidFromFPGA = 1'b1;
state = Swrite;
eindigen
Swrite: beginnen
if (DataValidFromFPGA)
beginnenDataFromFPGA [0] = temp [8 * (i-1)];
DataFromFPGA [1] = temp [8 * (i-1)];
DataFromFPGA [2] = temp [8 * (i-1)];
DataFromFPGA [3] = temp [8 * (i-1)];
DataFromFPGA [4] = temp [8 * (i-1)];
DataFromFPGA [5] = temp [8 * (i-1)];
DataFromFPGA [6] = temp [8 * (i-1)];
DataFromFPGA [7] = temp [8 * (i-1)];i = i 1;
eindigen
if (i == 6) DataValidFromFPGA = 1'b0;
eindigenENDCASE
eindigen
eindigen
endmodule
Code:module datainout (DataToFPGA, DataFromFPGA, ClrFPGAMem, DataValidToFPGA, DataValidFromFPGA, ClkToFPGA);
input [7:0] DataToFPGA;
output [7:0] DataFromFPGA;
input ClrFPGAMem;
input DataValidToFPGA;
uitgang DataValidFromFPGA;
input ClkToFPGA;reg [31:0] temp;reg [7:0] DataFromFPGA;
reg DataValidFromFPGA;
reg [2:0] staat;parameter Sinit = 3'b000;
parameter sRead = 3'b001;
parameter Swrite = 3'b010;
parameter Spause = 3'b100;integer i;
integer j;altijd @ (negedge ClkToFPGA of posedge DataValidToFPGA)
beginnen
if (ClrFPGAMem)
beginnen
state = Sinit;
DataValidFromFPGA = 1'b0;
DataFromFPGA = 8'bzzzzzzzz;
eindigen
anders
beginnen
geval is (staat)
Sinit: beginnen
if (DataValidToFPGA)
beginnen
i = 1;
state = sRead;
eindigen
anders
state = Sinit;
eindigen
SRead: beginnentemp [8 * (i-1)] = DataToFPGA [0];
temp [8 * (i-1)] = DataToFPGA [1];
temp [8 * (i-1)] = DataToFPGA [2];
temp [8 * (i-1)] = DataToFPGA [3];
temp [8 * (i-1)] = DataToFPGA [4];
temp [8 * (i-1)] = DataToFPGA [5];
temp [8 * (i-1)] = DataToFPGA [6];
temp [8 * (i-1)] = DataToFPGA [7];i = i 1;
if (! DataValidToFPGA)
state = Spause;
eindigen
Spause: beginnen
i = 1;
DataValidFromFPGA = 1'b1;
state = Swrite;
eindigen
Swrite: beginnen
if (DataValidFromFPGA)
beginnenDataFromFPGA [0] = temp [8 * (i-1)];
DataFromFPGA [1] = temp [8 * (i-1)];
DataFromFPGA [2] = temp [8 * (i-1)];
DataFromFPGA [3] = temp [8 * (i-1)];
DataFromFPGA [4] = temp [8 * (i-1)];
DataFromFPGA [5] = temp [8 * (i-1)];
DataFromFPGA [6] = temp [8 * (i-1)];
DataFromFPGA [7] = temp [8 * (i-1)];i = i 1;
eindigen
if (i == 6) DataValidFromFPGA = 1'b0;
eindigenENDCASE
eindigen
eindigen
endmodule