数电课程设计--简易两位数计数器(6)

2019-08-30 13:47

西北工业大学 电子信息学院 08021103班

3:begin rsm_db[15:8]<=ps2_byte;i<=i+1;end

4:begin rsm_db[7:0]<=ps2_byte;i<=i+1;end

5:begin i<=0;end endcase end end

assign sm_db=rsm_db;

//caculator part

reg[15:0] buff; reg[7:0] mm1,mm2; reg[3:0] op;

- 26 -

西北工业大学 电子信息学院 08021103班

reg[7:0] num1,num2; reg eoc; reg[3:0] data2; reg[9:0] data1; reg[5:0] a;

reg [7:0] e=8'b0110_0100; parameter

add=4'b1010,sub=4'b1011,mult=4'b1100,div=4'b1101; integer b;

always @(negedge ps2_state or negedge rst_n ) begin if(!rst_n)

begin buff=0;op=0;eoc=0;num1=0;num2=0;end else begin if(data!=4'b1110) begin

if((data>=4'b0000)&&(data<=4'b1001)) begin case(a) 0:begin

data1=data;buff=data1+data1+data1+data1+data1+data1+data1+data1+data1+data1;a<=a+1;end

- 27 -

西北工业大学 电子信息学院 08021103班

1:begin data2=data;buff=buff+data2;a<=0;end endcase end

else if((data>=4'b1010)&&(data<=4'b1110)) begin op=data;num1=buff[7:0];end //!@!!!! end

else begin if(eoc==0) begin

num2=buff[7:0]; case(op) add: begin

buff=num1+num2; eoc=1; end

- 28 -

西北工业大学 电子信息学院 08021103班

sub:

if (num1>num2) begin buff=num1-num2;eoc=1;end else begin

buff=num2-num1;eoc=1;end mult: begin

buff=num1*num2; eoc=1; end div: begin

if(num2==8'b00000000) buff=0; else begin

mm1=num1/num2; mm2=num1%num2; buff=mm1*e+mm2;

- 29 -

西北工业大学 电子信息学院 08021103班

end eoc=1; end endcase end end end end endmodule

//计算结果分位模块

module sy3(sml,smlq,smlb,smls,smlg); input [15:0] sml;

output [15:0] smlq,smlb,smls,smlg;

reg [15:0] smlq,smlb,smls,smlg,smlbb,smlss; reg [15:0] q=16'b000000_11111_01000; reg [15:0] h=16'b000000_00011_00100; reg [15:0] s=16'b000000_00000_01010; always @(sml) begin

- 30 -


数电课程设计--简易两位数计数器(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:线路铁塔基础作业指导书

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: