| module diffeq_paj_convert (Xinport, Yinport, Uinport, Aport, DXport, Xoutport, Youtport, Uoutport, clk, reset); | |
| input[31:0] Xinport; | |
| input[31:0] Yinport; | |
| input[31:0] Uinport; | |
| input[31:0] Aport; | |
| input[31:0] DXport; | |
| input clk; | |
| input reset; | |
| output[31:0] Xoutport; | |
| output[31:0] Youtport; | |
| output[31:0] Uoutport; | |
| reg[31:0] Xoutport; | |
| reg[31:0] Youtport; | |
| reg[31:0] Uoutport; | |
| reg[31:0] x_var; | |
| reg[31:0] y_var; | |
| reg[31:0] u_var; | |
| wire[31:0] temp; | |
| reg looping; | |
| assign temp = u_var * DXport; | |
| always @(posedge clk) | |
| begin | |
| if (reset == 1'b1) | |
| begin | |
| looping <= 1'b0; | |
| x_var <= 0; | |
| y_var <= 0; | |
| u_var <= 0; | |
| end | |
| else | |
| if (looping == 1'b0) | |
| begin | |
| x_var <= Xinport; | |
| y_var <= Yinport; | |
| u_var <= Uinport; | |
| looping <= 1'b1; | |
| end | |
| else if (x_var < Aport) | |
| begin | |
| u_var <= (u_var - (temp/*u_var * DXport*/ * 3 * x_var)) - (DXport * 3 * y_var); | |
| y_var <= y_var + temp;//(u_var * DXport); | |
| x_var <= x_var + DXport; | |
| looping <= looping; | |
| end | |
| else | |
| begin | |
| Xoutport <= x_var ; | |
| Youtport <= y_var ; | |
| Uoutport <= u_var ; | |
| looping <= 1'b0; | |
| end | |
| end | |
| endmodule | |