欢迎来到天天文库
浏览记录
ID:39245184
大小:223.50 KB
页数:22页
时间:2019-06-28
《串行信号发生器设计1》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、有符号数的+、-运算寄存器堆的设计自命题(序列检测器设计)任务(二)设计一个简单ALU单元。要求:1.输入按键0—9(或用10个开关代替数字0—9)。2.用数码管(或发光二极管)显示结果数值。模块接口信号名信号方向描述A[31:0]输入ALU第一个数据输入端B[31:0]输入ALU第二个数据输入端Ctrl[4:0]输入ALU运算功能编码C[31:0]输出ALU运算结果Zero输出运算结果0标志Overflow输出运算结果溢出标志(只在进行有符号数运算才有意义)Compare输出比较运算的结果编号功能名称Ctrl编码运算功能1无操
2、作00000C=B2‘无符号加’运算00001C=A+B3‘有符号加’运算00010C=A+B4‘减’运算00011C=A-B5‘有符号减’运算00100C=A-B编号功能名称Ctrl编码运算功能6‘与’运算00101C=A&B7‘或’运算00110C=A
3、B8‘或非’运算00111C=~(A
4、B)9‘异或’运算01000C=A^B10‘小于置位’运算01001C=(A<B)?1:011‘有符号小于置位’运算01010C=(A<B)?1:012小于001011Compare=(A<0)?1:013小于等于001100Compar
5、e=(A≤0)?1:014大于001101Compare=(A>0)?1:015大于等于001110Compare=(A≥0)?1:016等于01111Compare=(A=B)?1:017不等10000Compare=(A≠B)?1:0功能定义有符号数的+、-运算分析:以补码为例:C=A+B;输入A、B是补码,输出C也应是补码。①A、B符号相异的和;②A、B符号相同的和;ⅰA、B的符号位都是0(+)时,⑴C的符号位为0时,和不修正;⑵C的符号位为1时,和要修正(和是+);ⅱA、B符号位都是1(-)时,⑴C的符号位为1时,和不修
6、正;⑵C的符号位为0时,和要修正(和是-);抽样实例:7+(-8);(-5)+2;6+(-2)2+3;6+5(-4)+(-5);(-3)+(-2)“-”运算由同学们来做开始C=A+BA、B都是正数?和的最高位=1?置溢出标志和的最高位清零A、B都是负数?和的最高位=0?置溢出标志和的最高位置1YYYYNNNN2.流程图:moduleALU(A,B,C,ctl,zero,over,cmp);input[3:0]A,B;input[4:0]ctl;output[3:0]C;outputzero,over,cmp;reg[3:0]C;
7、regcmp,over;assignzero=(C==4'b0000)?1:0;always@(ctlorAorB)case(ctl)5'd00:C=B;5'd01:C=A+B;5‘d02:C<=A+B;//有符号5'd03:C=A-B;5‘d04:C=A-B;//有符号5'd05:C=A&B;5'd06:C=A
8、B;5'd07:C=~(A
9、B);5'd08:C=A^B;5'd09:beginif(A
10、inif(A<0)cmp=1;elsecmp=0;end5'd12:beginif(A<=0)cmp=1;elsecmp=0;end5'd13:beginif(A>0)cmp=1;elsecmp=0;end5'd14:beginif(A>=0)cmp=1;elsecmp=0;end5'd15:beginif(A==B)cmp=1;elsecmp=0;end5'd16:beginif(A!=B)cmp=1;elsecmp=0;endendcaseendmodule5'd02:beginC<=A+B;if(!(A[3]^B[3])&
11、&!A[3])if(C[3])beginover<=1;C[3]<=0;endelseover<=0;elseif(!(A[3]^B[3])&&A[3])if(!C[3])beginover<=1;C[3]<=1;endelseover<=0;end//3.原程序:任务(二)设计寄存器堆。要求:完成对4个不同数据、不同地址的读写操作。模块接口信号定义信号名信号方向描述Clk输入MIPS-C处理器时钟Reset输入复位信号RS1[4:0]输入读寄存器文件时的第1个寄存器下标RS2[4:0]输入读寄存器文件时的第2个寄存器下标RD[
12、4:0]输入写寄存器文件时的寄存器下标RegWrite输入寄存器文件写使能RData1[31:0]输出读寄存器文件时的第1个寄存器的输出RData2[31:0]输出读寄存器文件时的第2个寄存器的输出WData[31:0]输出?寄存器文件写入数据功能定义编号功能名
此文档下载收益归作者所有