16位定点数原码一位乘法器的设计与实现课程设计报告.docx

上传人:b****6 文档编号:8834002 上传时间:2023-02-02 格式:DOCX 页数:10 大小:219.94KB
下载 相关 举报
16位定点数原码一位乘法器的设计与实现课程设计报告.docx_第1页
第1页 / 共10页
16位定点数原码一位乘法器的设计与实现课程设计报告.docx_第2页
第2页 / 共10页
16位定点数原码一位乘法器的设计与实现课程设计报告.docx_第3页
第3页 / 共10页
16位定点数原码一位乘法器的设计与实现课程设计报告.docx_第4页
第4页 / 共10页
16位定点数原码一位乘法器的设计与实现课程设计报告.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

16位定点数原码一位乘法器的设计与实现课程设计报告.docx

《16位定点数原码一位乘法器的设计与实现课程设计报告.docx》由会员分享,可在线阅读,更多相关《16位定点数原码一位乘法器的设计与实现课程设计报告.docx(10页珍藏版)》请在冰豆网上搜索。

16位定点数原码一位乘法器的设计与实现课程设计报告.docx

16位定点数原码一位乘法器的设计与实现课程设计报告

(此文档为word格式,下载后您可任意编辑修改!

计算机科学与工程学院

课程设计报告

题目全称:

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

课程名称:

计算机组成原理

指导老师:

谭浩职称:

序号

学生姓名

学号

班号

成绩

1

刘晓窗

6

2

李育桥

5

3

郭建准

4

李浩

5

李志飞

6

7

8

9

10

(注:

学生姓名填写按学生对该课程设计的贡献及工作量由高到底排列,分数按排名依次递减。

序号排位为“1”的学生成绩最高,排位为“10”的学生成绩最低。

指导老师评语:

 

签字:

摘要

VerilogHDL语言具有下述描述能力:

设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。

本实验用VerilogHDL语言设计了全加器实现的组合乘法器,通过功能仿真,验证了结果。

 

关键词:

乘法器,Verilog,组合逻辑,全加器

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本章小结

 

第二章课程设计的需求分析

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主要功能模块的实现

modulemulti16(x,y,clock,z);

input[15:

0]x,y;定义乘数

inputclock;定义时钟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;

assignz=reg_z;将寄存器z的内容赋给输出和z

always@(posedgeclock)时序逻辑语句块

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的每一位相与

pppp0(reg_x,reg_y[0],p0);

pppp1(reg_x,reg_y[1],p1);

pppp2(reg_x,reg_y[2],p2);

pppp3(reg_x,reg_y[3],p3);

pppp4(reg_x,reg_y[4],p4);

pppp5(reg_x,reg_y[5],p5);

pppp6(reg_x,reg_y[6],p6);

pppp7(reg_x,reg_y[7],p7);

pppp8(reg_x,reg_y[8],p8);

pppp9(reg_x,reg_y[9],p9);

pppp10(reg_x,reg_y[10],p10);

pppp11(reg_x,reg_y[11],p11);

pppp12(reg_x,reg_y[12],p12);

pppp13(reg_x,reg_y[13],p13);

pppp14(reg_x,reg_y[14],p14);

pppp15(reg_x,reg_y[15],p15);

调用全加器与半加器,通过实例化求得和的每一位与每位的进位信号

sum,co);

inputa,b,cin;加数a,b,低位进位信号cin

outputsum,co;和sum,进位信号co

assignsum=a^b^cin;对sum求值

assignco=(a&b)|(a&cin)|(b&cin);对co求值

endmodule

定义半加器模块

modulesum=a^b;对sum求值

assignco=a&b;对co求值

endmodule

用来对被加数b的每一位是1,0进行判别及与加数a相与

modulepp(a,b,c);

input[16:

0]a;

inputb;

output[16:

0]c;

assignc[0]=a[0]&b;

assignc[1]=a[1]&b;

assignc[2]=a[2]&b;

assignc[3]=a[3]&b;

assignc[4]=a[4]&b;

assignc[5]=a[5]&b;

assignc[6]=a[6]&b;

assignc[7]=a[7]&b;

assignc[8]=a[8]&b;

assignc[9]=a[9]&b;

assignc[10]=a[10]&b;

assignc[11]=a[11]&b;

assignc[12]=a[12]&b;

assignc[13]=a[13]&b;

assignc[14]=a[14]&b;

assignc[15]=a[15]&b;

endmodule

4.3本章小结

第五章测试及成果展示

5.1测试环境

5.2测试用例和结果

一下截图为3*5和3*7的结果截图:

Copyright(c)Xilinx,Inc.

AllRightReserved.

________

\

___\Vendor:

Xilinx

\\\Version:

7.1i

\\Application:

ISEFoundation

Filename:

tett.tfw

___\Timestamp:

WedDec1720:

41:

282014

\\\

\___\\___\

Command:

DesignName:

tett

Device:

Xilinx

`timescale1ns1ps

moduletett;

reg[15:

0]x=16'b0011;

reg[15:

0]y=16'b0101;

regclock=1'b0;

wire[31:

0]z;

parameterPERIOD=200;

parameterrealDUTY_CYCLE=0.5;

parameterOFFSET=0;

initialClockprocessforclock

begin

#OFFSET;

forever

begin

clock=1'b0;

#(PERIOD-(PERIOD*DUTY_CYCLE))clock=1'b1;

#(PERIOD*DUTY_CYCLE);

end

end

multi16UUT(

.x(x),

.y(y),

.clock(clock),

.z(z));

integerTX_FILE=0;

integerTX_ERROR=0;

initialbeginOpentheresultsfile...

TX_FILE=$fopen("results.txt");

#1200Finaltime:

1200ns

if(TX_ERROR==0)begin

$display("Noerrorsorwarnings.");

$fdisplay(TX_FILE,"Noerrorsorwarnings.");

endelsebegin

$display("%derrorsfoundinsimulation.",TX_ERROR);

$fdisplay(TX_FILE,"%derrorsfoundinsimulation.",TX_ERROR);

end

$fclose(TX_FILE);

$stop;

end

initialbegin

-CurrentTime:

285ns

#285;

y=16'b0111;

-

end

taskCHECK_z;

input[31:

0]NEXT_z;

#0begin

if(NEXT_z!

==z)begin

$display("Errorattime=%dnsz=%b,expected=%b",$time,z,NEXT_z);

$fdisplay(TX_FILE,"Errorattime=%dnsz=%b,expected=%b",$time,z,NEXT_z);

$fflush(TX_FILE);

TX_ERROR=TX_ERROR+1;

end

end

endtask

endmodule

5.3成果展示

5.4本章小结

第六章总结与展望

参考文献

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机硬件及网络

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1