四位二进制除法器说明书(副本).doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
目 录 一 、设计目的………………………………………………………………… 1 二 、设计要求………………………………………………………………… 1 三 、设计内容………………………………………………………………… 1 3.1、除法的实现………………………………………………………… 1 3.2、设计框图…………………………………………………………… 1 3.3、功能说明…………………………………………………………… 1 3.4、VHDL程序源代码………………………………………………… 2 3.5、VHDL程序说明…………………………………………………… 3 四 、原理图和印刷板图……………………………………………………… 4 PCB板图………………………………………………………… 4 Protel 原理图…………………………………………………… 5 五、设计结论…………………………………………………………………… 6 六、设计心得体会……………………………………………………………… 6 七、主要参考文献……………………………………………………………… 7 设计目的 掌握电子电路的一般设计方法和设计流程; 学习使用PROTEL软件绘制电路原理图及印刷板图。 设计要求 设计一个四位二进制除法器,具体要求如下: 1. 用键盘输入两个四位二进制数,并用数码管显示输入数。 2.按除法键即显示相除结果。 3. 除数为零时,数码管黑屏,不显示任何内容。 设计内容 设计过程 要想实现四位二进制除法器,必须首先实现除法的功能。 除法实现的方案可以用VHDL语言实现。 整个四位二进制除法器包括:输入电路,判断电路,除法电路,译码电路和显示电路。这些电路可以分别进行设计。 设计框图 3.各个模块的功能说明 整个四位二进制除法器的实现可以分为以下5个部分: 输入电路:输入两个4位2进制数A和B。它是通过连着高电平的8个开关来实现的。 判断电路:判断B是否为0。它是通过1个5输入同或门实现的。如果 B为0,输出端输出高电平,使能端除法器不工作,显示器黑屏。 除法电路:由VHDL语言实现的。它实现两个4位2进制数相除,并输出商y和余数r. 译码电路:由VHDL语言实现的。它实现两个4位2进制数相除,并输出商y和余数r. 显示电路:将译码器译成的数用数码管显示出来。 4.VHDL程序源代码 除法源代码 Library ieee; Use ieee.std_logic_1164.all; Entity divider is Generic (n: integer :=3); Port( a, b : in integer range 0 to 15; y:out std_logic_vector ( 3 downto 0); rest:out integer range 0 to 15; err:out std_logic); End divider ; Architecture rtl of divider is Begin Process (a,b) Variable temp1:integer range 0 to 15; Variable temp2:integer range 0 to 15; Begin temp1:=a; temp2:=b; if(b=0)then err =’1’; Else err=’0’; End if; For I in n downto 0 loop If (temp1=temp2*2**i) then y(i) =‘1’; temp1:=temp1-temp2*2**i; Else y(i)= ‘0’; End if; End loop; Rest =temp1; End process; End rtl; 5.VHDL程序说明 假设要计算Y=A/B,其中 A 和 B 有相同的位数4位。假设A=“1011”,B=“0011”。我们希望得到的运算结果是Y=“0011”和余数“0010”。 分析商的计算方法。首先对A和B进行比较。如果前者大于后者,则Y为‘1’,然后将A减去B;否则Y=‘0‘;再进入下一行。当n+1次迭代之后,计算完成,剩下的A就是余数。 让B乘以2的n次幂相当于将B向左移n位,所以新的B矢量比原矢量长n位。如果A比新的B更大,则Y(n)取值为1,然后将A减去B(移位后的);否则Y=0;此后进行新的迭代。 将B乘以2的n-1次幂相当于将B向左移n-1位,,或将刚才计算时用到的值想右移1位。然后再将它和A比较,重复前面的步

文档评论(0)

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

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

1亿VIP精品文档

相关文档