4位乘法器的设计汇.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4位乘法器的设计汇

PAGE3 / NUMPAGES3 设计思想: 确定该乘法器工作的基本原理是首先生成部分积,再将这些部分积相加得到乘积。设计的基本思想为:从被乘数的最低位开始移位,若移出位为1,则乘数左移后与上一次的和相加,若移出位为0,则乘数左移后以全0相加,循环上述操作,直至被乘数的最高位。主要是进行移位、相加两项操作的重复。 乘法器设计 根据乘法器工作原理可知,确定输入与输出。输入的两个乘数分别为din[4 .. 0]、din1 [4.. 0],另外clk、clr作为控制输入,dout[7..0]作为输出。 由分析可知乘法器原理框图包括右移寄存器(sregb)、8位寄存器(regb)、选通与门(andarith)、4位加法器(adder4)四部分。其中,sreg4b对被乘数进行右移移位,andarith对乘数与被乘数相乘过程中的部分积进行相与,adder4对右移寄存器的移位位数进行计数,regb对乘数和被乘数相乘之后的结果进行存储。下面分别对各部分元件进行设计,然后再由这些元件构成整个乘法器电路图。 设计一个右移寄存器(sregb) LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY sregb IS PORT ( clk : IN STD_LOGIC; load : IN STD_LOGIC; din : IN STD_LOGIC_VECTOR(3 downto 0); qb : OUT STD_LOGIC ); END sregb; ARCHITECTURE sregb_architecture OF sregb IS SIGNAL regb : STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN PROCESS (clk, load) BEGIN IF load = 1 THEN regb= din; ELSIF CLKEVENT AND CLK = 1 THEN regb(2 DOWNTO 0) = regb(3 DOWNTO 1); qb = regb(0); END IF; END PROCESS; END sregb_architecture; 设计一个选通与门(andarith) LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY andarith IS PORT ( qb: IN STD_LOGIC; din1 : IN STD_LOGIC_VECTOR(3 downto 0); dout1 : OUT STD_LOGIC_VECTOR(3 downto 0) ); END andarith; ARCHITECTURE andarith_architecture OF andarith IS BEGIN PROCESS(qb, din1) BEGIN FOR i IN 0 TO 3 LOOP DOUT1(i) = DIN1(i) AND qb; END LOOP; END PROCESS; END andarith_architecture; 设计一个计数器(adder4) LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; ENTITY adder4 IS PORT ( dout1 : IN STD_LOGIC_VECTOR(3 downto 0); dout : IN STD_LOGIC_VECTOR(7 downto 4); s : OUT STD_LOGIC_VECTOR(4 downto 0) ); END adder4; ARCHITECTURE adder4_architecture OF adder4 IS BEGIN s = (0 dout1) + (0 dout) ; END adder4_architecture; 设计一个8位寄存器(rega) LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY rega IS PORT ( clk : IN STD_LOGIC; load : IN STD_LOGIC; s : IN STD_LOGIC_VECTOR(3 downto 0); dout : OUT STD_LOGIC_VECTOR

文档评论(0)

jiupshaieuk12 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档