好文档 - 专业文书写作范文服务资料分享网站

CPU课程设计 - 图文

天下 分享 时间: 加入收藏 我要投稿 点赞

R0 = {R0[6:0], 1'b0}; 2'b01 :

R1 = {R1[6:0], 1'b0}; 2'b10 :

R2 = {R2[6:0], 1'b0}; default :

R3 = {R3[6:0], 1'b0}; endcase endcase

addp, subp, meth1, mulp, logp, comp, swap : case (IR[9:8]) 2'b00 : A = R0; 2'b01 : A = R1; 2'b10 : A = R2; default : A = R3; endcase default : ; endcase end 2 :

case (IR[15:12]) addp :

case (IR[11:10]) 2'b00 : begin

temp = ({R0[7], R0[7:0]}) + ({A[7], A[7:0]}); R0 = temp[7:0];

overflow <= temp[8] ^ temp[7]; end 2'b01 : begin

temp = ({R1[7], R1[7:0]}) + ({A[7], A[7:0]}); R1 = temp[7:0];

overflow <= temp[8] ^ temp[7]; end 2'b10 : begin

temp = ({R2[7], R2[7:0]}) + ({A[7], A[7:0]}); R2 = temp[7:0];

11 <0>

overflow <= temp[8] ^ temp[7]; end default : begin

temp = ({R3[7], R3[7:0]}) + ({A[7], A[7:0]}); R3 = temp[7:0];

overflow <= temp[8] ^ temp[7]; end endcase subp :

case (IR[11:10]) 2'b00 : begin

temp = ({R0[7], R0[7:0]}) + (~({A[7], A[7:0]})) + 1'b1; R0 = temp[7:0];

overflow <= temp[8] ^ temp[7]; end 2'b01 : begin

temp = ({R1[7], R1[7:0]}) + (~({A[7], A[7:0]})) + 1'b1; R1 = temp[7:0];

overflow <= temp[8] ^ temp[7]; end 2'b10 : begin

temp = ({R2[7], R2[7:0]}) + (~({A[7], A[7:0]})) + 1'b1; R2 = temp[7:0];

overflow <= temp[8] ^ temp[7]; end default : begin

temp = ({R3[7], R3[7:0]}) + (~({A[7], A[7:0]})) + 1'b1; R3 = temp[7:0];

overflow <= temp[8] ^ temp[7]; end endcase meth1 :

case (IR[11:10]) 2'b00 :

case (IR[9:8]) 2'b00 :

R0 = R0 + 1'b1; 2'b01 :

R1 = R1 + 1'b1;

12 <0>

2'b10 :

R2 = R2 + 1'b1; default :

R3 = R3 + 1'b1; endcase 2'b01 :

case (IR[9:8]) 2'b00 :

R0 = R0 - 1'b1; 2'b01 :

R1 = R1 - 1'b1; 2'b10 :

R2 = R2 - 1'b1; default :

R3 = R3 - 1'b1; endcase 2'b10 :

case (IR[9:8]) 2'b00 :

R0 = R0 + 2'b10; 2'b01 :

R1 = R1 + 2'b10; 2'b10 :

R2 = R2 + 2'b10; default :

R3 = R3 + 2'b10; endcase default :

case (IR[9:8]) 2'b00 :

R0 = R0 - 2'b10; 2'b01 :

R1 = R1 - 2'b10; 2'b10 :

R2 = R2 - 2'b10; default :

R3 = R3 - 2'b10; endcase endcase mulp :

case (IR[11:10]) 2'b00 : begin

temp2 = R0 * A;

13 <0>

R0 = temp2[7:0]; R1 = temp2[15:8]; end 2'b01 : begin

temp2 = R1 * A; R0 = temp2[7:0]; R1 = temp2[15:8]; end 2'b10 : begin

temp2 = R2 * A; R2 = temp2[7:0]; R3 = temp2[15:8]; end default : begin

temp2 = R3 * A; R2 = temp2[7:0]; R3 = temp2[15:8]; end endcase logp :

case (IR[11:10]) 2'b00 :

case (IR[9:8]) 2'b00 :

R0 = R0 & A; 2'b01 :

R0 = R0 & A; 2'b10 :

R1 = R1 & R0; 2'b11 :

R1 = R1 & R1; endcase 2'b01 :

case (IR[9:8]) 2'b00 :

R0 = R0 | A; 2'b01 :

R0 = R0 | A; 2'b10 :

R1 = R1 | R0; 2'b11 :

14 <0>

R1 = R1 | R1; endcase 2'b10 :

case (IR[9:8]) 2'b00 :

R0 = R0 ^ A; 2'b01 :

R0 = R0 ^ A; 2'b10 :

R1 = R1 ^ R0; 2'b11 :

R1 = R1 ^ R1; endcase default :

case (IR[9:8]) 2'b00 :

R0 = (~A); 2'b01 :

R0 = (~A); 2'b10 :

R1 = (~R0); 2'b11 :

R1 = (~R1); endcase endcase comp :

case (IR[11:10]) 2'b00 :

if (R0 > A)

R0 = 8'b00000001; else if (R0 < A)

R0 = 8'b10000001; else

R0 = 8'b00000000; 2'b01 :

if (R1 > A)

R1 = 8'b00000001; else if (R1 < A)

R1 = 8'b10000001; else

R1 = 8'b00000000; 2'b10 :

if (R2 > A)

R2 = 8'b00000001;

15 <0>

CPU课程设计 - 图文

R0={R0[6:0],1'b0};2'b01:R1={R1[6:0],1'b0};
推荐度:
点击下载文档文档为doc格式
5xcqk2lgwm1xkfw968ko77t6k14pg601b7j
领取福利

微信扫码领取福利

微信扫码分享