Advertisement
Guest User

Untitled

a guest
Oct 8th, 2010
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. module register(
  2. clk,
  3. irq_port,
  4. data_o,
  5. read_i,
  6. check);
  7.  
  8. input clk;
  9. input read_i;
  10. output reg irq_port;
  11. output reg check;
  12. output reg [31:0] data_o;
  13.  
  14.  
  15. reg [1:0] state;
  16. reg toread;
  17.  
  18. parameter IDLE = 0, DATA = 1, READING = 2;
  19. always @ (state)
  20. begin
  21. case(state)
  22. IDLE:
  23. begin
  24. data_o = 32'h0000;
  25. irq_port = 1'b0;
  26. end
  27.  
  28. DATA:
  29. begin
  30. irq_port = 1'b1;
  31. data_o = 32'h1234;
  32. end
  33.  
  34. READING:
  35. begin
  36. irq_port = 1'b0;
  37. data_o = 32'h1234;
  38. end
  39. endcase
  40. end
  41.  
  42. always @ (posedge clk)
  43. begin
  44. case(state)
  45. IDLE:
  46. begin
  47. if (clk) begin
  48. state = DATA;
  49. end
  50. end
  51.  
  52. DATA:
  53. begin
  54. if(clk) begin
  55. if(toread==1)
  56. begin
  57. state = READING;
  58. end
  59. end
  60. end
  61.  
  62. READING:
  63. begin
  64. if (clk) begin
  65. state = IDLE;
  66. end
  67. end
  68. default:
  69. begin
  70. state=IDLE;
  71. end
  72.  
  73. endcase
  74. end
  75.  
  76. always @ (read_i)
  77. begin
  78. case(read_i)
  79. 0:
  80. begin
  81. toread=0;
  82. end
  83. 1:
  84. begin
  85. toread=1;
  86. end
  87. default:
  88. begin
  89. toread=0;
  90. end
  91. endcase
  92. check<=toread;
  93. end
  94.  
  95.  
  96. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement