xilinx FPGA 乘法器ip核(multipler)的使用(VHDL&Vivado)

这篇具有很好参考价值的文章主要介绍了xilinx FPGA 乘法器ip核(multipler)的使用(VHDL&Vivado)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、创建除法ip核

xilinx FPGA 乘法器ip核(multipler)的使用(VHDL&Vivado)

 可以选择两个变量数相乘,也可以选择一个变量输入数据和一个常数相乘

可以选择mult(dsp资源)或者lut(fpga资源)

可以选择速度优先或者面积优先

xilinx FPGA 乘法器ip核(multipler)的使用(VHDL&Vivado)

可以自己选择输出位宽

还有时钟使能和复位功能

 二、编写VHDL程序:声明和例化乘法器ip核

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity yunsuan is
PORT (
    CLK : IN STD_LOGIC;
    Nbkg : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
    Tobs : IN STD_LOGIC_VECTOR(2 DOWNTO 0);
    CE : IN STD_LOGIC
  );
end yunsuan;

architecture Behavioral of yunsuan is

COMPONENT mult_gen_0
  PORT (
    CLK : IN STD_LOGIC;
    A : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
    B : IN STD_LOGIC_VECTOR(2 DOWNTO 0);
    CE : IN STD_LOGIC;
    P : OUT STD_LOGIC_VECTOR(23 DOWNTO 0)
  );
END COMPONENT;

signal Nbkg_Tobs :  STD_LOGIC_VECTOR(23 DOWNTO 0);

begin

chengf0 : mult_gen_0
  PORT MAP (
    CLK => CLK,
    A => Nbkg,
    B => Tobs,
    CE => CE,
    P => Nbkg_Tobs
  );

end Behavioral;

三、编写仿真程序

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity yunsuan_tb is

end yunsuan_tb;

architecture Behavioral of yunsuan_tb is
COMPONENT yunsuan
PORT (
    CLK : IN STD_LOGIC;
    Nbkg : IN STD_LOGIC_VECTOR(15 DOWNTO 0);
    Tobs : IN STD_LOGIC_VECTOR(2 DOWNTO 0);
    CE : IN STD_LOGIC
  );
  END COMPONENT;
    
 --Inputs
   signal clk : std_logic := '0';
   signal  Nbkg :  STD_LOGIC_VECTOR(15 DOWNTO 0);
   signal Tobs :  STD_LOGIC_VECTOR(2 DOWNTO 0);
   signal CE :  STD_LOGIC;

 	--Outputs

   -- Clock period definitions
   constant clk_period : time := 10 ns;
   
begin

 
	-- Instantiate the Unit Under Test (UUT)
   uut: yunsuan PORT MAP (
          clk => clk,
          Nbkg => Nbkg,
          Tobs => Tobs,
          CE => CE
        );

   -- Clock process definitions
   clk_process :process
   begin
		clk <= '0';
		wait for clk_period/2;
		clk <= '1';
		wait for clk_period/2;
   end process;
 

   -- Stimulus process
   stim_proc: process
   begin		
      -- hold reset state for 100 ns.
     CE <= '0';
     wait for 25ns; 
     CE <= '1';
     Nbkg <= X"1008";
     Tobs <= "100";
     wait for clk_period*1; 
     Nbkg <= X"1018";
     Tobs <= "100";
     wait for clk_period*1; 
     Nbkg <= X"1008";
     Tobs <= "110";
     wait for clk_period*1; 
     Nbkg <= X"1018";
     Tobs <= "101";
     wait for clk_period*1; 
     CE <= '0';
     Nbkg <= X"1008";
     Tobs <= "110";
     wait for clk_period*1; 
     CE <= '1';
     Nbkg <= X"FFFF";
     Tobs <= "100";
     wait for clk_period*1; 
      wait for clk_period*10;

      -- insert stimulus here 

      wait;
   end process;
   
end Behavioral;

四、RTL图:

xilinx FPGA 乘法器ip核(multipler)的使用(VHDL&Vivado)

 五、仿真结果::可以看到vivado的乘法器ip核和ISE的一样,当ce有效时,乘法器的乘积会在下一个时钟得出。

xilinx FPGA 乘法器ip核(multipler)的使用(VHDL&Vivado)

 文章来源地址https://www.toymoban.com/news/detail-515483.html

xilinx FPGA 乘法器ip核(multipler)的使用(VHDL&Vivado)

 

