VHDL 八位乘法器 一. 设计思路 纯组合逻辑构成的乘法器虽然工作速度比较快,但过于占用硬件资源,难以实现宽位乘法器,基于PLD 器件外接ROM 九九表的乘法器则无法构成单片系统,也不实用。这里介绍由八位加法器构成的以时序逻辑方式设计的八位乘法器,具有一定的实用价值,而且由 FPGA 构成实验系统后,可以很容易的用ASIC 大型集成芯片来完成,性价比高,可操作性强。其乘法原理是:乘法通过逐项移位相加原理来实现,从被乘数的最低位开始,若为 1,则乘数左移后与上一次的和相加;若为 0,左移后以全零相加,直至被乘数的最高位。 二.方案设计与论证 此设计是由八位加法器构成的以时序逻辑方式设计的八位乘法器,它的核心器件是八加法器,所以关键是设计好八位加法器。 方案:由两个四位加法器组合八位加法器,其中四位加法器是四位二进制并行加法器,它的原理简单,资源利用率和进位速度方面都比较好。综合各方面的考虑,决定采用方案二。 三.工作原理 ARICTL 是乘法运算控制电路,它的START 信号上的上跳沿与高电平有 2 个功 能 ,即 16 位寄 存 器清 零和被乘数 A[7...0]]向 移位寄 存 器SREG8B 加载 ;它的低电平则作为乘法使 能 信号,乘法时钟 信号从 ARICTL 的CLK 输 入 。当 被乘数被加载 于8 位右 移寄 存 器SREG8B 后,随 着 每 一时钟 节 拍 ,最低位在 前 ,由低位至高位逐位移出 。当 为 1 时,一位乘法器ANDARITH 打 开,8 位乘数 B[7..0]在 同 一节 拍进入 8 位加法器,与上一次锁 存 在16 位锁 存 器REG16B 中的高 8 位进行相加,其和在 下 一时钟 节 拍 的上升 沿被锁 进此锁 存 器。而当 被乘数的移出 位为 0 时,一位乘法器全零输 出 。如 此往 复 ,直至 8 个时钟 脉 冲 后,由 ARICTL 的控制,乘法运算过程 自 动 中止 ,ARIEND 输 出 高电平,乘法结 束 。此时 REG16B 的输 出 即 为最后的乘积 。 四.工作原理框 图 cina[7..0]b[7..0]s[7..0]cou tadder8binst1abindin[7..0]dou t[7..0]andarithinst2clkstartclkou trstallariendarictlinst3clkclrd[8..0]q[15..0]reg16binst5clkloaddin[7..0]qbsreg8binst6dou t[15..0]OUTPUTVCCB[7..0]INPUTVCCA[7..0]INPUTdou t5[15..0]OUTPUT 五.程序清单 1.library ieee; ----四位二进制并行加法器 use ieee.std_logic_1164.all; use i...