名称:位宽可配的N位乘法器设计VHDL代码Quartus仿真
软件:Quartus
语言:VHDL
代码功能:
位宽可配的N位乘法器设计
1、设计乘法器,乘法器位宽可以通过参数配置
2、乘法器使用移位相加的算法
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 乘法器原理
参见链接:https://blog.csdn.net/weixin_39979167/article/details/110550186
2. 工程文件
3. 程序文件
4. 程序编译
5. 仿真图
仿真设置
仿真图
使用二进制显示
部分代码展示:
LIBRARY?ieee; ???USE?ieee.std_logic_1164.all; ???USE?ieee.std_logic_unsigned.all; ENTITY?Multiplier_nbit?IS ???GENERIC?( ??????N?????????????:?INTEGER?:=?4--4位乘法器 ???); ???PORT?( ??????mult_A????????:?IN?STD_LOGIC_VECTOR(N?-?1?DOWNTO?0);--mult_A是乘数,mult_B是被乘数 ??????mult_B????????:?IN?STD_LOGIC_VECTOR(N?-?1?DOWNTO?0);--mult_A是乘数,mult_B是被乘数 ??????clk???????????:?IN?STD_LOGIC;--时钟 ??????start?????????:?IN?STD_LOGIC;--start高电平时输入乘数 ??????Done??????????:?OUT?STD_LOGIC;--乘积计算完成 ??????mult_product??:?OUT?STD_LOGIC_VECTOR(2?*?N?-?1?DOWNTO?0)--乘积 ???); END?Multiplier_nbit; ARCHITECTURE?behave?OF?Multiplier_nbit?IS ??? ???SIGNAL?mult_product_buf?:?STD_LOGIC_VECTOR(2?*?N?-?1?DOWNTO?0)?:=?"00000000"; ???TYPE?State_type?IS?(INIT,?ADD,?SHIFT);??--?定义状态 ???SIGNAL?state?:?State_Type:=INIT;????--?创建信号--初始状态为INIT ???SIGNAL?mult_B_buf???????:?STD_LOGIC_VECTOR(2?*?N?-?1?DOWNTO?0)?:=?"00000000";?--临时变量 ???SIGNAL?Count????????????:?INTEGER?:=?0; BEGIN
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=997
阅读全文
287