收藏 分销(赏)

16位定点数原码一位乘法器的设计与实现.doc

上传人:胜**** 文档编号:2045166 上传时间:2024-05-14 格式:DOC 页数:30 大小:405KB 下载积分:10 金币
下载 相关 举报
16位定点数原码一位乘法器的设计与实现.doc_第1页
第1页 / 共30页
16位定点数原码一位乘法器的设计与实现.doc_第2页
第2页 / 共30页


点击查看更多>>
资源描述
计算机科学与工程学院 课程设计报告 题目全称: 16位定点数原码一位乘法器的设计与实现 课程名称: 计算机组成原理 指导老师: 谭浩 职称: 序号 学生姓名 学号 班号 成绩 1 刘晓窗 2012060010006 2012060010 2 李育桥 2012060010025 2012060010 3 郭建准 4 李浩 5 李志飞 6 7 8 9 10 (注:学生姓名填写按学生对该课程设计的贡献及工作量由高到底排列,分数按排名依次递减。序号排位为“1”的学生成绩最高,排位为“10”的学生成绩最低。) 指导老师评语: 签字: 摘 要 摘 要 Verilog HDL 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。本实验用Verilog HDL语言设计了全加器实现的组合乘法器,通过功能仿真,验证了结果。 关键词: 乘法器,Verilog,组合逻辑,全加器 - III - Abstract ABSTRACT Text…. Keywords: 目 录 目录 (自动插入目录) 第一章 绪论 1 1.1 选题背景及意义 1 1.2 国内外研究现状 1 1.3 主要内容与章节安排 1 1.4 本章小结 1 第二章 课程设计的需求分析 3 2.1 环境需求 3 2.2 功能需求 3 2.3 性能需求 3 2.3 本章小结 3 第三章 ****的设计 5 3.1 总体设计 5 3.2 功能模块设计 5 3.3 本章小结 5 第四章 ****的实现 7 4.1 开发环境介绍 7 4.2 主要功能模块的实现 7 4.3 本章小结 7 第五章 测试及成果展示 9 5.1 测试环境 9 5.2 测试用例和结果 9 5.3 成果展示 9 5.4 本章小结 9 第六章 总结与展望 11 参考文献 12 第一章 绪论 第一章 绪论 1.1 选题背景及意义 随着计算机科学技术的发展,人们获得信息的途径更加多样,获取信息的速度更加快捷。硬件的发展允许程序员编出很多精彩的使用软件,也使得计算机更加普及。中央处理器CPU的好坏是影响和制约计算机速度和性能的关键因素。而加法器是组成CPU的的重要部件,一般运算速度的快慢就取决与每秒执行加法的次数,加法器是算术逻辑单元中的基本逻辑器件。例如:为了节省资源,减法器和硬件乘法器都可由加法器来构成。 1.2 国内外研究现状 1.3 主要内容与章节安排 1.4 本章小结 - 23 - 第二章 课程设计的需求分析 第二章 课程设计的需求分析 2.1 环境需求 PC、win7、ise7.1、xc3s100e-4vq100芯片、 2.2 功能需求 x、y为两个16位定点数,z为32位数,作为输出。实现16位定点数乘法。 2.3 性能需求 2.3 本章小结 第三章 ***的设计 第三章16位乘法器的设计 3.1 总体设计 3.2 功能模块设计 3.3 本章小结 第四章 ***的实现 第四章 ****的实现 4.1 开发环境介绍 4.2 主要功能模块的实现 module multi16(x,y,clock,z); input[15:0] x,y;//定义乘数 input clock; //定义时钟clock output[31:0] z; //定义和的输出z reg [15:0] reg_x;//定义寄存器x reg [15:0] reg_y; //定义寄存器y reg [31:0] reg_z; //定义寄存器z wire[16:0] p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15;//定义分别用来存储a十六位与b的每一位相与的结果 wire[75:0] j1,k1; wire[50:0] j2,k2; wire[32:0] j3,k3; wire[22:0] j4,k4; wire[15:0] j5,k5; wire[6:0] j6,k6; wire[2:0] j7,k7; wire[8:0] j8,k8; wire[21:0] j9,k9; assign z=reg_z;//将寄存器z的内容赋给输出和z always @(posedge clock)//时序逻辑语句块 begin reg_x <=x ;//将加数x的值存到寄存器reg_x中 reg_y <=y ; //将被加数y的值存到寄存器reg_y中 reg_z<={j9[21],k9[21],k9[20],k9[19],k9[18],k9[17],k9[16],k9[15],k9[14],k9[13],k9[12], k9[11],k9[10],k9[9],k9[8],k9[7],k9[6],k9[5],k9[4],k9[3],k9[2],k9[1],k9[0],k8[0],k7[0], k6[0],k5[0],k4[0],k3[0],k2[0],k1[0],p0[0]};//分别求得的和的每一位赋给reg_z end //对a的16位与b的每一位相与 pp pp0(reg_x,reg_y[0],p0); pp pp1(reg_x,reg_y[1],p1); pp pp2(reg_x,reg_y[2],p2); pp pp3(reg_x,reg_y[3],p3); pp pp4(reg_x,reg_y[4],p4); pp pp5(reg_x,reg_y[5],p5); pp pp6(reg_x,reg_y[6],p6); pp pp7(reg_x,reg_y[7],p7); pp pp8(reg_x,reg_y[8],p8); pp pp9(reg_x,reg_y[9],p9); pp pp10(reg_x,reg_y[10],p10); pp pp11(reg_x,reg_y[11],p11); pp pp12(reg_x,reg_y[12],p12); pp pp13(reg_x,reg_y[13],p13); pp pp14(reg_x,reg_y[14],p14); pp pp15(reg_x,reg_y[15],p15); //调用全加器与半加器,通过实例化求得和的每一位与每位的进位信号 halfadder ha1(p0[1],p1[0],k1[0],j1[0]); fulladder fa1(p0[2],p1[1],p2[0],k1[1],j1[1]); fulladder fa2(p0[3],p1[2],p2[1],k1[2],j1[2]); fulladder fa3(p0[4],p1[3],p2[2],k1[3],j1[3]); fulladder fa4(p0[5],p1[4],p2[3],k1[4],j1[4]); fulladder fa5(p0[6],p1[5],p2[4],k1[5],j1[5]); fulladder fa6(p0[7],p1[6],p2[5],k1[6],j1[6]); fulladder fa7(p0[8],p1[7],p2[6],k1[7],j1[7]); fulladder fa8(p0[9],p1[8],p2[7],k1[8],j1[8]); fulladder fa9(p0[10],p1[9],p2[8],k1[9],j1[9]); fulladder fa10(p0[11],p1[10],p2[9],k1[10],j1[10]); fulladder fa11(p0[12],p1[11],p2[10],k1[11],j1[11]); fulladder fa12(p0[13],p1[12],p2[11],k1[12],j1[12]); fulladder fa13(p0[14],p1[13],p2[12],k1[13],j1[13]); fulladder fa14(p0[15],p1[14],p2[13],k1[14],j1[14]); fulladder fa15(p1[15],p2[14],p3[13],k1[15],j1[15]); fulladder fa16(p2[15],p3[14],p4[13],k1[16],j1[16]); fulladder fa17(p3[15],p4[14],p5[13],k1[17],j1[17]); fulladder fa18(p4[15],p5[14],p6[13],k1[18],j1[18]); fulladder fa19(p5[15],p6[14],p7[13],k1[19],j1[19]); fulladder fa20(p6[15],p7[14],p8[13],k1[20],j1[20]); fulladder fa21(p7[15],p8[14],p9[13],k1[21],j1[21]); fulladder fa22(p8[15],p9[14],p10[13],k1[22],j1[22]); fulladder fa23(p9[15],p10[14],p11[13],k1[23],j1[23]); fulladder fa24(p10[15],p11[14],p12[13],k1[24],j1[24]); fulladder fa25(p11[15],p12[14],p13[13],k1[25],j1[25]); fulladder fa26(p12[15],p13[14],p14[13],k1[26],j1[26]); fulladder fa27(p13[15],p14[14],p15[13],k1[27],j1[27]); fulladder fa28(p3[2],p4[1],p5[0],k1[28],j1[28]); fulladder fa29(p3[3],p4[2],p5[1],k1[29],j1[29]); fulladder fa30(p3[4],p4[3],p5[2],k1[30],j1[30]); fulladder fa31(p3[5],p4[4],p5[3],k1[31],j1[31]); fulladder fa32(p3[6],p4[5],p5[4],k1[32],j1[32]); fulladder fa33(p3[7],p4[6],p5[5],k1[33],j1[33]); fulladder fa34(p3[8],p4[7],p5[6],k1[34],j1[34]); fulladder fa35(p3[9],p4[8],p5[7],k1[35],j1[35]); fulladder fa36(p3[10],p4[9],p5[8],k1[36],j1[36]); fulladder fa37(p3[11],p4[10],p5[9],k1[37],j1[37]); fulladder fa38(p3[12],p4[11],p5[10],k1[38],j1[38]); fulladder fa39(p4[12],p5[11],p6[10],k1[39],j1[39]); fulladder fa40(p5[12],p6[11],p7[10],k1[40],j1[40]); fulladder fa41(p6[12],p7[11],p8[10],k1[41],j1[41]); fulladder fa42(p7[12],p8[11],p9[10],k1[42],j1[42]); fulladder fa43(p8[12],p9[11],p10[10],k1[43],j1[43]); fulladder fa44(p9[12],p10[11],p11[10],k1[44],j1[44]); fulladder fa45(p10[12],p11[11],p12[10],k1[45],j1[45]); fulladder fa46(p11[12],p12[11],p13[10],k1[46],j1[46]); fulladder fa47(p12[12],p13[11],p14[10],k1[47],j1[47]); fulladder fa48(p13[12],p14[11],p15[10],k1[48],j1[48]); fulladder fa49(p6[2],p7[1],p8[0],k1[49],j1[49]); fulladder fa50(p6[3],p7[2],p8[1],k1[50],j1[50]); fulladder fa51(p6[4],p7[3],p8[2],k1[51],j1[51]); fulladder fa52(p6[5],p7[4],p8[3],k1[52],j1[52]); fulladder fa53(p6[6],p7[5],p8[4],k1[53],j1[53]); fulladder fa54(p6[7],p7[6],p8[5],k1[54],j1[54]); fulladder fa55(p6[8],p7[7],p8[6],k1[55],j1[55]); fulladder fa56(p6[9],p7[8],p8[7],k1[56],j1[56]); fulladder fa57(p7[9],p8[8],p9[7],k1[57],j1[57]); fulladder fa58(p8[9],p9[8],p10[7],k1[58],j1[58]); fulladder fa59(p9[9],p10[8],p11[7],k1[59],j1[59]); fulladder fa60(p10[9],p11[8],p12[7],k1[60],j1[60]); fulladder fa61(p11[9],p12[8],p13[7],k1[61],j1[61]); fulladder fa62(p12[9],p13[8],p14[7],k1[62],j1[62]); fulladder fa63(p13[9],p14[8],p15[7],k1[63],j1[63]); fulladder fa64(p9[2],p10[1],p11[0],k1[64],j1[64]); fulladder fa65(p9[3],p10[2],p11[1],k1[65],j1[65]); fulladder fa66(p9[4],p10[3],p11[2],k1[66],j1[66]); fulladder fa67(p9[5],p10[4],p11[3],k1[67],j1[67]); fulladder fa68(p9[6],p10[5],p11[4],k1[68],j1[68]); fulladder fa69(p10[6],p11[5],p12[4],k1[69],j1[69]); fulladder fa70(p11[6],p12[5],p13[4],k1[70],j1[70]); fulladder fa71(p12[6],p13[5],p14[4],k1[71],j1[71]); fulladder fa72(p13[6],p14[5],p15[4],k1[72],j1[72]); fulladder fa73(p12[2],p13[1],p14[0],k1[73],j1[73]); fulladder fa74(p12[3],p13[2],p14[1],k1[74],j1[74]); fulladder fa75(p13[3],p14[2],p15[1],k1[75],j1[75]); halfadder ha2(k1[1],j1[0],k2[0],j2[0]); fulladder fa76(k1[2],p3[0],j1[1],k2[1],j2[1]); fulladder fa77(k1[3],p3[1],p4[0],k2[2],j2[2]); fulladder fa78(k1[4],k1[28],j1[3],k2[3],j2[3]); fulladder fa79(k1[5],k1[29],p6[0],k2[4],j2[4]); fulladder fa80(k1[6],k1[30],p6[1],k2[5],j2[5]); fulladder fa81(k1[7],k1[31],k1[49],k2[6],j2[6]); fulladder fa82(k1[8],k1[32],k1[50],k2[7],j2[7]); fulladder fa83(k1[9],k1[33],k1[51],k2[8],j2[8]); fulladder fa84(k1[10],k1[34],k1[52],k2[9],j2[9]); fulladder fa85(k1[11],k1[35],k1[53],k2[10],j2[10]); fulladder fa86(k1[12],k1[36],k1[54],k2[11],j2[11]); fulladder fa87(k1[13],k1[37],k1[55],k2[12],j2[12]); fulladder fa88(k1[14],k1[38],k1[56],k2[13],j2[13]); fulladder fa89(k1[15],k1[39],k1[57],k2[14],j2[14]); fulladder fa90(k1[16],k1[40],k1[58],k2[15],j2[15]); fulladder fa91(k1[17],k1[41],k1[59],k2[16],j2[16]); fulladder fa92(k1[18],k1[42],k1[60],k2[17],j2[17]); fulladder fa93(k1[19],k1[43],k1[61],k2[18],j2[18]); fulladder fa94(k1[20],k1[44],k1[62],k2[19],j2[19]); fulladder fa95(k1[21],k1[45],k1[63],k2[20],j2[20]); fulladder fa96(k1[22],k1[46],p14[9],k2[21],j2[21]); fulladder fa97(k1[23],k1[47],p15[9],k2[22],j2[22]); fulladder fa98(k1[24],k1[48],j1[23],k2[23],j2[23]); fulladder fa99(k1[25],p14[12],p15[11],k2[24],j2[24]); fulladder fa100(k1[26],p15[12],j1[25],k2[25],j2[25]); fulladder fa101(p14[15],p15[14],j1[27],k2[26],j2[26]); fulladder fa102(p7[0],j1[5],j1[29],k2[27],j2[27]); fulladder fa103(p9[0],j1[7],j1[31],k2[28],j2[28]); fulladder fa104(p9[1],p10[0],j1[8],k2[29],j2[29]); fulladder fa105(k1[64],j1[9],j1[33],k2[30],j2[30]); fulladder fa106(k1[65],p12[0],j1[10],k2[31],j2[31]); fulladder fa107(k1[66],p12[1],p13[0],k2[32],j2[32]); fulladder fa108(k1[67],k1[73],j1[12],k2[33],j2[33]); fulladder fa109(k1[68],k1[74],p15[0],k2[34],j2[34]); fulladder fa110(k1[69],k1[75],j1[14],k2[35],j2[35]); fulladder fa111(k1[70],p14[3],p15[2],k2[36],j2[36]); fulladder fa112(k1[71],p15[3],j1[16],k2[37],j2[37]); fulladder fa113(k1[72],j1[17],j1[41],k2[38],j2[38]); fulladder fa114(p14[6],p15[5],j1[18],k2[39],j2[39]); fulladder fa115(p15[6],j1[19],j1[43],k2[40],j2[40]); fulladder fa116(j1[20],j1[44],j1[62],k2[41],j2[41]); fulladder fa117(p15[8],j1[21],j1[45],k2[42],j2[42]); fulladder fa118(j1[34],j1[52],j1[64],k2[43],j2[43]); fulladder fa119(j1[11],j1[35],j1[53],k2[44],j2[44]); fulladder fa120(j1[36],j1[54],j1[66],k2[45],j2[45]); fulladder fa121(j1[13],j1[37],j1[55],k2[46],j2[46]); fulladder fa122(j1[38],j1[56],j1[68],k2[47],j2[47]); fulladder fa123(j1[15],j1[39],j1[57],k2[48],j2[48]); fulladder fa124(j1[40],j1[58],j1[70],k2[49],j2[49]); fulladder fa125(j1[42],j1[60],j1[72],k2[50],j2[50]); halfadder ha3(j2[0],k2[1],k3[0],j3[0]); fulladder fa126(k2[2],j2[1],j1[2],k3[1],j3[1]); fulladder fa127(k2[4],j2[3],j1[4],k3[2],j3[2]); fulladder fa128(k2[5],j2[4],k2[27],k3[3],j3[3]); fulladder fa129(k2[6],j2[5],j2[27],k3[4],j3[4]); fulladder fa130(k2[7],j2[6],k2[28],k3[5],j3[5]); fulladder fa131(k2[8],j2[7],k2[29],k3[6],j3[6]); fulladder fa132(k2[9],j2[8],k2[30],k3[7],j3[7]); fulladder fa133(k2[10],j2[9],k2[31],k3[8],j3[8]); fulladder fa134(k2[11],j2[10],k2[32],k3[9],j3[9]); fulladder fa135(k2[12],j2[11],k2[33],k3[10],j3[10]); fulladder fa136(k2[13],j2[12],k2[34],k3[11],j3[11]); fulladder fa137(k2[14],j2[13],k2[35],k3[12],j3[12]); fulladder fa138(k2[15],j2[14],k2[36],k3[13],j3[13]); fulladder fa139(k2[16],j2[15],k2[37],k3[14],j3[14]); fulladder fa140(k2[17],j2[16],k2[38],k3[15],j3[15]); fulladder fa141(k2[18],j2[17],k2[39],k3[16],j3[16]); fulladder fa142(k2[19],j2[18],k2[40],k3[17],j3[17]); fulladder fa143(k2[20],j2[19],k2[41],k3[18],j3[18]); fulladder fa144(k2[21],j2[20],k2[42],k3[19],j3[19]); fulladder fa145(k2[22],j2[21],j2[42],k3[20],j3[20]); fulladder fa146(k2[23],j2[22],j1[47],k3[21],j3[21]); fulladder fa147(k2[24],j2[23],j1[24],k3[22],j3[22]); fulladder fa148(j2[25],k1[27],j1[26],k3[23],j3[23]); fulladder fa149(j2[28],j1[32],j1[50],k3[24],j3[24]); fulladder fa150(j2[31],k2[44],j2[43],k3[25],j3[25]); fulladder fa151(j2[32],k2[45],j2[44],k3[26],j3[26]); fulladder fa152(j2[33],k2[46],j2[45],k3[27],j3[27]); fulladder fa153(j2[34],k2[47],j2[46],k3[28],j3[28]); fulladder fa154(j2[35],k2[48],j2[47],k3[29],j3[29]); fulladder fa155(j2[36],k2[49],j2[48],k3[30],j3[30]); fulladder fa156(j2[37],j2[49],j1[59],k3[31],j3[31]); fulladder fa157(j2[39],j2[50],j1[61],k3[32],j3[32]); halfadder ha4(k3[1],j3[0],k4[0],j4[0]); fulladder fa158(k2[3],j2[2],j3[1],k4[1],j4[1]); fulladder fa159(k3[4],j3[3],j1[6],k4[2],j4[2]); fulladder fa160(k3[5],j3[4],j1[49],k4[3],j4[3]); fulladder fa161(k3[6],k3[24],j3[5],k4[4],j4[4]); fulladder fa162(k3[7],j3[6],j3[24],k4[5],j4[5]); fulladder fa163(k3[8],j3[7],j2[30],k4[6],j4[6]); fulladder fa164(k3[9],j3[8],k3[25],k4[7],j4[7]); fulladder fa165(k3[10],j3[9],k3[26],k4[8],j4[8]); fulladder fa166(k3[11],j3[10],k3[27],k4[9],j4[9]); fulladder fa167(k3[12],j3[11],k3[28],k4[10],j4[10]); fulladder fa168(k3[13],j3[12],k3[29],k4[11],j4[11]); fulladder fa169(k3[14],j3[13],k3[30],k4[12],j4[12]); fulladder fa170(k3[15],j3[14],k3[31],k4[13],j4[13]); fulladder fa171(k3[16],j3[15],j3[31],k4[14],j4[14]); fulladder fa172(k3[17],j3[16],k3[32],k4[15],j4[15]); fulladder fa173(k3[18],j3[17],j3[32],k4[16],j4[16]); fulladder fa174(k3[19],j3[18],j2[41],k4[17],j4[17]); fulladder fa175(k3[20],j3[19],j1[22],k4[18],j4[18]); fulladder fa176(k3[22],j3[21],j1[48],k4[19],j4[19]); fulladder fa177(j3[22],k2[25],j2[24],k4[20],j4[20]); fulladder fa178(j3[26],j1[67],j1[73],k4[21],j4[21]); fulladder fa179(j3[28],j1[69],j1[75],k4[22],j4[22]); halfadder ha5(k4[1],j4[0],k5[0],j5[0]); fulladder fa180(k3[2],j1[28],j4[1],k5[1],j5[1]); fulladder fa181(k4[5],j4[4],j2[29],k5[2],j5[2]); fulladder fa182(k4[6],j4[5],k2[43],k5[3],j5[3]); fulladder fa183(k4[7],j4[6],j1[65],k5[4],j5[4]); fulladder fa184(k4[8],j4[7],j3[25],k5[5],j5[5]); fulladder fa185(k4[9],j4[8],k4[21],k5[6],j5[6]); fulladder fa186(k4[10],j4[9],j4[21],k5[7],j5[7]); fulladder fa187(k4[11],j4[10],k4[22],k5[8],j5[8]); fulladder fa188(k4[12],j4[11],j4[22],k5[9],j5[9]); fulladder fa189(k4[13],j4[12],j3[30],k5[10],j5[10]); fulladder fa190(k4[14],j4[13],j2[38],k5[11],j5[11]); fulladder fa191(k4[16],j4[15],j2[40],k5[12],j5[12]); fulladder fa192(k4[17],j4[16],j1[63],k5[13],j5[13]); fulladder fa193(k4[18],j4[17],j1[46],k5[14],j5[14]); fulladder fa194(k3[21],j3[20],j4[18],k5[15],j5[15]); halfadder ha6(j5[0],k5[1],k6[0],j6[0]); fulladder fa195(j5[1],k3[3],j3[2],k6[1],j6[1]); fulladder fa196(k5[7],j5[6],j3[27],k6[2],j6[2]); fulladder fa197(k5[9],j5[8],j3[29],k6[3],j6[3]); fulladder fa198(k5[10],j5[9],j1[71],k6[4],j6[4]); fulladder fa199(k5[11],j5[10],k2[50],k6[5],j6[5]); fulladder fa200(k4[15],j4[14],j5[11],k6[6],j6[6]); halfadder ha7(k6[1],j6[0],k7[0],j7[0]); fulladder fa201(j6[1],k4[2],j1[30],k7[1],j7[1]); fulladder fa202(k5[8],j5[7],j6[2],k7[2],j7[2]); halfadder ha8(k7[1],j7[0],k8[0],j8[0]); halfadder ha9(k4[3],j4[2],k8[1],j8[1]); halfadder ha10(k4[4],j4[3],k8[2],j8[2]); halfadder ha11(k5[2],j1[51],k8[3],j8[3]); halfadder ha12(k5[3],j5[2],k8[4],j8[4]); halfadder ha13(k5[4],j5[3],k8[5],j8[5]); halfadder ha14(k5[5],j5[4],k8[6],j8[6]); halfadder ha15(k5[6],j5[5],k8[7],j8[7]); halfadder ha16(k6[2],j1[74],k8[8],j8[8]); fulladder fa203(k8[1],j8[0],j7[1],k9[0],j9[0]); fulladder fa204(k8[2],j8[1],j9[0],k9[1],j9[1]); fulladder fa205(k8[3],j8[2],j9[1],k9[2],j9[2]); fulladder fa206(k8[4],j8[3],j9[2],k9[3],j9[3]); fulladder fa207(k8[5],j8[4],j9[3],k9[4],j9[4]);
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服