Advertisement
Guest User

Untitled

a guest
Mar 31st, 2020
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.78 KB | None | 0 0
  1. module deser7_24(input wire [in-1:0] dataIn,
  2. input wire clkIn,
  3. input wire clkToOut,
  4. output reg [out-1:0] dataOut,
  5. output reg clkOut
  6. );
  7. parameter in = 7;
  8. parameter out = 24;
  9.  
  10. reg [in*out-1:0] data = 0;
  11. integer counterIn = 0;
  12. integer counterOut = 0;
  13. integer start = 0;
  14.  
  15. always @(posedge clkIn) begin
  16. counterIn = counterIn + 1;
  17. if (counterIn > out) begin counterIn = 1; end
  18. if (counterIn > 1) begin start = 1; end
  19. case (counterIn)
  20. 1: data[6:0] = dataIn;
  21. 2: data[13:7] = dataIn;
  22. 3: data[20:14] = dataIn;
  23. 4: data[27:21] = dataIn;
  24. 5: data[34:28] = dataIn;
  25. 6: data[41:35] = dataIn;
  26. 7: data[48:42] = dataIn;
  27. 8: data[55:49] = dataIn;
  28. 9: data[62:56] = dataIn;
  29. 10: data[69:63] = dataIn;
  30. 11: data[76:70] = dataIn;
  31. 12: data[83:77] = dataIn;
  32. 13: data[90:84] = dataIn;
  33. 14: data[97:91] = dataIn;
  34. 15: data[104:98] = dataIn;
  35. 16: data[111:105] = dataIn;
  36. 17: data[118:112] = dataIn;
  37. 18: data[125:119] = dataIn;
  38. 19: data[132:126] = dataIn;
  39. 20: data[139:133] = dataIn;
  40. 21: data[146:140] = dataIn;
  41. 22: data[153:147] = dataIn;
  42. 23: data[160:154] = dataIn;
  43. 24: data[167:161] = dataIn;
  44. default: ;
  45. endcase;
  46. end
  47.  
  48. always @(posedge clkToOut or negedge clkToOut) begin
  49. if (start == 1)
  50. clkOut = clkToOut;
  51. else
  52. clkOut = 0;
  53. end
  54.  
  55. always @(posedge clkToOut) begin
  56. if (start == 1) begin
  57. counterOut = counterOut + 1;
  58. if (counterOut > in) begin counterOut = 1; end
  59. case (counterOut)
  60. 1: dataOut = data[23:0];
  61. 2: dataOut = data[47:24];
  62. 3: dataOut = data[71:48];
  63. 4: dataOut = data[95:72];
  64. 5: dataOut = data[119:96];
  65. 6: dataOut = data[143:120];
  66. 7: dataOut = data[167:144];
  67. default: ;
  68. endcase;
  69. end
  70. end
  71.  
  72. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement