在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 24063|回复: 30

VHDL.Verilog实现有符号数乘法

[复制链接]
发表于 2007-1-30 21:55:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
VHDL.Verilog实现有符号数乘法

在数字信号处理(DSP)中,乘加是最基本的运算,以至于很多FPGA厂商以MAC的多少及运算速度做为器件的一个重要指标。下面就乘法实现进行讨论。
在DSP中,大多是有符合数的操作,这里给出有符号数乘法的VHDL和Verilog程序。
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_arith.ALL;
USE ieee.std_logic_signed.ALL;
USE ieee.std_logic_unsigned.ALL;

ENTITY signed_mult IS
        PORT (clk: IN STD_LOGIC;
                a:                 IN STD_LOGIC_VECTOR (7 DOWNTO 0);
                b:                 IN STD_LOGIC_VECTOR (7 DOWNTO 0);
                result:                 OUT STD_LOGIC_VECTOR (15 DOWNTO 0)
        );
END signed_mult;

ARCHITECTURE rtl OF signed_mult IS
        SIGNAL a_int, b_int:                                 SIGNED (7 downto 0);
        SIGNAL pdt_int:                                 SIGNED (15 downto 0);
BEGIN
result <= STD_LOGIC_VECTOR(pdt_int);
Process(clk)
Begin
If rising_edge(clk)  then
        
a_int <= SIGNED (a);
        b_int <= SIGNED (b);
        pdt_int <= a_int * b_int;
        end if;
end process
END rtl;
相应的Verilog程序:
module signed_mult (out, clk, a, b)
        output                 [15:0]        out;
        input                        clk;
        input         signed        [7:0]         a;
        input         signed        [7:0]         b;
        reg        signed        [7:0]         a_reg;
        reg        signed        [7:0]         b_reg;
        reg        signed        [15:0]        out;
        wire         signed        [15:0]        mult_out;
        assign mult_out = a_reg * b_reg;
        always@(posedge clk)
        begin
                a_reg <= a;
                b_reg <= b;
                out <= mult_out;
        end
对于无符号数,只需要将其中的signed换成unsigned即可。
发表于 2007-2-21 01:27:00 | 显示全部楼层
这个...难道可以综合,吗
发表于 2007-2-25 09:07:44 | 显示全部楼层
Verilog程序我看可以综合,没有问题
发表于 2007-2-27 10:21:36 | 显示全部楼层
verilog 2000开始支持了
发表于 2007-3-18 16:17:35 | 显示全部楼层
只不过是在库中有相应的模块而已,也算是IP吧。
发表于 2007-5-16 20:40:06 | 显示全部楼层
用VERLOG真的这么简单吗  而且在一个时钟内能完成乘法运算吗
发表于 2007-5-17 16:41:23 | 显示全部楼层
这个要有IP才行的吧
发表于 2007-5-19 08:10:18 | 显示全部楼层
试试先
发表于 2007-10-16 04:05:20 | 显示全部楼层
先试试看,不知道能不能综合.
发表于 2007-10-16 20:34:22 | 显示全部楼层
这样写也行么
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-6-30 08:02 , Processed in 0.023445 second(s), 9 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表