Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- input CLOCK;
- input START;
- input [7:0] C;
- input [7:0] D;
- output [15:0] P;
- reg [15:0] P;
- reg [7:0] M;
- reg [7:0] Q;
- reg [7:0] A;
- reg Qd;
- reg [16:0] SHIFT;
- integer CNT;
- always @(posedge START or posedge CLOCK) begin
- if (START) begin
- P <= 0;
- M <= C;
- Q <= D;
- A <= 0;
- Qd <= 0;
- SHIFT <= 0;
- CNT <= 8;
- end
- else begin
- if (CNT != 0) begin
- case ({Q[0], Qd})
- 2'b01: begin
- A <= A + M;
- SHIFT <= {A[7], A, Q};
- end
- 2'b10: begin
- A <= A + ~M + 1;
- SHIFT <= {A[7], A, Q};
- end
- 2'b00, 2'b11: begin
- SHIFT <= {A[7], A, Q};
- end
- endcase
- CNT <= CNT - 1;
- end
- else P <= SHIFT;
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement