名称:位宽可配的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
阅读全文
398