VHDL语言中,SXT是什么意思?格式如:RegB<=SXT(RegA,WIDTH) 这个SXT具体什么意思呢?求解答

如题... 如题 展开
 我来答
weiweimmc
推荐于2017-11-24 · TA获得超过182个赞
知道答主
回答量:10
采纳率:0%
帮助的人:14.1万
展开全部
sxt函数用来扩展一个信号的位宽。比方说你的RegA有五位(如10011),WIDTH=10,那么RegB<=SXT(RegA,WIDTH)执行完之后RegB的末五位就和RegA相同,高五位都是RegA最高位(也就是符号位)的值,即RegB=1111110011。
峥峥好
2011-03-18 · 超过31用户采纳过TA的回答
知道答主
回答量:114
采纳率:0%
帮助的人:0
展开全部
我记得是位扩展,一种是有符号扩展,一种是无符号扩展,具体记不清了,你可以查一查。 不太常用,可以用其他写法代替的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dandancook
2011-03-18 · 超过12用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:0
展开全部
SXT 是有符号扩展, EXT是无符号扩展。两个functions属于std_logic_arith package。
SXT的用法如下:
function SXT(ARG: STD_LOGIC_VECTOR; SIZE: INTEGER) return STD_LOGIC_VECTOR;
举个例子:
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_SIGNED.ALL;
。。。
data_out <= SXT(data_in, data_out'LENGTH);

但是这两个functions不包括在标准library. 这会引起程序兼容性的问题(因供应商和制造工艺的不同)。建议使用ieee中的RESIZEfunction,已达到相同的效果。但要注意符号位的处理。一下使一些例子,仅供参考:
data_out <= std_logic_vector (resize(signed(data_in), data_out'length));
data_out<=std_ulogic_vector (resize(unsigned(data_i n), data_out'length));
data_out<=std_ulogic_vector (resize( signed(data_in), data_out'length));
追问
能否再用一个具体数来举一个具体的实例,不胜感激。
追答
signal a : sfixed(3 downto -6);
...
s <= resize(a*a, 7, -6); -- resize using left and right bounds
s <= resize(a*a, s); -- resize using bounds of s

参考资料: The Designer's Guide to VHDL - Peter J. Ashenden

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式