高速硬件除法器设计.pdf

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
. 高速硬件除法器设计 一、实验目的 :了解和掌握硬件除法器的结构和工作原理,分析除法器的仿真波形和 工作时序。 二、实验原理: 除法器算法的思路和手写除法基本一致。假设除法 a/b,a 、b 是输入的 两个位数都为 n 的二进制数。如果位数小于 n ,可以在位数较少的数的前面添加 0 来满足这 种位数要求。 商和余数是 n 位标准矢量类型的二进制数。 在过程中, 算法也是按顺序执行的, 但是综合后系统将会由组合逻辑电路组成, 进程中的每一步都和系统构建的不同级别的逻辑 电路相对应。 首先,从输入信号中创建变量 A 和 B,A=a,B=b,其中 a,b 都是 n 位二进制数。如果 A 大于等于 B,则商为 1 ,余数为 A-B ,否则商为 0,余数为 A。这是算法开始的第一次循环, 如果小于 B,结果商位是 0,A 的值不做变化并保留其值。否则,结果商位为 1,则把相减后 的余数插入变量 A 中。不管比较结果如何,变量 A 都要右移一位(左边添加 0),接着开始 下一次循环。循环 n 次之后, n 位结果赋给商,最后 A 剩余的值就是余数。 三、实验任务: 用 VerilogHDL 设计除法器。除法器的参考程序如下: module DIV16(input CLK,input[15:0] A,B,output reg[15:0] QU,RE); reg[15:0] AT,BT,P,Q; integer i; always @(posedge CLK) begin AT=A; BT=B; P=16H0000;Q=16H0000; for(i=15;i=0;i=i-1) begin P={P[14:0],AT[15]}; AT={AT[14:0],1B0}; P=P-BT; if (P[15]==1) begin Q[i]=0; P=P+BT; end else Q[i]=1; end end always @(*) begin QU=Q;RE=P; end endmodule 其中 A 和 B 是除法器输入端的两个 16 位数据,它们分别为被除数和除数,输出结果分成两 部分: QU是商, RE是余数。给出仿真时序波形图。 四、实验步骤: 实验步骤大致分为三大步。 (一)、建立工作库文件和编辑设计文文件 任何一项设计都是一项 Project (工程),我们一般把一个工程下的所有文件放在一个文件 夹内, 这样方便我们整理, 利用和提取不同工程下的文件, 而此文件夹将被 EDA软件默认为 . . Work Library (工作库),所以第一步先建立一个新的文件夹。 (1)新建文件夹:在 F 盘建立并保存工程,文件夹取名 homework。 (2 )输入源程序:打开 Quartus II ,选择菜单 File--New--Design Files--VerilogHDL File--OK ( 如图所示 ) 在打开的空白处工作框处输入任务要求中所列出的代码。 (3 )保存文件:选择 File--Save as, 选择保存路径,即刚才新建的文件夹 homework, 文 件名应与实体名保持一致 , 即 DIV16,点击保存后会跳出“ Do you want to create a new proj

文档评论(0)

***** + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8016031115000003

1亿VIP精品文档

相关文档