4932|10

14

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

????。。。VHDL语言。。。不懂 拜托帮下忙 [复制链接]

那位大哥帮忙解释下这段代码。。。。非常感谢

LIBRARY ieee;

USE ieee.std_logic_1164.all;

USE ieee.std_logic_arith.all;

ENTITY mult19 is

PORT

( clk :  IN STD_LOGIC;

  Din :  IN SIGNED (9 DOWNTO 0);

 Dout :  OUT SIGNED (13 DOWNTO 0));

END mult19;

ARCHITECTURE a OF mult19 IS

SIGNAL s1 : SIGNED (13 DOWNTO 0);

SIGNAL s2 : SIGNED (10 DOWNTO 0);

SIGNAL s3 : SIGNED (13 DOWNTO 0);

 

BEGIN

P1:process(Din)

BEGIN

s1(13 DOWNTO 4)<=Din;

s1( 3 DOWNTO 0)<="0000";

s2(10 DOWNTO 1)<=Din;

s2(0)<='0';

if Din(9)='0' then

s3<=('0'&s1(13 downto 1))+("0000"&s2(10 DOWNTO 1))+("00000"&Din(9 DOWNTO 1));

 

else

s3<=('1'&s1(13 downto 1))+("1111"&s2(10 DOWNTO 1))+("11111"&Din(9 DOWNTO 1));

 

end if;

end process;

P2: PROCESS(clk)

BEGIN

if clk'event and clk='1' then

Dout<=s3;

end if;

END PROCESS;

END a;

 

那位大哥帮我解释下着段代码   感激不尽

[ 本帖最后由 doumaggie 于 2010-6-15 10:50 编辑 ]

最新回复

猫猫 问了下技术,似乎真是个难题啊 大家碰到比较好的解决办法 或者 比较好地处理了这个问题的坛子 请给我 我们再随时学习 改进  详情 回复 发表于 2010-6-18 11:31
点赞 关注
 

回复
举报

14

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
:( 。。。没有人理
 
 

回复

3138

帖子

0

TA的资源

裸片初长成(初级)

板凳
 

先别抱怨没人理,LZ的书写格式太可怕了!

 程序要让别人甚至自己易看懂,一定要注意正确严谨的书写习惯,这不是什么难事,非不能也,是不为也。

 现把代码整理如下:


LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;

ENTITY mult19 is
   PORT (
      clk :  IN STD_LOGIC;
      Din :  IN SIGNED (9 downto 0);
      Dout :  OUT SIGNED (13 downto 0)
   );
END mult19;


ARCHITECTURE a OF mult19 IS

   SIGNAL s1 : SIGNED (13 downto 0);
   SIGNAL s2 : SIGNED (10 downto 0);
   SIGNAL s3 : SIGNED (13 downto 0);

BEGIN

   P1:process(Din)
   BEGIN
      s1(13 downto 4) <= Din;
      s1( 3 downto 0) <= "0000";
      s2(10 downto 1) <= Din;
      s2(0) <= '0';

      if (Din(9) = '0') then
         s3 <= ('0' & s1(13 downto 1)) +
               ("0000" & s2(10 downto 1)) +
               ("00000" & Din(9 downto 1));
      else
         s3 <= ('1' & s1(13 downto 1)) +
               ("1111" & s2(10 downto 1)) +
               ("11111" & Din(9 downto 1));
      end if;
   end process;

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

END a;
 
 
 

回复

3138

帖子

0

TA的资源

裸片初长成(初级)

4
 
 俺大概是有点错怪楼主了,似乎坛子就这德行,会莫名其妙地把空格吃掉。

 s1=Din×16,s2=Din×2,
 s3=(s1/2) + (s2/2) + (Din/2)
  =(Din×8) + (Din×1) + (Din/2)
  =Din×9.5

 如果没看错的话,就是Dout=Din×9.5,延迟一个时钟后输出。Din是带符号数,其中最高位Din(9)是符号位。
 
 
 

回复

14

帖子

0

TA的资源

一粒金砂(初级)

5
 
O(∩_∩)O谢谢帮忙  我不太明白的是算法那部分
 
 
 

回复

3138

帖子

0

TA的资源

裸片初长成(初级)

6
 
比如这两句:
 s1(13 downto 4) <= Din;
 s1( 3 downto 0) <= "0000";
意味着把Din(9..0)左移4位赋给s1(13..0),也就是做×16运算,同理可知s2是Din的×2运算。

算s3是加法不必赘述,高位补'0'或'1'是为了凑成相同字长。

较难理解的大概是正数时高位补'0',负数时高位补'1'的运算了,复习一下最初学电脑时二进制是怎么算的,就明白了。
 
 
 

回复

2万

帖子

71

TA的资源

管理员

7
 
原帖由 仙猫 于 2010-6-15 15:14 发表  俺大概是有点错怪楼主了,似乎坛子就这德行,会莫名其妙地把空格吃掉。  s1=Din×16,s2=Din×2,  s3=(s1/2) + (s2/2) + (Din/2)   =(Din×8) + (Din×1) + (Din/2)   =Din×9.5  如果没看错 ...


这个端午节后我们看看能否改进下
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 
 

回复

14

帖子

0

TA的资源

一粒金砂(初级)

8
 
灰常感谢。。。 。。。大致懂了
 
 
 

回复

3138

帖子

0

TA的资源

裸片初长成(初级)

9
 

原帖由 soso 于 2010-6-15 22:30 发表 这个端午节后我们看看能否改进下

 随便一句牢骚话又让嗖嗖费心了了,其实这个毛病不光是eeworld,好多坛子都有,所以转贴过的程序往往被改得乱78糟,格式惨不忍睹。原因是HTML语言不把空格的ASCII码(0x20)当空格,而要写成“& nbsp;”才肯认,这就给处理增添了麻烦。

 
 
 

回复

2万

帖子

71

TA的资源

管理员

10
 

回复 9楼 仙猫 的帖子

哦 了解了 嘿嘿 我问问技术有没改进的办法  嘿嘿
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 
 

回复

2万

帖子

71

TA的资源

管理员

11
 

回复 9楼 仙猫 的帖子

猫猫 问了下技术,似乎真是个难题啊

大家碰到比较好的解决办法 或者 比较好地处理了这个问题的坛子 请给我 我们再随时学习 改进
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表