到了这里,关于xilinx FPGA 乘法器ip核(multipler)的使用(VHDL&Vivado)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • m基于FPGA的半带滤波器verilog设计,对比普通结构以及乘法器复用结构

    目录 1.算法描述 2.仿真效果预览 3.verilog核心程序 4.完整FPGA         HBF模块由半带滤波器(HBF)和抽取模块组成。该模块的任务是实现2倍抽取进一步降低信号采样速率。由于HBF的冲激响应h(k)除零点外其余偶数点均为零,所以用HBF实现2倍抽取可以节省一半的运算量,对增强软

    2023年04月08日
    浏览(80)
  • 数字IC经典电路(2)——经典乘法器的实现(乘法器简介及Verilog实现)

    数字电路中乘法器是一种常见的电子元件,其基本含义是将两个数字相乘,并输出其乘积。与加法器不同,乘法器可以实现更复杂的运算,因此在数字电路系统中有着广泛的应用。 乘法器的主要用途是在数字信号处理、计算机科学以及其他数字电路应用中进行精确的数字乘法

    2024年02月06日
    浏览(67)
  • Verilog | 基4 booth乘法器

    上接乘法器介绍 跟基2的算法一样,假设A和B是乘数和被乘数,且有: A = ( a 2 n + 1 a 2 n ) a 2 n − 1 a 2 n − 2 … a 1 a 0 ( a − 1 ) B = b 2 n − 1 b 2 n − 2 … b 1 b 0 begin{align}A=(a_{2n+1}a_{2n})a_{2n−1}a_{2n−2}…a_1a_0(a_{−1})\\\\ B=b_{2n−1}b_{2n−2}…b_1b_0end{align} A = B = ​ ( a 2 n + 1 ​ a 2 n ​ )

    2024年02月10日
    浏览(41)
  • verilog编程之乘法器的实现

    知识储备 首先来回顾一下乘法是如何在计算机中实现的。 假设现在有两个32位带符号定点整数x和y,我们现在要让x和y相乘,然后把乘积存放在z中,大家知道,两个32位数相乘,结果不会超过64位,因此z的长度应该为64位。 z = x * y中,x是被乘数,在Verilog代码中 multiplicand表示

    2024年04月12日
    浏览(38)
  • 定点乘法器----基4booth算法

    本篇文章将介绍如何使用 基4 booth算法( 赛题中介绍了 )来生成部分积,在开始之前,简要介绍一下定点乘法器的计算流程: 对 乘数 进行booth编码 — 利用得到的 编码值 和 被乘数 生成 部分积 ---- 对 部分积 进行压缩求和。 基4 booth(后面简称为 booth2 )算法用来完成前面的两步。

    2024年02月06日
    浏览(62)
  • xilinx FPGA ROM IP核的使用(VHDL&ISE)

    目录 1.新建工程之后 建一个ip核文件: 2.编写顶层文件或者激励文件:(一定一定点击下面这个例化模板 去对ip核进行例化) 3.查看rtl图:   4编写测试文件: 5.仿真图: 工程下载链接:https://download.csdn.net/download/qq_43811597/86488775       根据所存数据的最大值来设置数据位宽

    2024年02月08日
    浏览(48)
  • xilinx FPGA FIFO IP核的使用(VHDL&ISE)

    1.新建工程和ip核文件 下图显示了一个典型的写操作。拉高WR_EN,导致在WR_CLK的下一个上升边缘发生写入操作。因为FIFO未满,所以WR_ACK输出1,确认成功的写入操作。当只有一个附加的单词可以写入FIFO时,FIFO会拉高ALMOST_FULL标志。当ALMOST_FULL拉高之后,一个附加的写入将导致

    2024年02月03日
    浏览(54)
  • Logism · 原码一位乘法器 实验

    8位无符号的原码一位乘法器的实现 通过时钟驱动右移,模拟运算过程 实现脉冲控制,位移指定次数后要及时停止 结果输出给到乘积隧道         A.掌握寄存器、分离器、比较器等一系列新的逻辑元件使用方法         B.学习并运用计算机原码乘法原理,在硬件电路中

    2023年04月25日
    浏览(42)
  • 基2-booth乘法器原理及verilog代码

    对于一个n位的有符号二进制数B,首位是0则B可以表示为: 首位是1,B[n-2:0]是实际数字的补码,所以可以得到 。 可以得到合并的公式如下所示: 将公式展开: 除了n-1项外的每一项乘2之后再减去本身: 根据2^i重构公式: 为了统一形式,添加一项B[-1],初始值为0.注意这里的B

    2024年02月03日
    浏览(43)
  • 流水线乘法器的原理及verilog代码

    二进制数乘法的显著特点就是可以将乘法转换为移位,乘2就是左移一位,乘2^n就是左移n位。而一个二进制数又可以看成是由若干个2的i次方的和。 设被乘数和乘数分别为M、N,且都是32位的二进制数,乘积结果为64位 的向量CO则 。 所以乘法可以由移位电路和加法器完成。计算

    2024年02月10日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包