集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 901|回复: 0

求大神 关于 VHDL 乘法

[复制链接]
guishenling 发表于 2013-5-11 02:42:45 | 显示全部楼层 |阅读模式
这是一个数乘以31的程序的源代码:
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;
ENTITY mult31 is
PORT
( clk :  IN STD_LOGIC;
  Din :  IN SIGNED (10 DOWNTO 0);
Dout :  OUT SIGNED (15 DOWNTO 0));
END mult31;
ARCHITECTURE a OF mult31 IS
SIGNAL s1 : SIGNED (15         DOWNTO 0);
SIGNAL s2 : SIGNED (10 DOWNTO 0);
SIGNAL s3 : SIGNED (15 DOWNTO 0);

BEGIN
P1:process(Din,s1,s2,s3)
BEGIN
s1<=DIN&"00000";
s2<=din;
if Din(10)='0' then
s3<=('0'&s1(14 downto 0))-("00000"&s2(10 DOWNTO 0));
else
s3<=('1'&s1(14 downto 0))-("11111"&s2(10 downto 0));

end if;
end process;
P2: PROCESS(clk,s3)
BEGIN
if clk'event and clk='1' then
Dout<=s3;
end if;
END PROCESS;
END a;

程序为什么可以利用这个完成乘以31的过程的?求大神解释解释啊
s1<=DIN&"00000";
s2<=din;
if Din(10)='0' then
s3<=('0'&s1(14 downto 0))-("00000"&s2(10 DOWNTO 0));
else
s3<=('1'&s1(14 downto 0))-("11111"&s2(10 downto 0));
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-8-21 15:33 , Processed in 0.063527 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表