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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 10332|回复: 8

[求助] VHDL FUNCTION函数求助

[复制链接]
发表于 2011-2-22 11:24:14 | 显示全部楼层 |阅读模式

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

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

x
function Delta(Arg : signed; Cnt : natural) return signed is
  variable tmp : signed(Arg'range);
  constant lo : integer := Arg'high -cnt +1;
begin
  for n in Arg'high downto lo loop
   tmp(n) := Arg(Arg'high);
  end loop;
  for n in Arg'high -cnt downto 0 loop
   tmp(n) := Arg(n +cnt);
  end loop;
  return tmp;
end function Delta;


请问 variable tmp : signed(Arg'range);中Arg'range是什么意思呢?该怎么理解
constant lo : integer := Arg'high -cnt +1;和tmp(n) := Arg(Arg'high);中Arg'high是什么意思呢? 该怎么理解
 楼主| 发表于 2011-2-22 12:03:36 | 显示全部楼层
望能够通过函数参数说明哈,谢谢
发表于 2011-2-22 13:17:30 | 显示全部楼层
VHDL的书上应该都有介绍这一类型的吧?就是数据的一些属性而已。'range就是该数据的范围,'high就是该数据的最高位。
 楼主| 发表于 2011-2-22 15:03:50 | 显示全部楼层
回复 3# gaurson


    不知能否说详细一点,把参数写进去,然后把每句语言说明一下,谢谢
 楼主| 发表于 2011-2-22 15:25:44 | 显示全部楼层
假设  Arg : in signed(15 downto 0);Cnt <=4;且Arg<=16'b1111_0100_1101_0110
那么
    variable tmp : signed(Arg'range);与variable tmp : signed (15 downto 0);等价
    constant lo : integer := Arg'high -cnt +1;与constant lo : integer := 15 -4 +1;等价
    tmp<=16'b1111_1111_0100_1101
这样理解不知对没?谢谢
发表于 2011-2-23 13:13:28 | 显示全部楼层
应该是这样,不过没怎么用过,脑海中只有概念而已。
发表于 2012-7-31 10:54:49 | 显示全部楼层
-- function Delta is actually an arithmatic shift right
-- This strange construction is needed for compatibility with Xilinx WebPack
--这个函数只是实现了简单的算术右移,右移后左边补上符号位
--Arg'high相当于Arg最高位所在位数,例如Arg = 0101 则Arg'high = 3,因为Arg最高位在第三位上。
function Delta(Arg : signed; Cnt : natural) return signed is
  variable tmp : signed(Arg'range);
  constant lo : integer := Arg'high -cnt +1;
begin
  for n in Arg'high downto lo loop
   tmp(n) := Arg(Arg'high);        --高位补上符号位
  end loop;
  for n in Arg'high -cnt downto 0 loop
   tmp(n) := Arg(n +cnt);          --右移cnt位,所以要截断右边cnt位
  end loop;
  return tmp;
end function Delta;
在一个博客上看到的这个函数的解释,是右移(左边符号位扩展),嘿嘿~
http://blog.163.com/jinyun_xie/blog/static/1283908112012576194574/
发表于 2014-3-22 06:45:46 | 显示全部楼层
頂一下!感謝大大無私分享
发表于 2014-8-16 22:23:53 | 显示全部楼层
应该是这样,不过没怎么用过,脑海中只有概念而已。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-3-29 22:35 , Processed in 0.031217 second(s), 8 queries , Gzip On, Redis On.

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